基于Web Mail收发系统设计与开发

基于Web Mail收发系统设计与开发[java毕业论文下载]

Web Mail收发系统设计与开发

摘  要

互联网络技术的不断发展,电子邮件服务已经成为人们基本的信息交互手段,也是网络服务中最早和最基本的服务之一。传统邮件系统大多是基于C/S结构,如Lotus notes、Microsoft Exchange Server等,这些邮件系统占用相对较多的服务器资源,对服务器性能有更高的要求,同时也增加了管理负担。并且,由于不同服务器需要特定的客户端软件,增加了系统的开发和管理成本。

基于Web的邮件服务提供了更快捷、高效的服务,使得新一代的Web Mail能解决传统邮件的不足之处。本文设计并实现的邮件收发系统基于B/S模式,以组件技术为基础,利用System.Web.Mail命名空间构造函数,分别调用Mailmessage,Mailattachment和SMTPmail方法,实现以Web网页的形式收发电子邮件,用户只需要通过Web页面就可以实现带附件邮件的发送。

本论文分为四个部分,分别是:一、选题意义及系统构成;二、介绍邮件收发系统的工作原理、优缺点及开发环境;三、程序编码及页面设计; 四、对Web邮件系统进行测试并获得测试的结果。

 

关键词: Web Mail;ASP;SMTP协议;POP协议


Design and Implement of Web Mail System

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, Microsoft 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 faster, 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, sending 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 inferiors 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

 

    

论文总页数:17页

 

1  引言 1

1.1 选题意义 1

1.2 基于C/S模式邮件的运行机理 1

1.3 邮件的发送和SMTP服务器 2

1.4 邮件协议及原理 2

1.5 SMTP简介 3

1.6 SMTP的运行过程 4

1.7 SMTP中继服务的设置 4

2 总体分析 4

2.1 工作原理 4

2.1.1 单域网络下的单Web 邮件服务器系统 4

2.1.2 多域网络下的单Web邮件服务器系统 5

2.1.3 多域网络下的多Web邮件服务器系统 5

2.1.4 将内部网络的电子邮件发送Internet 5

2.2 IIS WEB邮件发送的特点 5

2.3 IIS WEB邮件发送的不足 6

2.4 IIS WEB环境建立 6

2.5 开发环境 6

3 程序的设计与实现 6

3.1 SYSTEM.WEB.MAIL命名空间介绍 6

3.2 程序设计主要步骤 7

3.3 界面设计 7

3.4 主要代码 12

4 软件测试 14

结    15

参考文献 15

     16

     17

 

 

1  引言

随着互联网技术的迅猛发展,Web Mail系统的应用已经成为非常流行、方便、快捷的通信方式。传统的基于C/S模式邮件系统由发送系统和接收系统组成,发送部分负责从邮件从客户端接收到服务器,从邮件服务器发送到另一个邮件服务器。接收部分负责把邮件从服务器上接收下来,使用特定的客户端邮件收发程序。虽然已经使得人们感到满足,但是由于传统邮件开发的难度很大,只有经过专业学习的程序员才能去设计开发,有一定的不足之处。

Microsoft 公司开发的.NET强大平台,为广大的程序开发人员提供了更多更丰富的组件。IIS(Internet Information Server)对基于NT技术构架的站点来说,是主要的Web服务器。ASP(Active Server Pages)与IIS相结合是微软推出的完整的Internet解决方案,同时ASP技术就是以组件对象模型(COM, Componet Object Model)为基础的。ASP之所以很流行,很大程度得益于IIS增加了许多新的功能,其中的IIS SMTP 服务器组件提供了便捷高效的Web邮件服务。ASP与.NET平台结合,配合.NET平台具有发送邮件功能的命名空间System.Web.Mail,使得邮件收发程序的开发简化了许多。

因此,本设计在脚本中调用.NET框架中System.Web.Mail命名空间,结合HTML完成邮件发送的开发与设计实现。

