|
ASP.NET 2.0发送电子邮件全面剖析之二 |
来源:转载 人气:1729 录入时间:2007-11-8 |
一、简介
在上篇中我们详细分析过,.NET框架2.0版本提供了一个新的命名空间(System.Net.Mail)和一些发送电子邮件的新类(注意:.NET框架1.x版本中提供的命名空间System.Web.Mail及相关的类仍然可以使用,以实现向后兼容性)。而且,我们还详细分析过如何使用System.Net.Mail命名空间中的MailMessage和SmtpClient类来发送简单的普通文本格式的电子邮件消息。
本篇将讨论与电子邮件相关的更高级的选项。我们要分析如何发送HTML格式的电子邮件,如何包括附件,以及当发送一个电子邮件时如何优雅地处理SMTP异常(例如无效的中继服务器凭证或如果该中继服务器处于离线状态)。
本文假定你已经熟悉从一个ASP.NET 2.0 web页面发送简单的普通文本电子邮件;否则的话,请首先阅读本系列文章中的上篇。
二、发送HTML格式的电子邮件
在ASP.NET 2.0中发送电子邮件时,我们已经看到如何发送普通文本电子邮件,这是通过把电子邮件内容赋给MailMessage类的Body属性实现的。其实,为了发送HTM格式的电子邮件,我们只要简单地把Body属性设置为要发送的HTML内容,然后把MailMessage类的IsBodyHtml属性设置为True即可。
为了演示如何发送一个HTML格式的消息,我创建了一个示例,其名字为HtmlEmail.aspx。代码如下:
'(1)创建MailMessage实例
Dim mm As New MailMessage(FromEmailAddress, ToEmailAddress)
'(2)赋值MailMessage的属性
mm.Subject = "HTML-Formatted Email Demo Using the IsBodyHtml Property"
mm.Body = "<h2>This is an HTML-Formatted Email Send Using the <code>IsBodyHtml</code> Property</h2><p>Isn't HTML <em>neat</em>?</p><p>You can make all sorts of <span style=""color:red;font-weight:bold;"">pretty colors!!</span>.</p>"
mm.IsBodyHtml = True
'(3) 创建SmtpClient对象
Dim smtp As New SmtpClient
'(4)发送MailMessage (将使用Web.config设置)
smtp.Send(mm)
如你所见,简单地把Body属性设置为要发送的HTML内容,并且把IsBodyHtml属性设置为True。至此,所有这些你已经完成!被发送到中继服务器的实际电子邮件内容(并且最后要到达接收者的电子邮件客户端)看上去如下所示:
x-sender: ToEmailAddress
x-receiver: FromEmailAddress
mime-version: 1.0
from: FromEmailAddress
to: ToEmailAddress
date: 25 Jul 2006 15:06:44 -0700
subject: HTML-Formatted Email Demo Using the IsBodyHtml Property
content-type: text/html; charset=us-ascii
content-transfer-encoding: quoted-printable
<h2>This is an HTML-Formatted Email Send Using the <code>IsBodyHtml</code>=
Property</h2><p>Isn't HTML <em>neat</em>?</p><p>You can make all sorts=
of <span style=3D"color:red;font-weight:bold;">pretty colors!!</span>.</p>
提示:观察发送到中继服务器的电子邮件内容
观察通过SmtpClient类发送到中继服务器的实际电子邮件内容是很有趣的(如上面这样),对不对?在上篇中,我们讨论了如何配置SmtpClient类以把电子邮件发送到一个中继服务器或者把它投入到一个指定的目录下。使用第二个选择时,我们能够探讨实际的电子邮件内容。你可以检查本文下载代码中的Web.config文件。其中,有一个加了注释的<smtp>元素,它展示了如何配置该SmtpClient类以便把电子邮件的内容复制到一个指定的目录。
该电子邮件客户端(假定它支持HTML格式的电子邮件)将在电子邮件内显示该HTML内容。如下图所示。
提示:有关发送HTML格式的电子邮件的说明
当发送HTML格式的电子邮件时,必须理解你在你的屏幕看到的HTML可能与你的接收者所看到的相当不同。大多数的电子邮件客户端都会"剔除"潜在危险的HTML内容(例如ActiveX控件等),许多用户都阻止JavaScript运行。
|
|
|