首先说一下在.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");