在这篇文章中,我们将演示如何编写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>
本人的翻译水平不高,有些地方自己懂,但是要翻译过来还真难,希望大家指正。括号中的英文是自己觉得翻译不准的地方。