下面的代码可以实现异步发送邮件,等邮件发送出去后会自动调用回调函数,这样在发送邮件时就不会卡住程序不动了
MailMessage m = new MailMessage ("item@75271.com", "raja@75271.com", "This is the subject for the authorized email.", "This is the body of the authorized mail!..."); // Send the message using authorization SmtpClient client = new SmtpClient("smtp.75271.com"); client.Credentials = new NetworkCredential("user", "password"); client.EnableSsl = true; // Add the event handler client.SendCompleted += new SendCompletedEventHandler(mail_SendCompleted); // Send the message asynchronously client.SendAsync(m, null); // To Cancel the send //client.SendAsyncCancel(); void mail_SendCompleted(object sender, AsyncCompletedEventArgs e) { if (e.Cancelled) Console.WriteLine("Message cancelled"); else if (e.Error != null) Console.WriteLine("Error: " + e.Error.ToString()); else Console.WriteLine("Message sent"); }