作者:tigerwen01
大家在日常開發中,經常會遇到開發一個向客戶自動發送Email的應用模塊,例如,當客戶操作某一特定的操作或上網注冊、購物時,服務器端在客戶操作完成時向客戶自動發送一封確認郵件等。.NET Framework 多種方法,可以使用socket(套接字)來建立和郵件服務器的連接,然后使用SMTP(簡單郵件傳輸協議)服務傳送郵件,不過這樣做相當復雜。我們還是使用.NET框架的System.Web.Mail命名空間提供的類來完成發送Email吧,因為這樣做很簡單。
System.Web.Mail命名空間為SMTP(簡單郵件傳輸協議)提供了一個簡單的托管接口,包含很多類,其中有MailMessage/MailAttachment/SmtpMail等重要類,其中MailAttachment 類提供用于構造電子郵件附件的屬性和方法,MailMessage 類提供用于構造電子郵件的屬性和方法,SmtpMail 類提供用于使用宿主系統的協作數據對象 (CDOSYS) 消息組件來發送消息的屬性和方法。
為了保證程序能夠正確運行,設置IIS中默認SMTP虛擬服務器的“中繼”方法如下:
進入“Internet信息服務“界面,右鍵點擊“默認SMTP虛擬服務器屬性”在彈出菜單中選擇“屬性”,在“訪問”選項卡中單擊“中繼”按鈕,然后在“中繼限制”窗口中在“ip地址(掩碼)/域名”處加添“127.0.0.1”。
下面給出一個SendEmail.aspx文件,該文件使用Visual Web Developer 2005速成版的測試版2下開發,在Windows2000Server+sp4下運行通過。以供參考:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <script runat="server"> void OnSend(Object Sender,EventArgs e) { MailMessage messge = new MailMessage(); messge.From = Sed.Text; messge.To = Receiver.Text; messge.Subject = Subj.Text; messge.Body = Body.Text; SmtpMail.SmtpServer = "localhost"; SmtpMail.Send(messge); lab.Text ="郵件發送成功!"; } </script> <html xmlns=" <head runat="server"> <title>發送電子郵件用戶界面</title> </head> <body> <h1>發送電子郵件用戶界面</h1> <form id="form1" runat="server"> <div> <hr> <table cellspacing="8"> <tr> <td align=right valign=bottom>發送者:</td> <td><asp:TextBox ID=Sed runat=server/></td> </tr> <tr> <td align=right valign=bottom>接收者:</td> <td><asp:TextBox ID=Receiver runat=server /></td> </tr> <tr> <td align=right valign=bottom>主題:</td> <td><asp:TextBox ID=Subj runat=server /></td> </tr> <tr> <td align=right valign=bottom>內容:</td> <td><asp:TextBox ID=Body TextMode=MultiLine Rows=5 Columns=40 runat=server /></td> </tr> </table> <hr /> <asp:Button Text="發送" OnClick="OnSend" runat=server /> </div> </form> <asp:Label ID=lab runat=server/> </body> </html> 本文只介紹如何在.NET框架的應用程序里發送電子郵件,并沒有涉及到System.Web.Mail命名空間的類的詳細介紹,關于System.Web.Mail可以參考相關資料。
新聞熱點
疑難解答