The original question was asked for .NET 4, but if it helps as of .NET 4.5 SmtpClient implements async awaitable method
SendMailAsync
.
As a result, to send email asynchronously is as the following:
public async Task SendEmail(string toEmailAddress, string emailSubject, string emailMessage)
{
using (var message = new MailMessage())
{
message.To.Add(toEmailAddress);
message.Subject = emailSubject;
message.Body = emailMessage;
using (var smtpClient = new SmtpClient())
{
await smtpClient.SendMailAsync(message);
}
}
}
It’s better to avoid using SendAsync method.