此方法如果不改成异步,那么需要开线程调用.因为此方法与网络相关,可能会占用过多时间或者报错等.
public static void SendMail(string title, string body)
{MailAddress EmailFrom = new MailAddress(ConfigurationManager.AppSettings["发件人地址"], ConfigurationManager.AppSettings["发件人昵称"]);
MailMessage mailMsg = new MailMessage();
mailMsg.From = EmailFrom;
string receivers = ConfigurationManager.AppSettings["邮件接收人"];
mailMsg.To.Add(receivers);
mailMsg.Subject = title;
mailMsg.Body = body;
SmtpClient spClient = new SmtpClient(ConfigurationManager.AppSettings["发件服务器"]);
spClient.Timeout = 600 * 1000;
spClient.EnableSsl = true;
spClient.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["发件用户名"], ConfigurationManager.AppSettings["发件密码"]);
try
{
spClient.Send(mailMsg);
}
catch (System.Net.Mail.SmtpException ex)
{
lock (lockObj)
{
File.AppendAllText("error.txt", ex.Message + "\r\n发送邮件失败\r\n" + title + "\r\n" + body + "\r\n" + DateTime.Now.ToString());
}
}
}