1、首先引入命名空间:
using System.Net.Mail;
2、定义邮件配置类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class EmailServiceConfig { /// <summary> /// 服务地址。 /// </summary> public String ServiceAddress { get; set; } /// <summary> /// 端口号。 /// </summary> public Int32 Port { get; set; } /// <summary> /// 发件人名。 /// </summary> public String DisplayName { get; set; } /// <summary> /// 用户名。 /// </summary> public String Username { get; set; } /// <summary> /// 密码。 /// </summary> public String Password { get; set; } }
3、定义邮件内容类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class EmailMessage { /// <summary> /// 邮件接收人 /// </summary> public String[] Receivers { get; set; } /// <summary> /// 邮件抄送人 /// </summary> public String[] CC { get; set; } /// <summary> /// 邮件主题 /// </summary> public String Subject { get; set; } /// <summary> /// 邮件正文 /// </summary> public String Content { get; set; } }
4、定义邮件帮助类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class EmailHelper { /// <summary> /// 配置 /// </summary> private EmailServiceConfig _config; private SmtpClient _client = new SmtpClient(); /// <summary> /// 发送邮件 /// </summary> /// <param name="message"></param> public void Send(EmailMessage message) { MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(_config.Username, _config.DisplayName); message.Receivers.ToList().ForEach(c => mailMessage.To.Add(c)); message.CC.ToList().ForEach(c => mailMessage.CC.Add(c)); mailMessage.Subject = message.Subject; mailMessage.IsBodyHtml = true; mailMessage.Body = message.Content; mailMessage.BodyEncoding = Encoding.UTF8; mailMessage.Priority = MailPriority.High; _client.Send(mailMessage); } /// <summary> /// 构造函数 /// </summary> /// <param name="config"></param> public EmailHelper(EmailServiceConfig config) { if (config == null) { throw new Exception("配置不能为空。"); } if (string.IsNullOrEmpty(config.ServiceAddress)) { throw new Exception("服务地址不能为空。"); } if (string.IsNullOrEmpty(config.Username)) { throw new Exception("用户名不能为空。"); } if (string.IsNullOrEmpty(config.Password)) { throw new Exception("密码不能为空。"); } _config = config; _client = new SmtpClient(config.ServiceAddress,config.Port); _client.UseDefaultCredentials = false; _client.EnableSsl = false; _client.Credentials = new System.Net.NetworkCredential(config.Username, config.Password); _client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; } }
5、调用帮助类发送邮件:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
private static void Main(string[] args) { try { // 初始化配置 var config = new EmailServiceConfig() { ServiceAddress = "smtp.qq.com", Port = 25, DisplayName = "发件人名", Username = "123@qq.com", Password = "******" }; //初始化邮件内容 var message = new EmailMessage() { Receivers = new string[] { "abcd@qq.com" }, CC = new string[] { "xyz@qq.com" }, Subject = "这里是邮件主题", Content = "这里是邮件内容" }; //实例邮件帮助类并发送邮件 var emailHelper = new EmailHelper(config); emailHelper.Send(message); Console.WriteLine("发送成功!"); } catch (Exception ex) { Console.WriteLine("发送失败!"); Console.WriteLine("错误信息:" + ex.Message); } Console.ReadLine(); }