1、Web Mail收发系统设计与开发 摘 要 互联网络技术的不断发展,电子邮件服务已经 成为 人们基本的信息交互手段,也是网络服务中最早和最基本的服务之一。传统邮件系统 大多是 基于 C/S结构,如 Lotus notes、 Microsoft Exchange Server 等 ,这些邮件系统 占用相对较多的服务器资源,对服务器性能有更高 的 要求 ,同时也 增加了管理负担 。并且 ,由于不同 服务器 需要 特定的客户端软件,增加了系统的开发和管理成本。 基于 Web 的邮件服务提供了更快捷、高效的服务,使得新一代的 Web Mail能解决传统邮件 的不足之处。本文设计并实现的邮件收发系统基于
2、 B/S 模式,以组件技术为基础,利用 System.Web.Mail 命名空间构造函数,分别调用Mailmessage,Mailattachment 和 SMTPmail 方法, 实现以 Web 网页的形式收发电子邮件,用户只需要通过 Web 页面就可以实现带附件邮件的发送。 本论文分为四个部分,分别是:一、选题意义及系统构成;二、介绍邮件收发系统的工作原理、优缺点及开发环境;三、程序编码及页面设计; 四、对Web 邮件系统进行测试并获得测试的结果。 关键词: Web Mail; ASP; SMTP 协议; POP 协议 Design and Implement of Web Mail Sy
3、stem Abstract With the development of the Internet technology, mail service has been a basic mean of information communication, which is also one of the earliest and the most basic services of the Internet. However, traditional mail services is based on client and server, for example, Lotus notes, M
4、icrosoft Exchange Server, which have used more resources of the server, thus, affect the capability of server and need high performance of server. Meanwhile, each server needs special client, which increases the cost of developing and managing the system. Based on Web mail server system provides fas
5、ter, more efficient Web mail services, with the strong capability, the new generation of the Web mail can change the disadvantage of the traditional mail. This paper designs and implements a Web mail receiving-sending system, which is based on browser and server as well as components technology, sen
6、ding mails through Web and users can use it to send mails with attachments. This paper is divided into four main modules, respectively are First, introduction the background of the selecting the topic as well as the constitution of the system; Second, introduction of work principle, superiors and in
7、feriors and the developing environment of the mail sending-receiving system; Third, introduction of the code procedures and design of the Web page; Last, test of the mail system and the result of the test. Key words: Web Mail; ASP; SMTP protocol; POP3 protocol第 1 页 1 引言 随着互联网技术的迅猛发展, Web Mail 系统的应用已
8、经成为非常流行、方便、快捷的通信方式。传统的基于 C/S 模式邮件系统由发送系统和接收系统组成,发送部分负责从邮件从客户端接收到服务器,从邮件服务器发送到另一个邮件服务器。接收部分负责把邮件从服务器上接收下来,使用特定的客户端邮件收发程序。虽然已经使得人们感到满足,但是由于传统邮件开发的难度很大,只有经过专业学习的程序员才能去设计开发,有一定的不足之处。 Microsoft 公司开发的 .NET 强大平台,为广大的程序开发人员提供了更多更丰富的组件。 IIS( Internet Information Server)对基于 NT 技术构架的站点来说,是主要的 Web 服务器。 ASP(Acti
9、ve Server Pages)与 IIS 相结合是微软推出的完整的 Internet解决方案,同时 ASP技术就是以组件对象模型( COM, Componet Object Model)为基础的。 ASP 之所以很流行,很大程度得益于 IIS 增加了许多新的功能 ,其中的 IIS SMTP 服务器组件提供了便捷高效的 Web 邮件服务。 ASP与 .NET 平台结合,配合 .NET 平 台 具 有 发 送 邮 件 功 能 的 命 名 空 间System.Web.Mail,使得邮件收 发程序的开发简化了许多。 因此,本设计在脚本中调用 .NET 框架中 System.Web.Mail 命名空间
10、,结合HTML 完成邮件发送的开发与设计实现。 1.1 选题意义 在今天的信息社会中,电子邮件已逐渐成为重要的通讯工具,它在诸如通知、广播和警报系统的应用中起着关键角色的作用。 Web 方式下的邮件发送,比手工打开 Outlook,手工键入相关的信息来发送邮件的方式更优越。举一个极端的例子,在某些系统的应用中,我们可以让电子邮件自动的产生,自动的发送,收件都可以为某个人,也可以为符合条件的从数据库里查询出来的一批人。试想, 如果这样的工作手工来做的话,不仅费时而且费力,甚至会出现误寄的问题,因而效率不高。 Web 方式下的邮件发送的优越之处,在于其发送效率高,发件人手工写的内容少,既省时又准确
11、。 1.2 基于 C/S模式邮件 的运行机理 基于 C/S 的邮件运行模式是典型的传统邮件工作方式,发送邮件将邮件从客户端发送到对应的服务器端,接收邮件又从邮件服务器把邮件下载下来,进行离线阅读等操作。这种模式下用户只能使用特定的客户端来进行邮件的发送的接收。如图 1 第 2 页 发送邮件 接收邮件 图 1 基于 C/S 模式的邮件运行机理 1.3 邮件的发送和 SMTP 服务器 邮件的发送过程是从像 outlook 这样的客户端将一封电子邮件发给一个SMTP 服务器开始的。一个客户端只知道一个与之相连的 SMTP 服务器,所以本地客户端发出的全部邮件,不管其目的地地址是哪里,都将发送到同一个
12、服务器,然后本地 SMTP 服务器负责决定如何处置该邮件。如果目的地址就是本地域的 SMTP 服务器,邮件就会一直被存放 在本地 SMTP 服务器,邮件就会一直被放在本地的 SMTP 服务器的邮件库中,直到收件人访问服务器上自己的邮件;如果邮件的目的地址是另一个远程域的 SMTP 服务器, SMTP 服务器就查询DNS Mail Exchange-MX 记录,该记录为进入相应域的所有邮件提供 SMTP 服务器的 IP 地址,在找到该地址后,本地的 SMTP 服务器就会把邮件从本地邮件库发送到该地址的 SMTP 服务器上。所以在这种情况下,邮件先从用户的发送到本地 SMTP 服务器,再从本地 S
13、MTP 发送到目的域的 SMTP 服务器。 1.4 邮件协议及原理 邮件协议是指可以通过 哪种方式进行电子邮件的收发,它们为邮件的发送和接收提供标准。常用的邮件协议有 IMAP、 SMTP、 POP3 等 IMAP 是 Internet Message Access Protocol 的缩写,顾名思义,主要提供的是通过 Internet 获取信息的一种协议。 IMAP 象 POP 那样提供了方便的邮件下载服务,让用户能进行离线阅读,但 IMAP 能完成的却远远不只这些。 IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。 POP 的全
14、称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用 TCP 的 110 端口,现在常用的是第三版 ,所以简称为 POP3。 POP3 仍采用 Client/Server 工作模式,。当客户机需要服务时,客户端的软件(如 Outlook Express 或 Fox Mail)将与 POP3 服务器建立 TCP 连接,此后要经过 POP3 协议的三种工作状态,首先是认证过程,确认客户机提供的用户名和密码,在认证通过后便转入处理状态,在此状态下用户可收取自己的邮件或做邮件的删除,在完成响应的操作后客户机便发出 quit 命令,此后便进入更新状 态,将做删除邮件客
15、户端程序 (C) 邮件服务器 (S) SMTP Pop3 第 3 页 标记的邮件从服务器端删除掉。到此为止整个 POP 过程完成。 SMTP 称为简单 Mail 传输协议( Simple Mail Transfer Protocal) ,目标是向用户提供高效、可靠的邮件传输。 SMTP 的一个重要特点是它能够在传送中接力传送邮件,即邮 件可以通过不同网络上的主机接力式传送。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。 SMTP 是个请求 /响应协议,它监听 25 号端口,用于接收用户的 Mail请求,并与远端 Mail服务器建立 SMTP 连接。
16、基于 B/S 工作方式的 IIS WEB MAIL 仅为全部邮件设立一个目录,客户端可以通过直接访问或者 POP3 服务器方式。如图 2 发送邮件 互相发送邮件 接收邮件 (其它组件方式 ) 图 2 WEB MAIL 邮件的运行机理 SMTP 协议只负责邮件从客户端发送到目的域的 SMTP 服务器,用户要从服务器接收邮件,服务器端还必须提供邮件接收服务,而 POP3 就是用户接收他们邮件 的协议, POP3 服务器负责邮件的接收。 POP3 服务器在服务器上一直运行,等待来自客户端的连接。当客户端试图连接到 POP3 服务器时,服务器用邮件帐号的用户名和密码来区分用户,邮件服务器验证用户身份后
17、, POP3 服务器就将该用户的邮件从 SMTP 邮件库发送到用户的收件箱。 SMTP 服务器一般为每个用户设立了一个目录,它类似于用户的邮件箱。这种目录结构使得 POP3 服务器可以高效的取出指定用户的全部邮件。 1.5 SMTP简介 目前在 Internet 上广泛采用的网络互连协议是 TCP/IP 协议族,该协议族的是为最大范围的 计算机系统和网络提供互操作性。针对电子邮件服务,为扩展电子邮件的互操作性, TCP/IP 协议族也规定了邮件传输协议,目前采用的是简单邮件传输协议 SMTP。它作为 TCP/IP 协议族的一部分,规定了计算机间交换电子邮件时的一些细节,主要是一些控制信息,包括
18、对正确连接的校验、发送者的标识、传输参数的商定及邮件的传输。 SMTP 中定义了命令以及命令的响应。客户机向服务器发送命令,并根据服务器回送的响应进行一下步的工作。客户端浏览器(B) 邮件服务器 (S) ASPSystem.Web.Mail 远程邮件服务器 (S) 第 4 页 两者之间相互配合,实现邮件的传送。 1.6 SMTP 的运行过程 SMTP 的运行只需要一个可行的有序数据 流传输通道,即 TCP 连接,这种连接可以跨越若干网络,以中继的方式传输,在不同的传输系统上的主机之间传输电子邮件。 当客户端提出发送电子邮件的请示时,将依次发生下面的事件: SMTP 发送端建立一个到达接收端 S
19、MTP 的双向信息传输通道,接收端 SMTP 既可以是最终目的地,也可以是中转目的地; 1、 SMTP 发送发送一个 Mail命令,指明电子邮件的发送方; 2、 如果 SMTP 接收端能够接受该电子邮件,那么它就发出一个 OK 答复消息; 3、 SMTP 发送端发送一个 RCPT 命令,指明邮件的收件人; 4、 如果 SMTP 接收端能够为该收件人 接收邮件,它就发出一个 OK 答复,如果不能,就发出一个拒绝为该收件人接受邮件的答复消息; 5、 当协商确定了收件人后, SMTP 发送端便开始发送邮件数据; 6、 如果 SMTP 接收端成功地处理了邮件数据,它就发出一个 ok 答复消息;最后,
20、SMTP 运行,完成后断开 TCP 连接。 邮于 SMTP 协议的通讯指令已经被封装进 System.Web.Mail 命名空间中的类,在程序中只用一句 stmpmail.send(email)即可完成邮件发送,封装后并未体现上述的 SMTP 运行过程。 1.7 SMTP中继服务的设置 该毕业设计是使用 Windows 2003 Server 系统内置的 SMTP 邮件服务来进行邮件发送的,帮在程序中未设 SMTPmail 属性, SMTPServer 设置为 localhost,这样可以获得快的邮件发送速度。当然也可以设置因特网上提供了 SMTP 服务器的邮件服务器,但需要满足一定的条件,如
21、下: 1、现在多数的免费邮件提供商都不再对所有邮件提供 SMTP 服务,需要验证用户身份,在程序中需要考虑用户身份验证的问题; 2、若通过这种方式发送过多的邮件,可能被误认为是垃圾邮件而被拒绝服务。 2 总体分析 2.1 工作原理 2.1.1 单域网络下的单 Web 邮件服务器系统 这种 情况只适用于小型网络,只要在该域的任何一台服务器上建立了 Web邮件站点,该域的所有用户都可以通过浏览器使用其 Web 邮件服务。 第 5 页 2.1.2 多域网络下的单 Web 邮件服务器系统 这种情况适用于中型规模的网络。如果多域网络各个域之间已经通过路由设备连通,那么只要在该网络的任何一个域的任何一个服
22、务器上建立了 Web 邮件服务站点,全网络的所有用户都可以使用 Web 邮件服务。这时,所有的域的用户的邮件地址的域名部分都相同,都是 Web 邮件服务站点所在的域的域名。如果要让每个域的用户的邮件地址用自己所在的域名,就必须在 IIS 管理控制台的 SMTP 服务器上添加其它各个域的域名,同时把这些新添加的域设置为本地域,所有的域名都自动成为的本地域的别名。但这对用户是透明的,在用户看来他们使用的就是他们所在域的邮件服务器。 2.1.3 多域网络下的多 Web 邮件服务器系统 这种系统适用大型、物理分散的网络系统。在这类网络中,或者用户规模庞大,或者域之间的连接速度太慢,如果所有的用户都使用
23、同一个 Web 邮件服务器势必对服务器有更高的要求;对于物理分散的网络,在多 Web 邮件系统下,用户可以就近服务,节约了宝贵的带宽资源,对通过低速停产连接的两个较大的域尤其重要。 在多 Web 邮件服务器系统中,在每个 SMTP 服务器上必须添加所有其它SMTP 服务所在的域,并把它们设置为远程域,而且各 SMTP 服务器设置为允许相互转发邮件。这样各个域的用户就可以相互发送电子邮件了。 2.1.4 将内部网络的电子邮件发送 Internet 在能够把电子邮件发送到 Internet 之前,内部网络必须直接或通过代理服务器接入 Internet;之后,在 IIS SMTP 服务器上设置邮件网
24、络为智能主机。所有外出的邮件不需要查找邮件目的域的 MX 记录,都直接发送到邮件网关而不是本地 SMTP 服务器;邮件再从邮件网关被发送到目的 Internet 域。 2.2 IIS Web 邮件发送的特点 IIS 新增加的一系统功能组件 , 不但加强了 Web 服务和事务处理能力,更增加了新闻、搜索服务和邮件服务等功能。 IIS SMTP 服务器是 IIS 的一体信息服务解决方案的重要组成部分,用其构建的 Web 邮件系统有以下特点: 1、 IIS 的 SMTP 服务是 IIS 的一个组件,它与 IIS 紧密连接在一起。实质上,IIS 本身就是邮件服务器,只不过这种方式下邮件服务集成于 II
25、S 和操作系统,提高了邮件服务的效率和系统的稳定性。 2、 减少了系统的复杂性和管理负担。只需要在安装配置 IIS 的时候选中SMTP 邮件服务组件,就可以在系统建立邮件服务。如果使用特定的邮件服务系统,服务器就不得不运行另一套系统,占用额外的服务器资源,第 6 页 而 IIS Web 邮件系统则减小了系统的复杂性和系统管理员的负担。 3、 容易实现,构造成本低。使用 SMTP 服务器组件可以轻松建立起 Web 邮件服务,用户不需要安装任何邮件客户端软件,只要一个 Web 浏览器即可。而其它的邮件系统,每个用户必需安装特定的客户端邮件软件,增加了实现的难度,也提高了系统构造成本和费用。 4、
26、IIS Web 邮件系统提供简单方便的邮件服务。客户通过 Web 浏览器就可以实现用户主动 注册邮件帐号和邮件的收发,也可以邮件中插入附件,同时,用户也可以使用客户端邮件软件,如 Outlook 来发送邮件。 5、 可与其它邮件系统地协同服务。 2.3 IIS Web 邮件发送的不足 1、由于 SMTP 进入 SMTP 服务器的所有邮件都放在了同一个目录中,而不是为每一个帐号创建一个单独的目录,其检索速度相对较慢。 2、 由于不能使用像 Outlook 这样的邮件客户端软件来接收邮件,所以就不能为用户提供许多方便的各种规则。 3、 有待进一步完善。虽然网络开发人员可以通过编写 ASP 脚本程序
27、来实现所有的邮件功能,但这要求开发人员 ASP 开发人员 精通 ASP,增加开发难度。这与其它邮件系统的零编程比起来,有着明显的不足,也影响了其推广的速度。 2.4 IIS Web 环境建立 安装 SMTP 服务器组件后并建立 Web 邮件服务站点,邮件服务站点应该提供邮件的发送和接收等服务,这样所有能访问该站点的帐号都可以申请邮件帐号,并使用站点提供了邮件服务。 2.5 开发环境 该设计开发环境使用 Windows 2003 Server Standard 操作系统,搭建 SMTP和 POP3 邮件服务器,配置 .NET 2.0 环境,代码编写工具为 Dreamwaver 8.0。 3 程序
28、的设计与实现 3.1 System.Web.Mail 命名空间介绍 System.Web.Mail 命名空间包含使您可以使用 CDO 消息组件来构造和发送消息的类。邮件可通过系统的 SMTP 邮件服务或任意的 SMTP 服务器来传送。该命令空间包含三个类,如下说明 类的常用属性、方法说明 : (1)、 MailMessage 类的属性:该类提供了多个属性、方法、函数,用以构造电子邮件。其中,常用属性如表 (2)、 MailAttachment 类的函数 第 7 页 该类中的 MailAttachment 构造函数常与 new 子句配合来初始化附件类的新实例。可用两种方式进行 初始化。 1、仅指
29、定文件名 ;2、同时指定文件名和编码类型。 (3)、 SMTPmail 类的属性及方法:该类提供了属性及方法以调用 CDO 组件的功能来发送电子邮件,其中常用的属性有: 1、 SMTPserver 属性。用于获取或设置发送电子邮件的 SMTP中继邮件服务器的名称;若不设置该属性,则使用本地 (系统内置,如 127.0.0.1)的 SMTP 服务器的名称。 2、 send 方法。该方法用于发送电子邮件。 类的常用属性方法说明:(见表 1) 表 1 类的常用属性 MailAttachment 提供用于构造电子邮件附件的属性和方法 MailMessage 提供用于构造电子邮件的属性和方法。 SMTP
30、Mail 提供用于使用 Windows 2000 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。 其中, MailMessage 类提供的接口很多,以创建 MailObject 实例对象为例:如发件人 (MailObject.From)、收件人 (MailObject.To)、抄送 (MailObject.Cc)、暗送 (MailObject.Bcc) 、邮件主题 (MailObject.Subject) 、邮件正文(MailObject.Body)等基本要素,也包括如优先级 (MailObject.Priority)、邮件格式 (MailObject.BodyFormat
31、)、编码类型 (MailObject.BodyFormat)等。 3.2 程序设计主要步骤 首先要建立对 System.Web.Dll 动态连接库的引用。然后,在窗口类之前用以下语句导入命名空间: Import System.Web.Mail,通过初始化构造一个MailMessage()函数定义变量,将接收 HTML 网页中填入的信息赋值给变量,这样就可以引用其中的成员。 3.3 界面设计 1、 首页 首页 设置传值页面,把登录信息中的用户名,密码等传到下一个页面( default.asp) ,form 标签的名称为 f1,主要代码如: 设置属性及传值页面 传用户名 传密码 在首页中加入了判断输入的代码,如 if (username.value = “) alert(“用户名不可为空 “); 第 8 页 usernameshow.focus(); return ; 并加入了一些图片,生成的效果如图 3 图 3 登录首页 2、 发送邮件页面 发送邮件的页面调用 .NET 框架中的 System.Web.Mail, 此页面的运行需要 .NET2.0 框架环境,其它代码也是该设计的核心部分,在主要代码部分有详细的说明,详见 3.5 发送邮件页面主要代码 , 生成页面如图 4