C#实现发送邮件,实测成功(欢迎试用反馈)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#实现发送邮件,实测成功(欢迎试用反馈)

C#实现发送邮件,实测成功(欢迎试用反馈)

 2016/5/22 5:32:36  airforce094  程序员俱乐部  我要评论(0)
  • 摘要:1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Text;5usingSystem.Threading.Tasks;6usingSystem.Net.Mail;7usingSystem.Net.Mime;8usingSystem.Net;9usingSystem.IO;1011namespaceTestForm12{13classEmail14
  • 标签:C# 实现 邮件 成功 发送邮件
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using System.Net.Mail;
  7 using System.Net.Mime;
  8 using System.Net;
  9 using System.IO;  
 10 
 11 namespace TestForm
 12 {
 13     class Email
 14     {
 15         string smtpHost = string.Empty;
 16         string Sendmailaddress = string.Empty;
 17         string Sendpassword = string.Empty;
 18         string SendDisplayname = string.Empty;
 19         string Recevivemailaddress = string.Empty;
 20         string ReceviveDisplayname = string.Empty;
 21 
 22         /// <summary>
 23         /// 
 24         /// </summary>
 25         /// <param name="host">主机号</param>
 26         /// <param name="sendmailaddress">发送人邮箱地址</param>
 27         /// <param name="sendpassword">发送邮箱密码</param>
 28         /// <param name="sendDisplayname">发送人显示名称</param>
 29         /// <param name="recevivemailaddress">接收人邮箱地址</param>
 30         /// <param name="receviveDisplayname">接收人显示名称</param>
 31         public Email(string host, string sendmailaddress, string sendpassword, string sendDisplayname, string recevivemailaddress, string receviveDisplayname) 
 32         {
 33             smtpHost = host;
 34             Sendmailaddress = sendmailaddress;
 35             Sendpassword = sendpassword;
 36             SendDisplayname = sendDisplayname;
 37             Recevivemailaddress = recevivemailaddress;
 38             ReceviveDisplayname = receviveDisplayname;
 39         }
 40 
 41         /// <summary>
 42         /// 发送邮件功能
 43         /// </summary>
 44         /// <param name="mailsubject">邮件标题</param>
 45         /// <param name="mailbody">邮件主要内容</param>
 46         /// <param name="isadddocument">是否添加附件</param>
 47         /// <param name="documentpath">添加附件的文件路径列表</param>
 48         /// <returns></returns>
 49         public bool Sendmail(string mailsubject, string mailbody, bool isadddocument, List<string> documentpath)
 50         {
 51             bool sendstatus = false;
 52             try 
 53             {
 54                 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtpHost);  //确定smtp服务器地址。实例化一个Smtp客户端
 55                 MailAddress from = new MailAddress(Sendmailaddress, SendDisplayname, Encoding.UTF8);//构造一个发件人地址对象
 56                 MailAddress to = new MailAddress(Recevivemailaddress, ReceviveDisplayname, Encoding.UTF8);//构造一个收件人地址对象                
 57                 MailMessage message = new MailMessage(from, to);//构造一个Email的Message对象
 58 
 59                 message.Subject = mailsubject;
 60                 message.SubjectEncoding = Encoding.UTF8;
 61                 message.Body = mailbody;
 62                 message.BodyEncoding = Encoding.UTF8;
 63 
 64                 //设置邮件的信息
 65                 client.DeliveryMethod = SmtpDeliveryMethod.Network;
 66                 message.BodyEncoding = System.Text.Encoding.UTF8;
 67                 message.IsBodyHtml = false;
 68 
 69                 //如果服务器支持安全连接,则将安全连接设为true。
 70                 //如果是gmail则一定要将其设为true
 71                 if (smtpHost == "smpt.gmail.com")
 72                     client.EnableSsl = true;
 73                 else
 74                     client.EnableSsl = false;
 75 
 76                 if (isadddocument == true)
 77                 {
 78                     AddDocument(message, documentpath);
 79                 }
 80                 //设置用户名和密码。
 81                 //string userState = message.Subject;
 82                 client.UseDefaultCredentials = false;
 83                 //用户登陆信息
 84                 NetworkCredential myCredentials = new NetworkCredential(Sendmailaddress, Sendpassword);
 85                 client.Credentials = myCredentials;
 86                 //发送邮件
 87                 client.Send(message);
 88                 sendstatus = true; 
 89             }
 90             catch { }
 91             return sendstatus;
 92         }
 93 
 94         /// <summary>
 95         /// 添加附件功能
 96         /// </summary>
 97         /// <param name="message">Mailmessage对象</param>
 98         /// <param name="Documentpath">附件路径列表</param>
 99         private void AddDocument(MailMessage message, List<string> Documentpath)
100         {
101             foreach(string filepath in Documentpath)
102             {
103                 try
104                 {
105                     if (File.Exists(filepath)) //判断文件是否存在
106                     {
107                         Attachment attach = new Attachment(filepath);    //构造一个附件对象
108                         ContentDisposition disposition = attach.ContentDisposition;   //得到文件的信息
109                         disposition.CreationDate = System.IO.File.GetCreationTime(filepath);
110                         disposition.ModificationDate = System.IO.File.GetLastWriteTime(filepath);
111                         disposition.ReadDate = System.IO.File.GetLastAccessTime(filepath);
112                         message.Attachments.Add(attach);   //向邮件添加附件
113                     }
114                 }
115                 catch { }      
116             }             
117         }
118     }
119 }

做网站的时候用到,看到一篇博文:http://www.cnblogs.com/youring2/archive/2008/11/29/1343911.html

深感有用,特小修并写成类,希望能帮人帮己~

发表评论
用户名: 匿名