使用.NET发送邮件
如果你曾经使用过ASP来发送邮件,你大概会使用CDONTS,但是在.NET里,发送邮件的功能已经封装进
.NET Framework的System.Web.Mail的命名空间里了,使用这个命名空间下类,就可以很容易的构建一个发送邮件的程序,所需要仅仅是在windows中架构好SMTP服务器。
System.Web.Mail命名空间:
这个命名控件下包含了以下的对象和三个属性:
包含的对象:
MailAttachment:与邮件附件有关的对象类
MailMessage :邮件主体
SmtpMail :负责发送邮件的SMTP协议。
属性列表:
MailEncoding :邮件的编码(Base64,UUEncode)
MailFormat :邮件的格式(Html超文本格式,Text纯文本格式)
MailPriority :邮件优先级(High, Medium, Low)
构建MailMessage对象:
MailMessage对象是邮件的承载主体,通常可以先构建好MailMessage对象,然后设置它的属性的方式来
构建邮件程序,下面列出了的是一些常用的属性:
Attachments :邮件附件
Bcc :暗送地址
Body :邮件主体
BodyFormat :邮件格式(html,text)
Cc :抄送地址
From :发信人地址
Priority :邮件优先级(High, Medium,Low)
Subject :邮件主题
To :接收人地址
UrlContentBase :在HTML格式邮件中的URL编码方式
UrlContentLocation:邮件信息的优先级(High, Medium,Low)
使用SMTPMail发送邮件
构建好MailMessage对象之后,还需要使用另外一个对象-SMTPMail-来发送邮件,SMTPMAIL有一个很
重要的方法:Send,该方法有两个不同用法,其中一个可以仅仅发送整个的MailMessage对象:
SmtpMail.Send(myEmailObject);
另外一个允许你分别指定发送者,收邮件地址,邮件主题,邮件主题,然后再发送出去:
SmtpMail.Send(strFrom, strTo, strSubject, strBody);
例子程序:
现在,让我们来看看一个完整的例子,在这个例子中,我先创建一个MailMessage对象,然后设置部分属性,最后使用SmtpMail对象把它发送出去:
<%@ Page Language="C#" %>
<script language="C#" runat="server">
void Page_Load()
{
// CREATE A MAIL MESSAGE
System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();
// SET MESSAGE PARAMETERS
myEmail.From = "agent@mypersonalshoppers.com";
myEmail.To = "john@johnsmith.com";
myEmail.Subject = "Product Availability Notice";
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
myEmail.Body = "The sunglasses you expressed interest in are now in stock.";
//SEND THE MESSAGE
System.Web.Mail.SmtpMail.Send(myEmail);
//UPDATE STATUS
lblMailStatus.Text = "Mail successfully sent.";
}
</script>
<html>
<body>
<asp:Label id="lblMailStatus" runat="server" />
</body>
</html>
<%@ Page Language="VB" %>
<script language="VB" runat="server">
Sub Page_Load()
'CREATE A MAIL MESSAGE
Dim myEmail as System.Web.Mail.MailMessage = new System.Web.Mail.MailMessage()
'SET MESSAGE PARAMETERS
myEmail.From = "agent@mypersonalshoppers.com"
myEmail.To = "john@johnsmith.com"
myEmail.Subject = "Product Availability Notice"
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html
myEmail.Body = "The sunglasses you expressed interest in are now in stock."
'SEND THE MESSAGE
System.Web.Mail.SmtpMail.Send(myEmail)
'UPDATE STATUS
lblMailStatus.Text = "Mail successfully sent."
End Sub
</script>
<html>
<body>
<asp:Label id="lblMailStatus" runat="server" />
</body>
</html>