.NET发送邮件(SmtpClient)

作者:翅膀的初衷 来源:本站原创 发布时间:2013-09-23 查看数:61969

邮件发送是Web开发中常用的功能之一,在asp.net中有多种方法实现该功能,本文分享如何通过SmtpClient进行邮件发送:

首先我们对SmtpClient进行简单封装:

  1     public class MailService
  2     {
  3         private SmtpClient client;
  4 
  5         /// <summary>
  6         /// 邮件发送类
  7         /// </summary>
  8         public MailService()
  9             : this(null, 25, false)
 10         {
 11         }
 12 
 13         /// <summary>
 14         /// 邮件发送类
 15         /// </summary>
 16         /// <param name="host">SMTP服务器地址</param>
 17         /// <param name="port">发送端口(一般为25)</param>
 18         public MailService(string host, int port)
 19             : this(host, port, false)
 20         {
 21         }
 22 
 23         /// <summary>
 24         /// 邮件发送类
 25         /// </summary>
 26         /// <param name="host">SMTP服务器地址</param>
 27         /// <param name="port">发送端口(一般为25)</param>
 28         /// <param name="enableSsl">是否启用SSL</param>
 29         public MailService(string host, int port, bool enableSsl)
 30         {
 31             client = new SmtpClient();
 32             client.DeliveryMethod = SmtpDeliveryMethod.Network;
 33             if (!string.IsNullOrEmpty(host))
 34             {
 35                 client.Host = host;
 36             }
 37             client.Port = port;
 38             client.EnableSsl = enableSsl;
 39 
 40         }
 41 
 42         private string _user;
 43         /// <summary>
 44         /// 登录用户名
 45         /// </summary>
 46         public string User
 47         {
 48             get { return _user; }
 49             set { _user = value; }
 50         }
 51         private string _password;
 52         /// <summary>
 53         /// 密码
 54         /// </summary>
 55         public string Password
 56         {
 57             get { return _password; }
 58             set { _password = value; }
 59         }
 60         private string _sendmail;
 61         /// <summary>
 62         /// 发件人
 63         /// </summary>
 64         public string SendMail
 65         {
 66             get { return _sendmail; }
 67             set { _sendmail = value; }
 68         }
 69         private string _errormessage;
 70         /// <summary>
 71         /// 错误信息
 72         /// </summary>
 73         public string ErrorMessage
 74         {
 75             get { return _errormessage; }
 76             private set { _errormessage = value; }
 77         }
 78         /// <summary>
 79         /// 发送邮件
 80         /// </summary>
 81         /// <param name="message">邮件内容</param>
 82         /// <returns></returns>
 83         public bool Send(MailMessage message)
 84         {
 85             try
 86             {
 87                 NetworkCredential credential = new NetworkCredential(User, Password);
 88                 client.Credentials = credential;
 89                 client.Send(message);
 90                 return true;
 91             }
 92             catch (Exception e)
 93             {
 94                 ErrorMessage = e.Message;
 95                 return false;
 96             }
 97         }
 98 
 99         /// <summary>
100         /// 发送邮件
101         /// </summary>
102         /// <param name="mail">收件人</param>
103         /// <param name="title">标题</param>
104         /// <param name="body">邮件内容</param>
105         /// <returns></returns>
106         public bool Send(string mail, string title, string body)
107         {
108 
109             MailAddress addrFrom = new MailAddress(SendMail, User, Encoding.UTF8);
110             MailAddress addrTo = new MailAddress(mail, mail, Encoding.UTF8);
111 
112             using (MailMessage message = new MailMessage(addrFrom, addrTo))
113             {
114 
115                 message.Subject = title;
116                 message.SubjectEncoding = Encoding.UTF8;
117 
118                 message.Body = body;
119                 message.BodyEncoding = Encoding.UTF8;
120 
121                 message.IsBodyHtml = true;
122                 message.Priority = MailPriority.Normal;
123 
124                 return Send(message);
125 
126             }
127         }
128     }

使用方法:

1             MailService ms = new MailService("smtp.jiniannet.com", 25, false);
2             ms.SendMail = "test@jiniannet.com";
3             ms.User = "test";
4             ms.Password = "123456";
5             ms.Send("admin@jinianet.com", "测试邮件", "极念网(www.jiniannet.com)邮件发送测试!");