C#发送邮件(附件)类
2017-12-02 16:39
603 查看
本博客主要利用C#中System.Net.Mail中的MailMessage 类进行邮件的发送。话不多说直接上代码:
首先需要添加引用,不清楚的可以去https://msdn.microsoft.com 上去查看详细介绍
类主体如下:
首先需要添加引用,不清楚的可以去https://msdn.microsoft.com 上去查看详细介绍
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Reflection; using System.Net; using System.Net.Mail; using System.Security.Cryptography.X509Certificates; using System.Net.Security; using System.Net.Mime;
类主体如下:
/// <summary> /// 发送内邮(收件人、抄送人、附件若有多个,用分号[;]隔开) /// </summary> /// <param name="toMail">收件人</param> /// <param name="ccMail">抄送人</param> /// <param name="subject">邮件主题</param> /// <param name="content">邮件内容</param> /// <param name="filepath">附件路径</param> public static bool SendMail(string toMail, string ccMail, string subject, string content, string filepath) { try { var emailAcount = ConfigurationManager.AppSettings["EmailAcount"]; var emailPassword = ConfigurationManager.AppSettings["EmailPassword"]; var emailServer = ConfigurationManager.AppSettings["SMTPServer"]; var emailServerPort = ConfigurationManager.AppSettings["SMTPServerPort"]; MailMessage message = new MailMessage(); //设置发件人,163邮箱为例,需要在Web.config中进行配置 MailAddress fromAddr = new MailAddress(string.Format("{0}@163.com", emailAcount)); message.From = fromAddr; //遍历收件人邮箱地址 if (toMail.Trim().Length != 0) { string[] receivers = toMail.Trim().Split(';'); for (int i = 0; i < receivers.Length; i++) { if (receivers[i].Length > 0) { message.To.Add(receivers[i]);//为该邮件添加联系人 } } } //遍历抄送人邮箱地址 if (ccMail.Trim().Length != 0) { string[] ccreceivers = ccMail.Trim().Split(';'); for (int j = 0; j < ccreceivers.Length; j++) { if (ccreceivers[j].Length > 0) { message.CC.Add(ccreceivers[j]);//为该邮件添加抄送人 } } } //设置邮件标题 message.Subject = subject; //设置邮件内容 message.Body = content; //添加附件 if(filepath.Trim().Length != 0) { string[] attachFiles = filepath.Trim().Split(';'); for(int k = 0; k < attachFiles.Length; k++) { if (attachFiles[k].Length > 0) { Attachment data = new Attachment(attachFiles[k], MediaTypeNames.Application.Octet); message.Attachments.Add(data); } } } //设置邮件SMTP服务器 //SmtpClient client = new SmtpClient("smtp.163.com", 25); SmtpClient client = new SmtpClient(emailServer, Convert.ToInt32(emailServerPort)); //设置发送人的邮箱账号和密码 client.Credentials = new NetworkCredential(emailAcount, emailPassword); //启用ssl,也就是安全发送 client.EnableSsl = true; ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }; //发送邮件 client.Send(message); return true; } catch (Exception ex) { log.Error("SendMail()", ex); return false; } }
相关文章推荐
- C# 如何新建和发送带附件的邮件
- C#实现邮件发送,可以添加附件,发件人、收件人信息从xml文件读取
- 使用C#编写简单的图形化的可发送附件的邮件客户端程序
- C#发送带附件的邮件
- c#发送带附件的邮件
- C#发送带附件邮件
- C# winform发送邮件 带附件
- C# 调用outlook 发送邮件 或添加附件发送
- C#实现.Net对邮件进行DKIM签名和验证,支持附件,发送邮件签名后直接投递到对方服务器(无需己方邮件服务器)
- asp.net C# 发送 邮件 和 附件 代码
- C#使用smtp发送带附件的邮件实现方法
- c# 发送带附件的邮件
- [C#]邮件发送类(带附件)
- C# 调用outlook 发送邮件 或添加附件发送
- C# 发送邮件,附件带中文名称的Excel乱码问题
- c#net中发送带附件的邮件:
- C#实现自启动及带附件形式的邮件发送
- C#发送邮件小程序(支持群发,附件)
- C#发送邮件小程序(支持群发,附件)
- [C#]邮件发送类(带附件)