实际工作当中,我们会发现如果仅仅是发送一封纯文本的邮件,是完全不能满足客户的需要的。不过绝大多数的电子邮件处理程序都提供了一种方法来对文本的字体和颜色等进行更改,甚至有些还可以在一则邮件消息的正文中嵌入图片。典型的做法就是将这则邮件消息作为HTML来发送。下面我们就要来学习如何使用ASP.NET程序来处理发送一封HTML格式的邮件。
MailMessage对象也支持发送HTML格式的电子邮件。利用这种功能,我们可以以一种比标准文本消息格式更好,更加动态的方式来发送邮件消息。
下面的示例中,ASP.NET页面将用来给访问者发送一个产品有关的资料。但这里并不是仅仅将这个产品的资料作为纯文本来发送,而是使用了一些HTML元素对这则邮件消息进行格式化。
在这个页面的表单内,定义了一个TextBox控件,用于输入访问者的Email地址:
<asp:TextBox id="txtToEmail" runat="server" />
以及一个用来提交本页面的Button控件:
<asp:button id="btnOK" runat="server" text="Send" type="Submit" OnClick="SubmitBtn_Click" />
当点击这个Button按钮时,针触发下列这段代码:
Sub SubmitBtn_Click(Sender As Object, E As EventArgs)
Dim TheMailMessage as New MailMessage
Dim TheMailConnection as SmtpMail
TheMailMessage.From = “
[email protected]”
TheMailMessage.To = txtToEmail.Text
TheMailMessage.Subject = "测试发送HTML格式的邮件"
//邮件正文内容
Dim TheMessage as String
The Message = "<HTML><BODY>" _
& "<B>产品名称:</B> 运动鞋 <BR>" _
& "<B>描述:</B> 这双鞋是名牌,质量可靠,颜色明亮 <BR>" _
& "<B>价格:</B> 366元 <BR><BR>" _
& "</BODY></HTML>"
//设置邮件正文
TheMailMessage.Body = TheMessage
//这步是发送HTML格式邮件的关键,设置邮件的格式
TheMailMessage.BodyFormat = MailFormat.Html
//发送邮件
TheMailConnection.Send(TheMailMessage)
End Sub
这样就可以很简单的发送一封HTML格式的邮件了。在这里需要注意,这则邮件消息的正文实际上是一个Web页面的内容。我们可以在这里放置任何HTML元素。如果我们需要在邮件正文是放置一幅图片,那么我们只需要在邮件正文中加入<IMG>元素就可以了。不过图片的SRC属性必须设置为绝对路径,比如http://www.webpdo.com/images/logo.jpg。
接下来,还需要注意BodyFormat属性,如果不把它设置为MailFormat.Html,这则消息仅会作为纯文本消息发送出去了。