日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ASP.NET2.0中發(fā)送電子郵件-陳晨-博客園

 suweixin 2011-01-15
      ASP.NET 2.0 中發(fā)送電子郵件變得非常簡單。發(fā)送電子郵件的類庫主要在命名空間System.Net.Mail中,在這個(gè)命名空間中有兩個(gè)核心類是:
      · MailMessage:描述一個(gè)電子郵件消息;它擁有From,To,Subject,Body等屬性;
      · SmtpClient:把一個(gè)指定的MailMessage實(shí)例發(fā)送到一個(gè)指定的SMTP服務(wù)器。

      發(fā)送電子郵件的一般步驟是:
      1.創(chuàng)建一個(gè)MailMessage對(duì)象;
      2.賦給它的From,To,Subject,Body等屬性;
      3.創(chuàng)建一個(gè)SmtpClient類實(shí)例;
      4.指定關(guān)于使用該SMTP服務(wù)器的細(xì)節(jié)(如果它們沒有在Web.config中指定);
      5.經(jīng)由SmtpClient對(duì)象的Send方法發(fā)送該MailMessage。
      
      下面的代碼演示了發(fā)送電子郵件的過程:
string mailServerName = "smtp.126.com";  //發(fā)送郵件的SMTP服務(wù)器
string mailFrom = "sender0624@126.com";   //發(fā)件人郵箱(用126的郵件服務(wù)器,就必須用126郵箱的用戶名)
string mailTo = "supremezone@126.com";   //收件人郵箱
string subject = "用代碼方式發(fā)送郵件";//郵件主題
string body = "這里是郵件正文了";  //郵件正文

using (MailMessage message = new MailMessage(mailFrom, mailTo, subject, body))
{
    
//SmtpClient是發(fā)送郵件的主體,這個(gè)構(gòu)造函數(shù)是告知SmtpClient發(fā)送郵件時(shí)使用哪個(gè)SMTP服務(wù)器
    SmtpClient mailClient = new SmtpClient(mailServerName);
    
//將認(rèn)證實(shí)例賦予mailClient,也就是訪問SMTP服務(wù)器的用戶名和密碼
    mailClient.Credentials = new NetworkCredential("sender0624""111111");
    
//最終的發(fā)送方法
    mailClient.Send(message);
}

       上述方法是通過Code方式發(fā)送郵件的,而在Asp.Net 2.0中Framework考慮更多的是配置式,也就是通過config方式來進(jìn)行應(yīng)用程序的控制,減少程序參數(shù)硬編碼,這個(gè)配置節(jié)屬于<system.net>節(jié)下的。
        首先在Web.config文件中增加如下配置節(jié):
 <system.net>
    
<!--如果是第三方smtp服務(wù)器,需要指定userName 和 password,并根據(jù)host指定發(fā)件人郵件地址from
        測試發(fā)現(xiàn)from值必須是userName值加上指定的smpt服務(wù)器才行,而且是必須指定的
        如果是本機(jī)smtp服務(wù)器,只需指定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>

        接下來是程序代碼,你會(huì)發(fā)現(xiàn)配置方式較Code方式代碼是多么簡潔,而且避免了硬編碼,Smtp信息是從配置文件中讀取的。
using (MailMessage message = new MailMessage())
{
    message.To.Add(
new MailAddress("supremezone@126.com")); //收件人郵箱
    message.Subject = "通過配置文件設(shè)置發(fā)送郵件";//郵件主題
    message.Body = "這里是郵件正文了";  //郵件正文

    SmtpClient mailClient 
= new SmtpClient();
    mailClient.Send(message);
}

        相比Code方式,我們發(fā)現(xiàn)配置方式代碼中省去了發(fā)件人郵箱,SMTP服務(wù)器和SMTP服務(wù)器認(rèn)證的Credentials,代碼變得相當(dāng)簡潔,更為重要的是這些信息可以在Web.config文件中配置,這就大大增加了程序的靈活性,這是推薦采用的方式。需要說明的一點(diǎn),示例中的郵箱用戶名和密碼都是真實(shí)的,理論上運(yùn)行該示例程序是可以正常發(fā)送郵件的,但發(fā)送郵件時(shí)程序會(huì)拋出異常“郵箱不可用。 服務(wù)器響應(yīng)為: Óû§±»Ëø¶¨ ”,但如果Credentials認(rèn)證信息換成我另一個(gè)126郵箱,卻能正常發(fā)送郵件了,一直沒能找到原因所在,將對(duì)SmtpClient發(fā)送郵件的穩(wěn)定性做進(jìn)一步的研究,也希望能得到大家的指導(dǎo)。

        參考資料:ASP.NET 2.0中發(fā)送電子郵件剖析之一,.Net 2.0 中的發(fā)送郵件實(shí)現(xiàn)小解

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多