.net中经常会用到发送邮件,常用的功能有用户注册通知、修改密码通知等,在这里把.net发送邮件封装成一个类分享给大家。
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="FromEamil">发件人邮箱</param>
/// <param name="EamilPwd">发件人邮箱密码</param>
/// <param name="ToEmail">收件人邮箱</param>
/// <param name="EmailTitle">邮箱标题</param>
/// <param name="EmailContent">邮箱内容</param>
/// <param name="EamilSmtp">SMTP主机的名称或IP地址,例如:smtp.163.com</param>
/// <returns>返回Success或Fail</returns>
public static SendMailStatus SendEamil(string FromEamil, string EamilPwd, string ToEmail, string EmailTitle, string EmailContent, string EamilSmtp)
{
MailMessage mm = new MailMessage();
//发件人
mm.From = new MailAddress(FromEamil, FromEamil);
//收件人(可以是多个)
mm.To.Add(new MailAddress(ToEmail));
//主题
mm.Subject = EmailTitle;
//邮件正文
mm.Body = EmailContent;
SmtpClient sc = new SmtpClient();
//设置SMTP主机的名称或IP地址
sc.Host = EamilSmtp;
string User = FromEamil;
string PassWord = EamilPwd;
//设置用于验证发件人身份的凭据
sc.Credentials = new System.Net.NetworkCredential(User, PassWord);
try
{
sc.Send(mm);
return SendMailStatus.Success;
}
catch (Exception)
{
return SendMailStatus.Fail;
}
}
返回枚举结果:
public enum SendMailStatus { Success, Fail }
这样用到发送邮件的时候直接调用SendEamil方法就可以,现在有个问题是邮件有时候会出现在垃圾箱,不知道有什么更好的方法解决。