选题意义

在今天的信息社会中,电子邮件已逐渐成为重要的通讯工具,它在诸如通知、广播和警报系统的应用中起着关键角色的作用。Web方式下的邮件发送,比手工打开Outlook,手工键入相关的信息来发送邮件的方式更优越。举一个极端的例子,在某些系统的应用中,我们可以让电子邮件自动的产生,自动的发送,收件都可以为某个人,也可以为符合条件的从数据库里查询出来的一批人。试想,如果这样的工作手工来做的话,不仅费时而且费力,甚至会出现误寄的问题,因而效率不高。Web方式下的邮件发送的优越之处,在于其发送效率高,发件人手工写的内容少,既省时又准确。

基于C/S模式邮件的运行机理

基于C/S的邮件运行模式是典型的传统邮件工作方式,发送邮件将邮件从客户端发送到对应的服务器端,接收邮件又从邮件服务器把邮件下载下来,进行离线阅读等操作。这种模式下用户只能使用特定的客户端来进行邮件的发送的接收。如图1

 

 

 

 

                             发送邮件

 

 

                              接收邮件

 

                              图1 基于C/S模式的邮件运行机理

邮件的发送和SMTP服务器

邮件的发送过程是从像outlook这样的客户端将一封电子邮件发给一个SMTP服务器开始的。一个客户端只知道一个与之相连的SMTP服务器,所以本地客户端发出的全部邮件,不管其目的地地址是哪里,都将发送到同一个服务器,然后本地SMTP服务器负责决定如何处置该邮件。如果目的地址就是本地域的SMTP服务器,邮件就会一直被存放在本地SMTP服务器,邮件就会一直被放在本地的SMTP服务器的邮件库中,直到收件人访问服务器上自己的邮件;如果邮件的目的地址是另一个远程域的SMTP服务器,SMTP服务器就查询DNS Mail Exchange-MX记录,该记录为进入相应域的所有邮件提供SMTP服务器的IP地址,在找到该地址后,本地的SMTP服务器就会把邮件从本地邮件库发送到该地址的SMTP服务器上。所以在这种情况下,邮件先从用户的发送到本地SMTP服务器,再从本地SMTP发送到目的域的SMTP服务器。

邮件协议及原理

邮件协议是指可以通过哪种方式进行电子邮件的收发,它们为邮件的发送和接收提供标准。常用的邮件协议有IMAP、SMTP、POP3等

    IMAP是Internet Message Access Protocol的缩写,顾名思义,主要提供的是通过Internet获取信息的一种协议。IMAP象POP那样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP能完成的却远远不只这些。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。

POP的全称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用TCP的110端口,现在常用的是第三版 ,所以简称为POP3。POP3仍采用Client/Server工作模式,。当客户机需要服务时,客户端的软件(如Outlook Express或Fox Mail)将与POP3服务器建立TCP连接,此后要经过POP3协议的三种工作状态,首先是认证过程,确认客户机提供的用户名和密码,在认证通过后便转入处理状态,在此状态下用户可收取自己的邮件或做邮件的删除,在完成响应的操作后客户机便发出quit命令,此后便进入更新状态,将做删除标记的邮件从服务器端删除掉。到此为止整个POP过程完成。

SMTP称为简单Mail传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。SMTP的一个重要特点是它能够在传送中接力传送邮件,即邮 件可以通过不同网络上的主机接力式传送。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP是个请求/响应协议,它监听25号端口,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。

基于B/S工作方式的IIS WEB MAIL仅为全部邮件设立一个目录,客户端可以通过直接访问或者POP3服务器方式。如图2

 

 

                    发送邮件                           互相发送邮件

 

 

                    接收邮件

(其它组件方式)

图2 WEB MAIL邮件的运行机理

