To send email over SMTP asynchronously, create a SmtpClient, call its SendAsync method, and add a SendCompleted event handler to your code:
//Call the SmtpClient SendAsync method SmtpClient client = new SmtpClient(_smtpServer);client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);client.SendAsync(message, "Sending..");
When the SendAsync method completes, it will fire the SendCompleted event, where you can check for errors:
private static void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e){ String token = (string)e.UserState; if (e.Error != null) { throw e.Error; } else { // }}