在這篇文章中,我們將示範如何編寫asp.net來發送emails。這將要討論到諸如email 格式,優先順序別,附件和郵件加密。
Asp.net通過使用SmtpMail對象來發送郵件。SmtpMail對象發送郵件是通過以下幾步來完成的。
# 匯入與mail相關的名稱空間。
# 建立一個message對象並設定屬性。
# 通過SmtpMail對象執行個體的'Send'方法來發送郵件。
現在讓我們一步步的來瞭解從asp.net頁面發送郵件的過程。
一. 匯入名稱空間
在asp.net頁面中匯入System.Web.Util名稱空間,這個名稱空間包含了所有發送郵件所必須的對象。這些對象是:
| 對象 |
簡介 |
| SmtpMail |
聲明郵件系統(mail system)來發送郵件。 |
| MailMessage |
聲明一個訊息(message),包含發送地址,接收地址等屬性。 |
| MailFormat |
聲明訊息的格式-Html,Text 等等。 |
| MailAttachment |
聲明郵件的附件。 |
| MailEncoding enum |
聲明加密方式:Base64 or UUencode. |
| MailPriority enum |
設定郵件的優先順序別:值:高,底,一般 |
<% @Import Namespace = "System.Web.Util" %>
二。初始化MailMessage 對象
使用以下語句可以實現初始化MailMessage對象。
Dim mailObj AS new MailMessage
MailMessage對象具有以下屬性。
| 屬性 |
描述 |
| From |
發送方的email地址 |
| To |
接收方的email地址 |
| Subject |
Email的主題 |
| Body |
Email的內容 |
| CC |
List of recipients copied on the email |
| BCC |
List of recipients blind-copied on the email |
| Priority |
郵件的優先順序別 高,底,一般 |
| BodyEncoding |
加密郵件的內容 Base64 或 UUencode |
| BodyFormat |
內容的格式 Html 或文本 |
| Attachments |
附件列表 |
以下幾行代碼示範了如何使用MailMessage對象的屬性的方法。他描述了我們將要建立的訊息Message, 而這個訊息(message)是用SmtpMail對象來發送的。在我們的這個例子中,mailObj就是MailMeessage對象的執行個體。
mailObj.From = "abc@mydomain.com"
mailObj.To = Request.Form ("to")
mailObj.Subject = "subject of the mail"
mailObj.Body = "Message of the mail"
三。發送郵件
最後通過SmtpMail對象的'send'方法來發送郵件。下面的代碼就是用來發送郵件的。
SmtpMail.Send(mailObj)
最後我們把以上的這些應用到一個完整的例子當中來。
下面是用Asp.net+C#編寫的。
<%@page language="C#" %>
<%@Import Namespace="System.Web.Util" %>
<HTML><BODY>
<SCRIPT LANGUAGE="C#" RUNAT="server">
// This method is called on the server when the submit
// button is clicked on the client and when the page
// posts back to itself
public void SendMail (Object Obj, EventArgs E)
{
MailMessage mailObj = new MailMessage();
// 設定email的'from'和'to'的地址
mailObj.From = Request.Form("From");
mailObj.To = Request.Form("To");
mailObj.Subject = "Subject Of the Mail";
mailObj.Body = "Body of the Mail";
// 可選: 使用html格式的Email
mailObj.BodyFormat = MailFormat.Html;
// 可選: 對郵件進行加密
mailObj.BodyEncoding = MailFormat.Base64;
// 可選: 設定郵件的優先順序別為高
mailObj.Priority = MailPriority.High;
// 可選: 附件
// 注意這裡我們建立了一個MailAttachment對象來附加一個檔案到email。
mailObj.Attachments.Add(new MailAttachment("c:\\test.doc"));
// 使用SmtpMail對象來發送郵件。
SmtpMail.Send(mailObj);
}
</SCRIPT>
<asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/>
<FORM METHOD="post" RUNAT="server">
Email Recipient: <INPUT TYPE="text" NAME="to"> <br>
Email Sender: <INPUT TYPE="text" NAME="from">
<INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail">
</FORM>
</BODY>