废话不多直接上类
using System; using System.Collections.Generic; using System.Net; using System.Net.Mail; using System.Text; using System.Text.RegularExpressions; namespace TEST { /// <summary> /// 发送邮件 /// </summary> public class MailSender { /// <summary> /// 发送html邮件 /// </summary> /// <param name="configSetting">发送信息</param> /// <param name="recipient">接收人邮件</param> /// <param name="subject">主题</param> /// <param name="body">邮件正文</param> /// <param name="isAuthentication">是否验证身份</param> /// <param name="isAutograph">是否加入邮件签名</param> /// <param name="isBodyHtml">正文是否HTML</param> /// <param name="encoding">邮件编码方式 默认UTF-8</param> /// <param name="fileInline">附近是否嵌入邮件正文</param> /// <param name="files">附近地址集合</param> public static bool Send(SmtpSetting configSetting, string recipient, string subject, string body, bool isAuthentication, bool isAutograph = true, bool isBodyHtml = false, Encoding encoding = null, List<string> files = null, bool fileInline = false) { SmtpClient smtpClient = new SmtpClient(configSetting.Host); if (configSetting.Port != -1) { smtpClient.Port = configSetting.Port; } if (encoding == null) { encoding = Encoding.UTF8; } MailMessage message = new MailMessage(configSetting.Sender, recipient); message.IsBodyHtml = isBodyHtml; message.SubjectEncoding = encoding; message.BodyEncoding = encoding; message.Subject = subject; message.Priority = MailPriority.Normal; message.Attachments.Clear(); if (files != null && files.Count != 0) { for (int i = 0; i < files.Count; ++i) { Attachment attach = new Attachment(files[i]); if (fileInline) { //attach.ContentId = attach.ContentId; attach.ContentDisposition.Inline = true; attach.NameEncoding = Encoding.UTF8; body = body.Replace("BGImgInline" + i, attach.ContentId); } message.Attachments.Add(attach); } } if (isBodyHtml && isAutograph) { body += GetMailAutographHtml(); } message.Body = body; if (isAuthentication == true) { smtpClient.Credentials = new NetworkCredential(configSetting.User, configSetting.Password); } try { // 发送邮件 smtpClient.Send(message); return true; } catch (Exception ex) { LogHelper.RunLogger("发送邮件异常" + ex.Message, ex); return false; } } /// <summary> /// 发送html邮件,并且把附件嵌入html中 /// </summary> /// <param name="recipient">接收邮件地址</param> /// <param name="subject">邮件标题</param> /// <param name="body">邮件内容</param> /// <param name="fileInline">是否内联</param> /// <param name="files">文件数组</param> public static void SendHtmlMail(string recipient, string subject, string body, bool fileInline, List<string> files) { var configSetting = SmtpSetting.Default; Send(configSetting, recipient, subject, body, true, files: files, fileInline: fileInline); } /// <summary> /// 发送普通邮件 /// </summary> /// <param name="recipient">接收邮件地址</param> /// <param name="subject">邮件标题</param> /// <param name="body">邮件内容</param> public static void SendMail(string recipient, string subject, string body) { var configSetting = SmtpSetting.Default; Send(configSetting, recipient, subject, body, true); } /// <summary> /// 发送html邮件 /// </summary> /// <param name="recipient">接收邮件地址</param> /// <param name="subject">邮件标题</param> /// <param name="body">邮件内容</param> public static bool SendHtmlMail(string recipient, string subject, string body) { var configSetting = SmtpSetting.Default; return Send(configSetting, recipient, subject, body, true, isBodyHtml: true); } /// <summary> /// 邮件签名 /// </summary> /// <returns></returns> public static string GetMailAutographHtml() { return @""; } /// <summary> /// 是否是邮箱 /// </summary> public static bool IsEmail(string email) { Regex regex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); return regex.IsMatch(email); } } public class SmtpSetting { #region 属性 private string _host; /// <summary> /// 服务器名称 /// </summary> public string Host { get { return _host; } set { _host = value; } } private int _port = -1; /// <summary> /// 服务器端口 /// </summary> public int Port { get { return _port; } set { _port = value; } } private bool _authentication; /// <summary> /// 是否身份验证 /// </summary> public bool Authentication { get { return _authentication; } set { _authentication = value; } } private string _user; /// <summary> /// 身份验证用户名 /// </summary> public string User { get { return _user; } set { _user = value; } } private string _sender; /// <summary> /// 发送人邮箱 /// </summary> public string Sender { get { return _sender; } set { _sender = value; } } private string _password; /// <summary> /// 身份验证密码 /// </summary> public string Password { get { return _password; } set { _password = value; } } #endregion 属性 /// <summary> /// 系统配置的默认值(M6默认邮箱) /// </summary> public static SmtpSetting Default { get { SmtpSetting smtpSetting = new SmtpSetting(); smtpSetting.Host = "*****";// ConfigurationManager.AppSettings["Server"] + ""; smtpSetting.Port = 25; smtpSetting.Authentication = true;// Convert.ToBoolean(ConfigurationManager.AppSettings["Authentication"] + ""); smtpSetting.User = "*****";// ConfigurationManager.AppSettings["User"] + ""; smtpSetting.Password = "*****";// ConfigurationManager.AppSettings["Password"] + ""; smtpSetting.Sender = "*****";// ConfigurationManager.AppSettings["Sender"] + ""; return smtpSetting; } } } }