ASP.NET 2.0中發送電子郵件

     ASP.NET 2.0 中發送電子郵件變得非常簡單。發送電子郵件的類庫主要在命名空間System.Net.Mail中,在這個命名空間中有兩個核心類是:       · MailMessage:描述一個電子郵件消息;它擁有From,To,Subject,Body等屬性;       · SmtpClient:把一個指定的MailMessage實例發送到一個指定的SMTP服務器。       發送電子郵件的一般步驟是:       1.創建一個MailMessage對象;       2.賦給它的From,To,Subject,Body等屬性;       3.創建一個SmtpClient類實例;       4.指定關於使用該SMTP服務器的細節(如果它們沒有在Web.config中指定);       5.經由SmtpClient對象的Send方法發送該MailMessage。              下面的代碼演示了發送電子郵件的過程:
string mailServerName = "smtp.126.com";  //發送郵件的SMTP服務器 string mailFrom = "[email protected]";   //發件人郵箱(用126的郵件服務器,就必須用126郵箱的用戶名) string mailTo = "[email protected]";   //收件人郵箱 string subject = "用代碼方式發送郵件";//郵件主題 string body = "這裏是郵件正文了";  //郵件正文 using (MailMessage message = new MailMessage(mailFrom, mailTo, subject, body)) {     //SmtpClient是發送郵件的主體,這個構造函數是告知SmtpClient發送郵件時使用哪個SMTP服務器     SmtpClient mailClient = new SmtpClient(mailServerName);     //將認證實例賦予mailClient,也就是訪問SMTP服務器的用戶名和密碼     mailClient.Credentials = new NetworkCredential("sender0624""111111");     //最終的發送方法     mailClient.Send(message); }
       上述方法是通過Code方式發送郵件的,而在Asp.Net 2.0中Framework考慮更多的是配置式,也就是通過config方式來進行應用程序的控制,減少程序參數硬編碼,這個配置節屬於<system.net>節下的。         首先在Web.config文件中增加如下配置節:
 <system.net>     <!--如果是第三方smtp服務器,需要指定userName 和 password,並根據host指定發件人郵件地址from         測試發現from值必須是userName值加上指定的smpt服務器纔行,而且是必須指定的         如果是本機smtp服務器,只需指定defaultCredentials="true"即可-->     <mailSettings>       <smtp deliveryMethod="Network" from ="sender0624@126.com" >         <network host="smtp.126.com" port="25" userName="sender0624" password="111111/>       </smtp>     </mailSettings>   </system.net>
        接下來是程序代碼,你會發現配置方式較Code方式代碼是多麼簡潔,而且避免了硬編碼,Smtp信息是從配置文件中讀取的。
using (MailMessage message = new MailMessage()) {     message.To.Add(new MailAddress("[email protected]")); //收件人郵箱     message.Subject = "通過配置文件設置發送郵件";//郵件主題     message.Body = "這裏是郵件正文了";  //郵件正文     SmtpClient mailClient = new SmtpClient();     mailClient.Send(message); }
        相比Code方式,我們發現配置方式代碼中省去了發件人郵箱,SMTP服務器和SMTP服務器認證的Credentials,代碼變得相當簡潔,更爲重要的是這些信息可以在Web.config文件中配置,這就大大增加了程序的靈活性,這是推薦採用的方式。需要說明的一點,示例中的郵箱用戶名和密碼都是真實的,理論上運行該示例程序是可以正常發送郵件的,但發送郵件時程序會拋出異常“郵箱不可用。 服務器響應爲: Óû§±»Ëø¶¨ ”,但如果Credentials認證信息換成我另一個126郵箱,卻能正常發送郵件了,一直沒能找到原因所在,將對SmtpClient發送郵件的穩定性做進一步的研究,也希望能得到大家的指導。         參考資料:ASP.NET 2.0中發送電子郵件剖析之一.Net 2.0 中的發送郵件實現小解。         源代碼下載地址: 點擊下載完整示例程序 (示例路徑:/NetFromwork/SendMail.aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章