先來第一種html
1 // 版權全部 ZhuoYue Co.,Ltd 卓越一通祕密信息 2 // 文件名稱:MyEmailByCDO.cs 3 // 做 者:huangzh 4 // 建立日期:2015-08-20 16:18:27 5 // 功能描述:發送郵件MyEmailByCDO 6 // 任務編號: 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using System.Text; 11 12 namespace ZhuoYueE.Bpc.Core.Email 13 { 14 15 /// <summary> 16 /// 功能描述:發送郵件MyEmailByCDO 17 /// 做 者:huangzh 18 /// 建立日期:2015-08-20 16:18:24 19 /// 任務編號: 20 /// </summary> 21 public class MyEmailByCDO 22 { 23 ///<summary> 24 /// 構造函數 25 ///</summary> 26 ///<param name="strserver">發件箱的郵件服務器地址</param> 27 ///<param name="strtoMail">收件人地址(能夠是多個收件人,程序中是以「;"進行區分的)</param> 28 ///<param name="strfromMail">發件人地址</param> 29 ///<param name="strsubject">郵件標題</param> 30 ///<param name="stremailBody">郵件內容(能夠以html格式進行設計)</param> 31 ///<param name="strpassword">發件人郵箱密碼</param> 32 ///<param name="intport">發送郵件所用的端口號(htmp協議默認爲25)</param> 33 ///<param name="blnsslEnable">true表示對郵件內容進行socket層加密傳輸,false表示不加密</param> 34 ///<param name="strCC">抄送人</param> 35 public static void SendMyEmailByCDO(string strserver, 36 string strtoMail, 37 string strfromMail, 38 string strsubject, 39 string stremailBody, 40 string strpassword, 41 int intport, 42 bool blnsslEnable, 43 string strCC) 44 { 45 SendMyEmailByCDO(strserver, 46 strtoMail, 47 strfromMail, 48 strsubject, 49 stremailBody, 50 strpassword, 51 intport, 52 blnsslEnable, 53 strCC, 54 null); 55 } 56 57 ///<summary> 58 /// 構造函數 59 ///</summary> 60 ///<param name="strserver">發件箱的郵件服務器地址</param> 61 ///<param name="strtoMail">收件人地址(能夠是多個收件人,程序中是以「;"進行區分的)</param> 62 ///<param name="strfromMail">發件人地址</param> 63 ///<param name="strsubject">郵件標題</param> 64 ///<param name="stremailBody">郵件內容(能夠以html格式進行設計)</param> 65 ///<param name="strpassword">發件人郵箱密碼</param> 66 ///<param name="intport">發送郵件所用的端口號(htmp協議默認爲25)</param> 67 ///<param name="blnsslEnable">true表示對郵件內容進行socket層加密傳輸,false表示不加密</param> 68 /// <param name="strCC">抄送人</param> 69 /// <param name="files">附件</param> 70 public static void SendMyEmailByCDO( 71 string strserver, 72 string strtoMail, 73 string strfromMail, 74 string strsubject, 75 string stremailBody, 76 string strpassword, 77 int intport, 78 bool blnsslEnable, 79 string strCC, 80 List<string> files) 81 { 82 string stryourEmail = strfromMail; 83 CDO.Message message = new CDO.Message(); 84 CDO.IConfiguration configuration = message.Configuration; 85 ADODB.Fields fields = configuration.Fields; 86 87 Console.WriteLine(String.Format("Configuring CDO settings...")); 88 89 ADODB.Field field = fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"]; 90 field.Value = strserver; 91 92 field = fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"]; 93 field.Value = intport; 94 95 96 field = fields["http://schemas.microsoft.com/cdo/configuration/sendusing"]; 97 field.Value = CDO.CdoSendUsing.cdoSendUsingPort; 98 99 field = fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"]; 100 field.Value = CDO.CdoProtocolsAuthentication.cdoBasic; 101 102 field = fields["http://schemas.microsoft.com/cdo/configuration/sendusername"]; 103 field.Value = stryourEmail; 104 105 field = fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"]; 106 field.Value = strpassword; 107 108 field = fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"]; 109 field.Value = blnsslEnable.ToString().ToLower(); 110 111 fields.Update(); 112 113 Console.WriteLine(String.Format("Building CDO Message...")); 114 115 message.From = stryourEmail; 116 message.To = strtoMail; 117 message.Subject = strsubject; 118 message.BodyPart.Charset = "utf-8"; 119 120 121 if (!string.IsNullOrEmpty(strCC)) 122 { 123 message.CC = strCC; 124 } 125 126 message.HTMLBody = stremailBody; 127 if (files != null) 128 { 129 foreach (string stritem in files) 130 { 131 message.AddAttachment(stritem); 132 } 133 } 134 135 Console.WriteLine(String.Format("Attempting to connect to remote server...")); 136 137 // Send message. 138 message.Send(); 139 } 140 } 141 }
第二種服務器
1 // 版權全部 ZhuoYue Co.,Ltd 卓越一通祕密信息 2 // 文件名稱:MyEmail.cs 3 // 做 者:huangzh 4 // 建立日期:2015-08-20 08:37:07 5 // 功能描述:郵件輔助類 6 // 任務編號: 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using System.Text; 11 using System.Net.Mail; 12 using System.Net.Mime; 13 using System.IO; 14 15 namespace ZhuoYueE.Bpc.Core.Email 16 { 17 /// <summary> 18 /// 功能描述:郵件輔助類 19 /// 做 者:huangzh 20 /// 建立日期:2015-08-20 08:36:52 21 /// 任務編號: 22 /// </summary> 23 public class MyEmailBySmtp 24 { 25 /// <summary> 26 /// 主要處理髮送郵件的內容(如:收發人地址、標題、主體、圖片等等) 27 /// </summary> 28 private MailMessage m_mailMessage; 29 /// <summary> 30 /// 主要處理用smtp方式發送此郵件的配置信息(如:郵件服務器、發送端口號、驗證方式等等) 31 /// </summary> 32 private SmtpClient m_smtpClient; 33 /// <summary> 34 /// 發送郵件所用的端口號(htmp協議默認爲25) 35 /// </summary> 36 private int m_intsenderPort; 37 /// <summary> 38 /// 發件箱的郵件服務器地址(IP形式或字符串形式都可) 39 /// </summary> 40 private string m_strsenderServerHost; 41 /// <summary> 42 /// 發件箱的密碼 43 /// </summary> 44 private string m_strsenderPassword; 45 /// <summary> 46 /// 發件箱的用戶名(即@符號前面的字符串,例如:hello@163.com,用戶名爲:hello) 47 /// </summary> 48 private string m_strsenderUsername; 49 /// <summary> 50 /// 是否對郵件內容進行socket層加密傳輸 51 /// </summary> 52 private bool m_blnsnableSsl; 53 /// <summary> 54 /// 抄送 55 /// </summary> 56 private string m_strCC; 57 58 ///<summary> 59 /// 構造函數 60 ///</summary> 61 ///<param name="strserver">發件箱的郵件服務器地址</param> 62 ///<param name="strtoMail">收件人地址(能夠是多個收件人,程序中是以「;"進行區分的)</param> 63 ///<param name="strfromMail">發件人地址</param> 64 ///<param name="strsubject">郵件標題</param> 65 ///<param name="stremailBody">郵件內容(能夠以html格式進行設計)</param> 66 ///<param name="strusername">發件箱的用戶名(即@符號前面的字符串,例如:hello@163.com,用戶名爲:hello)</param> 67 ///<param name="strpassword">發件人郵箱密碼</param> 68 ///<param name="intport">發送郵件所用的端口號(htmp協議默認爲25)</param> 69 ///<param name="blnsslEnable">true表示對郵件內容進行socket層加密傳輸,false表示不加密</param> 70 ///<param name="strCC">抄送</param> 71 public MyEmailBySmtp( 72 string strserver, 73 string strtoMail, 74 string strfromMail, 75 string strsubject, 76 string stremailBody, 77 string strusername, 78 string strpassword, 79 int intport, 80 bool blnsslEnable, 81 string strCC) 82 { 83 try 84 { 85 86 m_mailMessage = new MailMessage(); 87 m_mailMessage.To.Add(strtoMail); 88 m_mailMessage.From = new MailAddress(strfromMail, strfromMail, Encoding.UTF8); 89 m_mailMessage.Subject = strsubject; 90 m_mailMessage.Body = stremailBody; 91 m_mailMessage.IsBodyHtml = true; 92 m_mailMessage.BodyEncoding = System.Text.Encoding.UTF8; 93 m_mailMessage.Priority = MailPriority.High; 94 m_mailMessage.CC.Add(strCC); 95 this.m_strsenderServerHost = strserver; 96 this.m_strsenderUsername = strusername; 97 this.m_strsenderPassword = strpassword; 98 this.m_intsenderPort = intport; 99 this.m_blnsnableSsl = blnsslEnable; 100 } 101 catch 102 { 103 throw; 104 } 105 } 106 107 ///<summary> 108 /// 添加附件 109 ///</summary> 110 ///<param name="strattachmentsPath">附件的路徑集合,以分號分隔</param> 111 public void AddAttachments(string strattachmentsPath) 112 { 113 try 114 { 115 //以什麼符號分隔能夠自定義 116 string[] path = strattachmentsPath.Split(';'); 117 Attachment data; 118 ContentDisposition disposition; 119 for (int i = 0; i < path.Length; i++) 120 { 121 data = new Attachment(path[i], MediaTypeNames.Application.Octet); 122 disposition = data.ContentDisposition; 123 disposition.CreationDate = File.GetCreationTime(path[i]); 124 disposition.ModificationDate = File.GetLastWriteTime(path[i]); 125 disposition.ReadDate = File.GetLastAccessTime(path[i]); 126 m_mailMessage.Attachments.Add(data); 127 } 128 129 } 130 catch 131 { 132 throw; 133 } 134 } 135 136 ///<summary> 137 /// 郵件的發送 138 ///</summary> 139 public void Send() 140 { 141 try 142 { 143 144 if (m_mailMessage != null) 145 { 146 m_smtpClient = new SmtpClient(); 147 m_smtpClient.Host = this.m_strsenderServerHost; 148 m_smtpClient.Port = m_intsenderPort; 149 m_smtpClient.UseDefaultCredentials = true; 150 m_smtpClient.EnableSsl = this.m_blnsnableSsl; 151 m_smtpClient.Credentials = new System.Net.NetworkCredential(this.m_strsenderUsername, this.m_strsenderPassword); 152 m_smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 153 154 m_smtpClient.Send(m_mailMessage); 155 } 156 157 } 158 catch 159 { 160 throw; 161 } 162 } 163 } 164 }
爲何這裏寫了2中方式呢???socket
我相信大多數人發送郵件使用第二種,可是有時候第二種方式是發不出去的,那麼什麼狀況發佈出去呢???ide
答曰:函數
當你使用公司內部郵件服務器發送郵件,而且須要SSL加密的時候,你就呵呵一下,第二種不行了,而後你能夠嘗試第一種了,最少我這裏是這種狀況。ui
我如今發送郵件的通常都用第一種的代碼了。this
有什麼問題,請留言吧。加密