using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net.Mail; using System.Text; using System.Threading.Tasks; namespace CK.SCP.Common { public class MyWebSmtpMail { private MailMessage mailMessage; private SmtpClient smtpClient; private string from; private string server; private string username; private string password; private bool enablessl; private bool credentials; private int port; public MyWebSmtpMail() { string From = ConfigurationManager.AppSettings["MailSender"]; string Server = ConfigurationManager.AppSettings["MailServer"]; string UserName = ConfigurationManager.AppSettings["MailUserName"]; string Password = ConfigurationManager.AppSettings["MailPassword"]; int Port = Convert.ToInt32(ConfigurationManager.AppSettings["MailPort"]); this.from = From; this.server = Server; this.password = Password; this.username = UserName; this.enablessl = true; this.port = Port; this.credentials = false; } public void Send(string To, string Body, string Title) { mailMessage = new MailMessage(); mailMessage.To.Add(To); mailMessage.From = new System.Net.Mail.MailAddress(this.from); mailMessage.Subject = Title; mailMessage.Body = Body; mailMessage.IsBodyHtml = true; mailMessage.BodyEncoding = System.Text.Encoding.UTF8; mailMessage.Priority = System.Net.Mail.MailPriority.Normal; if (mailMessage != null) { smtpClient = new SmtpClient(); if (!credentials) { smtpClient.Credentials = new System.Net.NetworkCredential(username, password); } smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; smtpClient.Host = server; smtpClient.Port = port; smtpClient.EnableSsl = enablessl; //smtpClient.Send(mailMessage); //smtpClient.SendAsync(mailMessage, null); //如果服务器支持安全连接,则将安全连接设为true //smtpClient.EnableSsl = true; try { //是否使用默认凭据,若为false,则使用自定义的证书,就是下面的networkCredential实例对象 smtpClient.UseDefaultCredentials = false; //指定邮箱账号和密码,需要注意的是,这个密码是你在QQ邮箱设置里开启服务的时候给你的那个授权码 System.Net.NetworkCredential networkCredential = new System.Net.NetworkCredential(username, password); smtpClient.Credentials = networkCredential; //发送邮件 smtpClient.Send(mailMessage); } catch (System.Net.Mail.SmtpException ex) { Console.WriteLine(ex.Message, "发送邮件出错"); } } } } }