首页 > 学院 > 开发设计 > 正文

C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)

2019-11-17 03:20:44
字体:
来源:转载
供稿:网友

C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)

  net2.0后,C#可以利用System.Net发送邮件了。

  代码整理如下:

  1 /**************************************  2  * <copyright file="SendEail.cs">  3  * Copyright(c)2014 LeeStudio All rights reserved.  4  * CLR版本:4.0.30319.17929  5  * 开发团队:欺心伴月个人工作室  6  * 技术博客:http://www.VEVb.com/lichunyang/  7  * 所属工程:LeeStudio.Basic  8  * 创 建 者:Frank Lee  9  * 修改时间:2014-02-20 11:20 10  * </copyright> 11 **************************************/ 12  13 using System; 14 using System.Text; 15 using System.Net; 16 using System.Net.Mail; 17 using System.Net.Mime; 18  19 namespace LeeStudio.Basic 20 { 21     /// <summary> 22     /// 邮件发送类 23     /// </summary> 24     public class SendEmail 25     { 26         PRivate MailMessage mailMessage = new MailMessage(); //实例化一个邮件类 27  28         #region 构造函数 29         /// <summary> 30         /// 构造函数 31         /// </summary> 32         /// <param name="toAddresses">收件人地址(多个以,号分开)</param> 33         /// <param name="fromAddress">发件人地址</param> 34         /// <param name="title">主题</param> 35         /// <param name="body">正文</param> 36         public SendEmail(string toAddresses, string fromAddress, string title, string body) 37             : this(toAddresses, fromAddress, "", "", title, body, false) 38         { 39         } 40  41         /// <summary> 42         /// 构造函数 43         /// </summary> 44         /// <param name="toAddress">收件人地址</param> 45         /// <param name="fromAddress">发件人地址</param> 46         /// <param name="toName">收件人名字</param> 47         /// <param name="fromName">发件人姓名</param> 48         /// <param name="title">主题</param> 49         /// <param name="body">正文</param> 50         /// <param name="isBodyHtml">正文是否为html格式</param> 51         public SendEmail(string toAddress, string fromAddress, string toName, string fromName, string title, string body, bool isBodyHtml) 52         { 53             mailMessage.From = new MailAddress(fromAddress, fromName, Encoding.GetEncoding(936)); 54             if (toName.Equals("")) 55                 mailMessage.To.Add(toAddress); 56             else 57                 mailMessage.To.Add(new MailAddress(toAddress, toName, Encoding.GetEncoding(936))); 58  59             mailMessage.Subject = title; 60             mailMessage.SubjectEncoding = Encoding.GetEncoding(936); 61  62             mailMessage.Body = body; 63             mailMessage.IsBodyHtml = isBodyHtml; 64             mailMessage.BodyEncoding = Encoding.GetEncoding(936); 65         } 66         #endregion 67  68         /// <summary> 69         /// 设置SMTP,并且将邮件发送出去 70         /// 所有参数都设置完成后再调用该方法 71         /// </summary> 72         /// <param name="passWord">发件人密码</param> 73         /// <param name="smtpHost">SMTP服务器地址</param> 74         public void SetSmtp(string password, string smtpHost) 75         { 76             SetSmtp(mailMessage.From.Address, password, smtpHost, 25, false, MailPriority.Normal); 77         } 78  79         /// <summary> 80         /// 设置SMTP,并且将邮件发送出去 81         /// 所有参数都设置完成后再调用该方法 82         /// </summary> 83         /// <param name="address">发件人地址(必须为真实有效的email地址)</param> 84         /// <param name="password">发件人密码</param> 85         /// <param name="smtpHost">SMTP服务器地址</param> 86         /// <param name="smtpPort">SMTP服务器的端口</param> 87         /// <param name="isEnableSsl">SMTP服务器是否启用SSL加密</param> 88         /// <param name="priority">邮件的优先级</param> 89         public void SetSmtp(string address, string password, string smtpHost, int smtpPort, bool isEnableSsl, MailPriority priority) 90         { 91             SmtpClient smtp = new SmtpClient(); 92             smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 93             smtp.Credentials = new NetworkCredential(address, password); 94             smtp.Host = smtpHost; 95             smtp.Port = smtpPort; 96             smtp.EnableSsl = isEnableSsl; 97  98             mailMessage.Priority = priority; 99             smtp.Send(mailMessage); //发送邮件100         }101 102         #region //设置邮件地址103         /// <summary>104         /// 设置更多收件人105         /// </summary>106         /// <param name="toAddresses">收件人地址</param>107         public void SetMoreToAddress(string toAddresses)108         {109             mailMessage.To.Add(toAddresses);110         }111 112         /// <summary>113         /// 设置更多收件人114         /// </summary>115         /// <param name="toAddresses">收件人地址</param>116         /// <param name="toName">收件人名字</param>117         public void SetMoreToAddress(string toAddress, string toName)118         {119             mailMessage.To.Add(new MailAddress(toAddress, toName, Encoding.GetEncoding(936)));120         }121 122         /// <summary>123         /// 设置抄送者(多个以,号分开)124         /// </summary>125         /// <param name="ccAddresses">抄送者地址</param>126         public void SetCarbonCopyFor(string ccAddresses)127         {128             mailMessage.CC.Add(ccAddresses);129         }130 131         /// <summary>132         /// 设置抄送者133         /// </summary>134         /// <param name="ccAddress">抄送者地址</param>135         /// <param name="ccName">抄送者名字</param>136         public void SetCarbonCopyFor(string ccAddress, string ccName)137         {138             mailMessage.Bcc.Add(new MailAddress(ccAddress, ccName, Encoding.GetEncoding(936)));139         }140 141         /// <summary>142         /// 设置密送者(多个以,号分开)143         /// </summary>144         /// <param name="bccAddresses">密送者</param>145         public void SetBlindCarbonCopyFor(string bccAddresses)146         {147             mailMessage.Bcc.Add(bccAddresses);148         }149 150         /// <summary>151         /// 设置密送者152         /// </summary>153         /// <param name="bccAddress">密送者</param>154         /// <param name="bccName">密送者名字</param>155         public void SetBlindCarbonCopyFor(string bccAddress, string bccName)156         {157             mailMessage.Bcc.Add(new MailAddress(bccAddress, bccName, Encoding.GetEncoding(936)));158         }159         #endregion160 161         #region 添加附件162         /// <summary>163         /// 添加附件(自动识别文件类型)164         /// </summary>165         /// <param name="fileName">单个文件的路径</param>166         public void Attachments(string fileName)167         {168             mailMessage.Attachments.Add(new Attachment(fileName));169         }170 171         /// <summary>172         /// 添加附件(默认为富文本RTF格式)173         /// </summary>174         /// <param name="fileName">单个文件的路径</param>175         public void AttachmentsForRTF(string fileName)176         {177             mailMessage.Attachments.Add(new Attachment(fileName, MediaTypeNames.application.Rtf));178         }179         #endregion180     }181 }

  调用是按照需求,自由设置参数。

 1 using LeeStudio.Basic; 2  3 private void SendEmail() 4 { 5     #region 最简设置 6     //SendEmail se = new SendEmail("*****@****.com", "****@163.com", "title", "body"); 7     //se.SetSmtp("password", "smtp.163.com"); //必须在所有参数设置完后调用此方法 8     #endregion 9 10     #region 完全设置11     //string toAddresses = "***@**.**,***@**.**";12     //string toNames = "frank,lee";13 14     //SendEmail se = new SendEmail("to@**.**", "from@**.**", "toname", "fromname","title", "body", false);15     //se.SetMoreToAddress("to@**.**", "toName");16     //se.SetCarbonCopyFor("cc@**.**");17     //se.SetBlindCarbonCopyFor("bcc@**.**");18 19     //string filePath = Request.PhysicalApplicationPath + "/file/SendEmail.txt";20     //se.Attachments(filePath);21     //filePath = Request.PhysicalApplicationPath + "/file/RTF文件.docx";22     //se.AttachmentsForRTF(filePath);23     //se.SetSmtp("email", "password", "smtp", 25, true, System.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表