发邮件代码

/// <summary>
///
/// </summary>
/// <param name="mailTo">收件人列表</param>
/// <param name="mailFrom">发件人</param>
/// <param name="mailCC">抄送人列表</param>
/// <param name="mailBcc">密抄人列表</param>
/// <param name="sAttachments">附件列表</param>
/// <param name="mailSubject">标题</param>
/// <param name="mailBody">内容</param>
/// <param name="ishtml">是否支持HTML</param>
public static void Send(string[] mailTo,string mailFrom, string[] mailCC,string[] mailBcc, string[] sAttachments, string mailSubject, string mailBody, bool ishtml) {
if( mailTo == null ) throw new NotImplementedException("收件人不可为空");
if( mailFrom == null ) throw new NotImplementedException( "发件人不可为空" );
if( string.IsNullOrEmpty( mailSubject ) ) throw new NotImplementedException( "标题不可为空" );
MailMessage message = new MailMessage();
//收件人
foreach( var item in mailTo ) {
message.To.Add( new MailAddress( item ) );
}
//抄送列表
foreach( var item in mailCC ) {
message.CC.Add( new MailAddress( item ) );
}
//邮件附件
foreach( var item in sAttachments ) {
message.Attachments.Add( new Attachment( item ) );
}
//密抄人地址
if( mailBcc != null ) {
foreach( var item in mailBcc ) {
message.Bcc.Add( new MailAddress( item ) );
}
}
//发送人地址
message.From = new MailAddress( mailFrom ?? "hebkkun@163.com" );
//邮件标题
Encoding enc = Encoding.GetEncoding("GB2312");
string subjectFormat = "=?{0}?B?{1}?=";
message.Subject = String.Format(subjectFormat, enc.HeaderName,
Convert.ToBase64String(enc.GetBytes(mailSubject), Base64FormattingOptions.None));
message.IsBodyHtml = ishtml;
//邮件正文
message.Body = mailBody;
message.BodyEncoding = Encoding.GetEncoding("GB2312");
SmtpClient client = new SmtpClient(System.Configuration.ConfigurationManager.AppSettings.Get("mailServer"));
//认证
string sMailUser = System.Configuration.ConfigurationManager.AppSettings.Get("smtpUser");
string sMailPass = System.Configuration.ConfigurationManager.AppSettings.Get("smtpPass");
client.Credentials = new NetworkCredential(sMailUser, sMailPass);
try {
client.Send( message );
} catch( SmtpException ex ) {
throw ex;
} finally {
message.Attachments.Dispose();
}
}
------------------------------------------
除非特别声明,文章均为原创,版权与博客园共有,转载请保留出处
BUY ME COFFEE


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架