SMTP郵件發(fā)送
C#發(fā)送HTML格式郵件
支持郵件抄送
郵件密送
附件形式
using System; using System.Net; using System.Net.Configuration; using System.Net.Mail; using System.Text; using System.Web.Configuration; using System.Collections.Generic; namespace JsonsHelper { /// <summary> /// Smtp配置 /// </summary> public class SmtpConfig { /// <summary> /// SMTP在web.config的默認(rèn)配置 /// </summary> public SmtpConfig() { setWebConfigBindding(); ContentEncoding = Encoding.Default; } private void setWebConfigBindding() { try { MailSettingsSectionGroup sectionGroup = (MailSettingsSectionGroup)WebConfigurationManager.OpenWebConfiguration("~/").GetSectionGroup("system.net/mailSettings"); if (sectionGroup == null) { SmtpServer = "localhost"; Port = 25; SSLConnect = false; } else { if (sectionGroup.Smtp.Network.Host != "") { SmtpServer = sectionGroup.Smtp.Network.Host; } Port = sectionGroup.Smtp.Network.Port; UserName = sectionGroup.Smtp.Network.UserName; Password = sectionGroup.Smtp.Network.Password; if (sectionGroup.Smtp.Network.DefaultCredentials == true) { Credentials = null; } else { Credentials = new NetworkCredential(UserName, Password); } } } catch (Exception) { } } private string smtpServerField; /// <summary> /// 發(fā)送郵件服務(wù)器 /// </summary> public string SmtpServer { get { return smtpServerField; } set { smtpServerField = value; } } private int portField = 25; /// <summary> /// 服務(wù)器連接端口,默認(rèn)為25。 /// </summary> public int Port { get { return portField; } set { portField = value; } } private string userNameField; /// <summary> /// 連接用戶名 /// </summary> public string UserName { get { return userNameField; } set { userNameField = value; } } private string passwordField; /// <summary> /// 連接密碼 /// </summary> public string Password { get { return passwordField; } set { passwordField = value; } } private bool sslConnectField = false; /// <summary> /// 是否是安全套接字連接,默認(rèn)為否。 /// </summary> public bool SSLConnect { get { return sslConnectField; } set { sslConnectField = value; } } private Encoding contentEncodingField; /// <summary> /// 郵件內(nèi)容編碼 /// </summary> public Encoding ContentEncoding { get { return contentEncodingField; } set { contentEncodingField = value; } } private NetworkCredential credentialsField; /// <summary> /// 訪問(wèn)憑據(jù) /// </summary> public NetworkCredential Credentials { get { return credentialsField; } set { credentialsField = value; } } } /// <summary> /// SMTP郵件發(fā)送 /// </summary> public class SmtpMail { /// <summary> /// 發(fā)送HTML格式郵件(UTF8) /// </summary> public static string MailTo(SmtpConfig config, MailAddress AddrFrom, MailAddress AddrTo, MailAddressCollection cc, MailAddressCollection bCC, string Subject, string BodyContent, bool isHtml, List<Attachment> attC) { MailMessage msg = new MailMessage(AddrFrom, AddrTo); #region 抄送 if (cc != null && cc.Count > 0) { foreach (MailAddress cAddr in cc) { msg.CC.Add(cAddr); } } #endregion #region 密送 if (bCC != null && bCC.Count > 0) { foreach (MailAddress cAddr in bCC) { msg.Bcc.Add(cAddr); } } #endregion #region 附件列表 if (attC != null && attC.Count > 0) { foreach (Attachment item in attC) { msg.Attachments.Add(item); } } #endregion msg.IsBodyHtml = isHtml; msg.Priority = MailPriority.High; msg.Subject = Subject; msg.SubjectEncoding = config.ContentEncoding; msg.BodyEncoding = config.ContentEncoding; msg.Body = BodyContent; SmtpClient client = new SmtpClient(config.SmtpServer, config.Port); if (config.Credentials != null) { client.Credentials = config.Credentials; } client.EnableSsl = config.SSLConnect; try { client.Send(msg); return "0"; } catch (Exception exp) { return exp.Message; } } /// <summary> /// 發(fā)送HTML格式郵件 /// </summary> /// <param name="config">SMTP配置</param> /// <param name="AddrFrom">發(fā)件人郵箱</param> /// <param name="AddrTo">收件人郵箱</param> /// <param name="Subject">主題</param> /// <param name="BodyContent">內(nèi)容</param> /// <returns></returns> public static string MailTo(SmtpConfig config, MailAddress AddrFrom, MailAddress AddrTo, string Subject, string BodyContent) { return MailTo(config, AddrFrom, AddrTo, null, null, Subject, BodyContent, true, null); } } }
原文鏈接:C#發(fā)送HTML格式郵件