博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Net发送邮件类

Posted on 2010-05-25 09:48  gzlxm  阅读(391)  评论(0)    收藏  举报

首先说一下在.Net下如何发送邮件。.Net已经为我们准备好了与发送邮件相关的类,只要直接调用即可,非常方便。下面是我自己写的一个邮件通知类:

public class EmailNotificationService {

 

    /// <summary>

    /// 构造一个邮件通知服务类的实例。

    /// </summary>

    /// <param>SMTP服务器的IP地址</param>

    /// <param>是否使用SSL连接SMTP服务器器</param>

    /// <param>SMTP服务器端口</param>

    /// <param>用于登录SMTP服务器的用户名</param>

    /// <param>登录密码</param>

    public EmailNotificationService(

       string smtpService,

       bool enableSSL,

       int port,

       string loginName,

       string password) {

 

       this.m_smtpService = smtpService;

       this.m_loginName = loginName;

       this.m_password = password;

       this.m_enableSSL = enableSSL;

       this.m_port = port;

    }

 

    private readonly string m_smtpService;

    private readonly string m_loginName;

    private readonly string m_password;

    private readonly bool m_enableSSL;

    private readonly int m_port;

 

    /// <summary>

    /// 发送邮件通知到指定的EMAIL地址。

    /// </summary>

    /// <param>显示在“发件人”一栏上的名称</param>

    /// <param>目的EMAIL地址</param>

    /// <param>邮件标题</param>

    /// <param>邮件内容</param>

    public void SendTo(string senderName, string address, string title, string content) {

          

       MailMessage mail = new MailMessage();

       mail.To.Add(address);

       mail.From = new MailAddress(this.m_loginName, senderName, Encoding.UTF8);

       mail.Subject = title;

       mail.Body = content;

       mail.BodyEncoding = Encoding.UTF8;

       mail.IsBodyHtml = false;

       mail.Priority = MailPriority.Normal;

 

       SmtpClient smtp = new SmtpClient();

       smtp.Credentials = new NetworkCredential(this.m_loginName, this.m_password);

       smtp.Host = this.m_smtpService;

       smtp.EnableSsl = this.m_enableSSL;

       smtp.Port = this.m_port;

 

       smtp.Send(mail);

    }

}

 

在使用时,首先构造一个EmailNotificationService类,再调用SendTo方法即可。例如:

 

EmailNotificationService mailNotificationService = new EmailNotificationService("smtp.gmail.com", true, 587, "LoginName@gmail.com", "LoginPassword");

mailNotificationService.SendTo("SenderName", "TargetAddress@qq.com", "Title", "Content");