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.
新闻热点
疑难解答