It appears that the ExceptionThrown event handler doesn't provide the client with the MailMessage that failed to send due to the exception. I have a SmtpClient.Send that times out and in the delegate the SmtpEventArg does not contain the MailMessage that was being sent. Is this the correct behavior? There is no way to figure out which messages failed to send.