SMTP协议只负责邮件从客户端发送到目的域的SMTP服务器,用户要从服务器接收邮件,服务器端还必须提供邮件接收服务,而POP3就是用户接收他们邮件的协议,POP3服务器负责邮件的接收。

    POP3服务器在服务器上一直运行,等待来自客户端的连接。当客户端试图连接到POP3服务器时,服务器用邮件帐号的用户名和密码来区分用户,邮件服务器验证用户身份后,POP3服务器就将该用户的邮件从SMTP邮件库发送到用户的收件箱。SMTP服务器一般为每个用户设立了一个目录,它类似于用户的邮件箱。这种目录结构使得POP3服务器可以高效的取出指定用户的全部邮件。

SMTP简介

目前在Internet上广泛采用的网络互连协议是TCP/IP协议族,该协议族的是为最大范围的计算机系统和网络提供互操作性。针对电子邮件服务,为扩展电子邮件的互操作性,TCP/IP协议族也规定了邮件传输协议,目前采用的是简单邮件传输协议SMTP。它作为TCP/IP协议族的一部分,规定了计算机间交换电子邮件时的一些细节,主要是一些控制信息,包括对正确连接的校验、发送者的标识、传输参数的商定及邮件的传输。SMTP中定义了命令以及命令的响应。客户机向服务器发送命令,并根据服务器回送的响应进行一下步的工作。两者之间相互配合,实现邮件的传送。

SMTP的运行过程

    SMTP的运行只需要一个可行的有序数据流传输通道,即TCP连接,这种连接可以跨越若干网络,以中继的方式传输,在不同的传输系统上的主机之间传输电子邮件。

    当客户端提出发送电子邮件的请示时,将依次发生下面的事件:

SMTP发送端建立一个到达接收端SMTP的双向信息传输通道,接收端SMTP既可以是最终目的地,也可以是中转目的地;

SMTP发送发送一个Mail命令,指明电子邮件的发送方;

如果SMTP接收端能够接受该电子邮件,那么它就发出一个OK答复消息;

SMTP发送端发送一个RCPT命令,指明邮件的收件人;

如果SMTP接收端能够为该收件人接收邮件,它就发出一个OK答复,如果不能,就发出一个拒绝为该收件人接受邮件的答复消息;

当协商确定了收件人后,SMTP发送端便开始发送邮件数据;

如果SMTP接收端成功地处理了邮件数据,它就发出一个ok答复消息;最后,SMTP运行,完成后断开TCP连接。

邮于SMTP协议的通讯指令已经被封装进System.Web.Mail命名空间中的类,在程序中只用一句stmpmail.send(email)即可完成邮件发送,封装后并未体现上述的SMTP运行过程。

SMTP中继服务的设置

该毕业设计是使用Windows 2003 Server 系统内置的SMTP邮件服务来进行邮件发送的,帮在程序中未设SMTPmail属性,SMTPServer设置为localhost,这样可以获得快的邮件发送速度。当然也可以设置因特网上提供了SMTP服务器的邮件服务器,但需要满足一定的条件,如下:1、现在多数的免费邮件提供商都不再对所有邮件提供SMTP服务,需要验证用户身份,在程序中需要考虑用户身份验证的问题;2、若通过这种方式发送过多的邮件,可能被误认为是垃圾邮件而被拒绝服务。

总体分析

工作原理

单域网络下的单Web 邮件服务器系统

这种情况只适用于小型网络,只要在该域的任何一台服务器上建立了Web邮件站点,该域的所有用户都可以通过浏览器使用其Web邮件服务。

多域网络下的单Web邮件服务器系统

这种情况适用于中型规模的网络。如果多域网络各个域之间已经通过路由设备连通,那么只要在该网络的任何一个域的任何一个服务器上建立了Web邮件服务站点,全网络的所有用户都可以使用Web邮件服务。这时,所有的域的用户的邮件地址的域名部分都相同,都是Web邮件服务站点所在的域的域名。如果要让每个域的用户的邮件地址用自己所在的域名,就必须在IIS管理控制台的SMTP服务器上添加其它各个域的域名,同时把这些新添加的域设置为本地域,所有的域名都自动成为的本地域的别名。但这对用户是透明的,在用户看来他们使用的就是他们所在域的邮件服务器。

