你的位置:首页 > ASP.net教程

[ASP.net教程]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         try104         {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

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