如何從ASP.NET 2.0中發(fā)送電子郵件
如今,電子郵件已經(jīng)成為一種無所不在、異步通知和分布式的消息系統(tǒng)。存在許多web開發(fā)場所;其中,服務器端代碼都需要生成一個電子郵件并且把它發(fā)送給指定的接收者。該電子郵件可以被發(fā)送給網(wǎng)點中的一些用戶,通知他們有關于他們的新建用戶帳戶,提醒他們忘記的口令,或以郵件形式提交給他們一個清單。當然,這也可以是針對web開發(fā)者或站點管理員,提供給他們有關一個剛剛公開的未處理的異?;蛴脩艋仞伒南?。
幸好,ASP.NET使得發(fā)送電子郵件非常輕松。.NET框架版本1.x在System.Web.Mail類中包括了許多類,它們允許以編程方式通過短短的幾行代碼來發(fā)送電子郵件。盡管這個命名空間和這些類仍然存在于ASP.NET 2.0版本中,但是它們已經(jīng)過時,你可以在 System.Net.Mail命名空間中找到新的與郵件支持相關的類。
在本文中,讓我們來一起探討System.Net.Mail 命名空間中的相關類,并且分析如何從一個ASP.NET 2.0頁面的code-behind類中發(fā)送電子郵件。我們還要在Web.config中指定中繼服務器消息以及如何把這個消息應用于一些內置ASP.NET服務器控件中以便實現(xiàn)發(fā)送電子郵件(例如當一個用戶創(chuàng)建一個帳戶或需要一個口令提示器/重置器時)。
1.探討System.Net.Mail命名空間中的類
在System.Net.Mail命名空間中共有16個不同的類,它們都與把電子郵件發(fā)送到一個指定的簡單的郵件傳輸協(xié)議(SMTP)服務器以便進一步提交有關。在這個命名空間中有兩個核心類是:
◆MailMessage:描述一個電子郵件消息;它擁有From,To,Subject,Body等屬性;
◆SmtpClient:把一個指定的MailMessage實例發(fā)送到一個指定的SMTP服務器。
典型地,當你從一個ASP.NET 2.0頁面中發(fā)送電子郵件時,你要:
(1)創(chuàng)建一個MailMessage對象;
(2)賦給它屬性;
(3)創(chuàng)建一個SmtpClient類實例;
(4)指定關于使用該SMTP服務器的細節(jié)(如果它們沒有在Web.config中指定);
(5)經(jīng)由SmtpClient對象的Send方法發(fā)送該MailMessage。
其中,上面的第1步和第2步可以被略過,因為SmtpClient類的Send方法能夠接收一個MailMessage對象或接收四個字符串(分別描述電子郵件消息內容的from,to,subject和body部分)。
System.Net.Mail命名空間中的其它類還提供了更高級的電子郵件功能。例如,這些類能夠用于在一個電子郵件消息中添加附件,把對象嵌入到一個電子郵件,指定SMTP服務器認證消息等;還有一些Exception的派生類用于處理SMTP特定的異常。我們會在以后的文章中來討論這些其它類的更高級的使用情形。
【編輯推薦】