多域网络下的多Web邮件服务器系统

这种系统适用大型、物理分散的网络系统。在这类网络中,或者用户规模庞大,或者域之间的连接速度太慢,如果所有的用户都使用同一个Web邮件服务器势必对服务器有更高的要求;对于物理分散的网络,在多Web邮件系统下,用户可以就近服务,节约了宝贵的带宽资源,对通过低速停产连接的两个较大的域尤其重要。

在多Web邮件服务器系统中,在每个SMTP服务器上必须添加所有其它SMTP服务所在的域,并把它们设置为远程域,而且各SMTP服务器设置为允许相互转发邮件。这样各个域的用户就可以相互发送电子邮件了。

将内部网络的电子邮件发送Internet

在能够把电子邮件发送到Internet之前,内部网络必须直接或通过代理服务器接入Internet;之后,在IIS SMTP服务器上设置邮件网络为智能主机。所有外出的邮件不需要查找邮件目的域的MX记录,都直接发送到邮件网关而不是本地SMTP服务器;邮件再从邮件网关被发送到目的Internet域。

IIS Web邮件发送的特点

IIS新增加的一系统功能组件, 不但加强了 Web服务和事务处理能力,更增加了新闻、搜索服务和邮件服务等功能。IIS SMTP服务器是IIS的一体信息服务解决方案的重要组成部分,用其构建的Web邮件系统有以下特点:

IIS的SMTP服务是IIS的一个组件,它与IIS紧密连接在一起。实质上,IIS本身就是邮件服务器,只不过这种方式下邮件服务集成于IIS和操作系统,提高了邮件服务的效率和系统的稳定性。

减少了系统的复杂性和管理负担。只需要在安装配置IIS的时候选中SMTP邮件服务组件,就可以在系统建立邮件服务。如果使用特定的邮件服务系统,服务器就不得不运行另一套系统,占用额外的服务器资源,而IIS Web邮件系统则减小了系统的复杂性和系统管理员的负担。

容易实现,构造成本低。使用SMTP服务器组件可以轻松建立起Web邮件服务,用户不需要安装任何邮件客户端软件,只要一个Web浏览器即可。而其它的邮件系统,每个用户必需安装特定的客户端邮件软件,增加了实现的难度,也提高了系统构造成本和费用。

IIS Web邮件系统提供简单方便的邮件服务。客户通过Web浏览器就可以实现用户主动注册邮件帐号和邮件的收发,也可以邮件中插入附件,同时,用户也可以使用客户端邮件软件,如Outlook来发送邮件。

可与其它邮件系统地协同服务。

IIS Web邮件发送的不足

1、由于SMTP进入SMTP服务器的所有邮件都放在了同一个目录中,而不是为每一个帐号创建一个单独的目录,其检索速度相对较慢。

由于不能使用像Outlook这样的邮件客户端软件来接收邮件,所以就不能为用户提供许多方便的各种规则。

有待进一步完善。虽然网络开发人员可以通过编写ASP脚本程序来实现所有的邮件功能,但这要求开发人员ASP开发人员精通ASP,增加开发难度。这与其它邮件系统的零编程比起来,有着明显的不足,也影响了其推广的速度。

IIS Web环境建立

安装SMTP服务器组件后并建立Web邮件服务站点,邮件服务站点应该提供邮件的发送和接收等服务,这样所有能访问该站点的帐号都可以申请邮件帐号,并使用站点提供了邮件服务。

开发环境

该设计开发环境使用Windows 2003 Server Standard 操作系统,搭建SMTP和POP3邮件服务器,配置.NET 2.0环境,代码编写工具为 Dreamwaver 8.0。

程序的设计与实现

System.Web.Mail命名空间介绍

