正 文

从ASP.NET中发送电邮通知


www.7dspace.com  更新日期:2005-11-27 3:50:12  七度空间


任何人只要用过一段时间的经典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服务器。

2页,页码:[1] [2] 

上一篇:简介用ADO.NET DataSet访问数据
下一篇:ASP.NET缓存策略经验谈
作者:周靖 译  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