邮件列表(Mailing List)是当前最受欢迎的网络服务之一。本文通过一个示例系统的建设,介绍在ASP环境下邮件列表功能的实现方法。
ChinaByte网络学院的《Java Mail API及其应用》一文介绍了在Java中简单邮件列表服务功能的实现方法,本文介绍的是类似功能在ASP应用中的实现。我们将通过一个示例系统具体说明其实现过程。
一、系统概貌
整个应用系统可以分为两个部分,即面向最终用户的功能和面向管理任务的功能。面向最终用户的功能主要包括:提供输入界面让用户输入个人信息(用户名字和EMail地址等)并将其注册到“客户登记簿”,提供“取消订阅邮件列表”功能。
管理员访问管理界面之前应通过简单的安全检查。成功进入管理界面之后,管理员需要执行的操作包括查看、编辑和删除用户记录,编辑邮件以及发送邮件给所有订阅者。
向订阅者发送邮件需要用一个服务器部件来完成。在本实现中我们将使用ServerObjects的ASPMail 3.0。据该公司网站介绍,在所有商业或免费的类似产品中,ASPMail在ASP环境下的应用最为广泛,包括Microsoft、Intel、HP在内的许多公司均使用ASPMail,从它的Web网站可以下载试用版本。试用版本的ASPMail将在由它所发送的每个邮件末尾加上版权声明。当然,也可以选用其它类似的服务器部件,包括JMail以及NT 服务器(Service Pack 4)提供的CDONTS.NewMail对象。下面我们简单介绍这两个部件的使用,你可以按照这里的介绍替换本文实现中的ASPMail。
CDONTS只有在NT服务器上才是可用的。而ASPMail除了NT服务器、工作站之外还可以用于Win9x。CDONTS是Collaboration Data Objects for NT Server的缩写,邮件的发送任务可以用它的NewMail对象完成。和ASPMail以及JMail不同,NewMail对象不要求指定SMTP服务器信息,它总是假定邮件是通过本地机器上安装的邮件服务发送的。发送一个简单的纯文本邮件的VBScript代码如下:
' 创建NewMail对象实例
Set mail = Server.CreateObject("CDONTS.NewMail")
' 设置收件人,发件人等信息
mail.From = "Guest0@Test.com"
mail.To = "Guest1@Test.com"
' 邮件内容
mail.Body = "邮件内容."
' 发送邮件
mail.Send
Set mail = Nothing
JMail是完全免费的,由Dimac开发。用它来发送邮件的代码为:
' 创建对象
Set JMail = Server.CreateObject("JMail.SMTPMail")
' 指定邮件服务器
JMail.ServerAddress = "mail.mydomain.com"
' 发件人,收件人,主题
JMail.Sender = "admin@Test.com"
Jmail.AddRecipientEx "Guest0", "Guest0@Test.com"
JMail.Subject = "邮件主题"
' 邮件内容
JMail.Body = "邮件内容"
' 发送邮件
JMail.Execute
我们用Access数据库guestbook.mdb来存储用户信息。该数据库只含一个表Guests。Guests表的字段名称及其类型如下:
Guests表结构
字段名称 类型 大小 说明
Guest_ID 自动编号 长整形 主键
Guest_Name 文本 50
Guest_EMail 文本 50
Mail_List 是/否
Sign_Date 日期/时间
Guest_Comment 文本 255
每个用户记录都需要一个唯一标识,因此我们将这里的Guest_ID字段定义为自动编号类型。将Mail_List字段设为是/否类型使得我们可以快速和方便地检查用户是否要求加入邮件列表。Sign_Date字段保存的是用户注册日期,请将其缺省值设置为Now()。所有其它字段的含义均可从其名字看出。