邮件列表(Maillist)在Internet上应用比较广泛。使用邮件列表能够和访问者保持积极的联系,快捷、简便、低成本地发送信息,也能够提高网站的知名度。扩展后的邮件列表也能够用于创立电子杂志(像索易:http://www.soim.online.sh.cn/)。探讨邮件列表的建立是很有意义的,我们的实例就是建立一个邮件列表。

  一、电子邮件发送原理

  邮件传递过程的实现是从一个如Microsoft Outlook Express这样的客户端软件将一份邮件发送给一个SMTP服务器开始的,然后SMTP服务器负责决定如何处置该邮件。

  假如电子邮件的目的域是服务器的本地域(比如将电子邮件发送给harrizon@domain.com,而且SMTP服务器是smtp.domain.com),那么该邮件被存储在这个服务器上,否则将该邮件转发给另一个合适的服务器。

  网络上任何的SMTP服务器都能够通过一种“语言”互相通信,这个通用语言就是SMTP协议。但是,服务器如何决定传递邮件的目的地呢?能够通过他的域名解析系统(DNS)来查找域。

  NT Server是现在使用比较广泛的网络服务器,而且前景看好,IIS(Internet Information Server4.0,Internet信息服务器)是网络文档和应用程式服务器,他们使用HTTP、Gopher连同FTP,通过Internet或Intranet来提供服务。

  IIS SMTP服务仅提供邮件传递功能,他不能对接收邮件提供服务。Microsoft在IIS中加入了一个特别的组件—Collaboration Data Objects for Microsoft Windows NT Server,也称为CDO for NTS Library,他提供邮件对象,能够在ASP(Active Server Pages)脚本中使用这些对象来访问和处理发送给特定用户的电子邮件。

  邮件列表就是在网上收集访问者的Email,从而在需要的时候定期向该订阅者发送一定的信息。需要的工作是收集Email、发送Email。下面我们能够看到如何来完成这些工作。

  二、 从Web页面发送电子邮件

  利用IIS SMTP和CDO for IIS,能够从一个ASP脚本直接向Internet上的任何人发送电子邮件。

  首先要安装Microsoft NT Ser-ver4.0,然后再安装IIS4.0,务必注意是否安装了SMTP服务,默认方式是安装的。安装完毕后不妨看看在winnt\system32目录下是否有一个文档cdonts.dll。假如存在这个文档,那么安装过程宣告成功。

  程式1是最简单的发送电子邮件程式,他将一封主题为subject、内容为test的邮件从邮箱harrizon@163.net发送到ivan@188.net。

  <%

  Dim MailObject

  Set MailObject = Server.CreateObject("CDONTS.NewMail")

  MailObject.Send "harrizon@163.net"," ivan@188.net", "subject", "test"

  %>

  

  这样的程式虽然能够快速测试是否成功,但是实用价值并不高。我们将其优化一下,根据邮件列表的特点,编出一个有实用价值的程式。

  首先请用Access建立一个数据库mail.mdb,用于保存email地址;然后需要建立一个表,表的名字为mail,包含一个字段email(字段名email,数据类型:文本,字段长度:50)即可,另外能够有一个id(字段名:id,数据类型:自动编号,本字段能够不要)s建立一个数据库mail.mdb,用于保存email地址;然后需要建立一个表,表的名字为mail,包含一个字段email(字段名email,数据类型:文本,字段长度:50)即可,另外能够有一个id(字段名:id,数据类型:自动编号,本字段能够不要)。配置ODBC ,在控制面板中双击ODBC图标,设立dsn,其名为mail。

  至此配置部分已完成,现在编写程式。

  将程式2加入到您的主页的合适位置。程式2的目的是为了收集访问者的Email。

  <form method="POST" action="addmail.asp">

   <p>您的Email:<input type="text" name="email" size="20"><input type="submit"

   value="订阅" name="B1"><input type="reset" value="重写" name="B2"></p>

  </form>

  用浏览器打开程式2得到结果如图1,填入一个合法的email地址,单击“订阅”。服务器自动调用程式3,输入的email将自动入库,您不妨用Access直接打开数据库mail.mdb看看刚刚入库的Email是否保存了。

  (图注ASP-1) 图1

  <%

  email=trim(request("email"))

  Set Connection=Server.Create-Object("ADODB.Connection")

  Connection.Open "mail","",""

  SQL="INSERT INTO mail(email) VALUES('" email "')"

  Set RS=Connection.Execute(sql)

  response.write email%>,多谢您加入!

  程式3的目的是将email保存到数据库mail.mdb里去。

  Email入库意味着有了订阅者,现在我们能够进入下一个步骤—发送邮件给订阅者了。

  这里我们用两个程式(sendmail. asp,mail.asp)来完成这部分工作,sendmail.asp的作用是生成一个界面(见图2),在这里我们能够选择发送的对象(全部或部分),填写发送的主题和内容,也能够粘贴附件,填写完毕后就单击“发送邮件”,此时对于管理员来说,一切工作是结束了,但如何发送邮件呢?我们就需要调用程式5了。

  程式5为发送邮件处置程式mail. asp。其作用就是发送邮件,当然是根据程式4的选择和输入来处理邮件的。程式5的完整源代码参见《电子和电脑》的网站www.pccomputing.com.cn。

  程式4为在线发送电子邮件sendmail.asp。程式运行结果如图2所示。

  (图注ASP-2) 图2

  (程式4)

  <% Set Connection=Server.CreateObject("ADODB.Connection")

  Connection.Open "mail","",""

  sql="select * from mail"

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!