System.Web.Mail命名空间包含使您可以使用CDO消息组件来构造和发送消息的类。邮件可通过系统的SMTP邮件服务或任意的SMTP服务器来传送。该命令空间包含三个类,如下说明

类的常用属性、方法说明:

(1)、MailMessage类的属性:该类提供了多个属性、方法、函数,用以构造电子邮件。其中,常用属性如表

(2)、MailAttachment类的函数

该类中的MailAttachment构造函数常与new子句配合来初始化附件类的新实例。可用两种方式进行初始化。1、仅指定文件名;2、同时指定文件名和编码类型。

(3)、SMTPmail类的属性及方法:该类提供了属性及方法以调用CDO组件的功能来发送电子邮件,其中常用的属性有:1、SMTPserver属性。用于获取或设置发送电子邮件的SMTP中继邮件服务器的名称;若不设置该属性,则使用本地(系统内置,如127.0.0.1)的SMTP服务器的名称。2、send方法。该方法用于发送电子邮件。

类的常用属性方法说明:(见表1)

表1 类的常用属性

MailAttachment

提供用于构造电子邮件附件的属性和方法

MailMessage

提供用于构造电子邮件的属性和方法。

SMTPMail

提供用于使用 Windows 2000 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。

其中,MailMessage类提供的接口很多,以创建MailObject实例对象为例:如发件人(MailObject.From)、收件人(MailObject.To)、抄送(MailObject.Cc)、暗送(MailObject.Bcc)、邮件主题(MailObject.Subject)、邮件正文(MailObject.Body)等基本要素,也包括如优先级(MailObject.Priority)、邮件格式(MailObject.BodyFormat)、编码类型(MailObject.BodyFormat)等。

程序设计主要步骤

首先要建立对System.Web.Dll动态连接库的引用。然后,在窗口类之前用以下语句导入命名空间:Import System.Web.Mail,通过初始化构造一个MailMessage()函数定义变量,将接收HTML网页中填入的信息赋值给变量,这样就可以引用其中的成员。

界面设计

首页

首页设置传值页面,把登录信息中的用户名,密码等传到下一个页面(default.asp),form标签的名称为f1,主要代码如:

<form name="f1" method="post" action="default.asp">’设置属性及传值页面

<input type="hidden" name="username">’传用户名

<input type="hidden" name="pwhidden">’传密码

</form>

在首页中加入了判断输入的代码,如if (username.value == "")

{

alert("用户名不可为空");

usernameshow.focus();

return ;

}

并加入了一些图片,生成的效果如图3

 

                              图3 登录首页

 

发送邮件页面

发送邮件的页面调用.NET框架中的System.Web.Mail, 此页面的运行需要.NET2.0框架环境,其它代码也是该设计的核心部分,在主要代码部分有详细的说明,详见 3.5发送邮件页面主要代码, 生成页面如图4

 

                 图4 邮件发送页面

 

用户登录后页面

这是一个框架页面,分为收件箱,草稿箱,发件箱和垃圾箱,每一个部分分别用一个页面来实现,其中最重要的收件箱用listmail.asp来实现,在页面中邮件总数用

<%

dim ei

set ei = server.createobject("easymail. PerFolders")’创建对象并初始化变量

‘然后分别定义变量来接收

用<%= ei.newInBoxMailCount %>来显示组件中收件箱邮件的数量,同理分别用<%=ei.inboxMailCount%>,<%=ei.NewOutBoxMailCount%>,<%=CLng(ei.inboxMailSize/1000) %>来调用组件中收件箱数量,未读邮件数量和邮箱使用率,并对是否为空做判断。

  存储空间的大小用<%=maxsize %>来获取,<%=bf %>用来显示空间使用率,其中bf = CInt((100 * CLng(cursize / 1000)) / maxsize),这里邮件设计为10M

生成如图5

 

图5 登录后

基于Web Mail收发系统设计与开发[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论