任何人只要用过一段时间的经典ASP,就会着手下载别人的基于COM的SMTP组件,或动手编写自己的组件来发送电子邮件。原生ASP脚本语言不支持以任何方式从服务器端脚本发送电邮。
ASP.NET改变了这一切,Web开发者获得了对.NET框架库的完全访问。我们终于有机会能做得更好。本文探讨了ASP.NET内建的电子邮件支持,并介绍了一个实例:就网站的404错误向自己发送电邮通知。
SMTP被最大程度地简化
到底有多简单呢?如果服务器恰好正在运行一个SMTP服务,那么为了程序化地发送电子邮件,只需添加一行代码就够了。请调用System.Web.Mail.SmtpMail的Send方法,并向它传递4个字符串参数:发件人地址、收件人地址、主题和邮件正文。如下所示:
System.Web.Mail.SmtpMail.Send(
“from@from.com”,
”to@to.com”,
”My Subject Line”,
”My Message Body”);
即使服务器上没有运行SMTP服务,操作也十分简单:只需在Send调用之前添加一行代码,将System.Web.Mail.SmtpMail.Send的静态SmtpServer属性设为你能使用的一个SMTP服务器,如下所示:
System.Web.Mail.SmtpMail.SmtpServer = “mail.domain.com”;
再调用如前例所示的Send方法即可。
好得令人不敢相信?
SmtpMail类有两个重大的缺点:
* SMTP服务器如需身份验证,就不可用它发送电邮。
* SmtpMail不是.NET原生类;它只是一个封装器,封装了基于COM的“协作数据对象”(CDO)API。
最后一个问题尤其令人失望;微软公司更好的做法是用他们自己的.NET套接字类来生成一个.NET SMTP类,就像Sun为Java开发者提供的那个与平台无关的javax.mail包。但无论如何,这两个限制对大多数人来说都不是问题,因为大多数SMTP服务器不需要身份验证。而且你通常运行的是一个安装好CDO的Windows服务器。
