毕业论文——Web Mail收发系统设计与开发_第1页
毕业论文——Web Mail收发系统设计与开发_第2页
毕业论文——Web Mail收发系统设计与开发_第3页
毕业论文——Web Mail收发系统设计与开发_第4页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 SystemAbstractWith 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 protocol1 引言随着互联网技术的迅猛发展,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完成邮件发送的开发与设计实现。1.1 选题意义在今天的信息社会中,电子邮件已逐渐成为重要的通讯工具,它在诸如通知、广播和警报系统的应用中起着关键角色的作用。Web方式下的邮件发送,比手工打开Outlook,手工键入相关的信息来发送邮件的方式更优越。举一个极端的例子,在某些系统的应用中,我们可以让电子邮件自动的产生,自动的发送,收件都可以为某个人,也可以为符合条件的从数据库里查询出来的一批人。试想,如果这样的工作手工来做的话,不仅费时而且费力,甚至会出现误寄的问题,因而效率不高。Web方式下的邮件发送的优越之处,在于其发送效率高,发件人手工写的内容少,既省时又准确。1.2 基于C/S模式邮件的运行机理基于C/S的邮件运行模式是典型的传统邮件工作方式,发送邮件将邮件从客户端发送到对应的服务器端,接收邮件又从邮件服务器把邮件下载下来,进行离线阅读等操作。这种模式下用户只能使用特定的客户端来进行邮件的发送的接收。如图1邮件服务器(S)SMTPPop3邮件客户端程序(C) 发送邮件 接收邮件 图1 基于C/S模式的邮件运行机理1.3 邮件的发送和SMTP服务器邮件的发送过程是从像outlook这样的客户端将一封电子邮件发给一个SMTP服务器开始的。一个客户端只知道一个与之相连的SMTP服务器,所以本地客户端发出的全部邮件,不管其目的地地址是哪里,都将发送到同一个服务器,然后本地SMTP服务器负责决定如何处置该邮件。如果目的地址就是本地域的SMTP服务器,邮件就会一直被存放在本地SMTP服务器,邮件就会一直被放在本地的SMTP服务器的邮件库中,直到收件人访问服务器上自己的邮件;如果邮件的目的地址是另一个远程域的SMTP服务器,SMTP服务器就查询DNS Mail Exchange-MX记录,该记录为进入相应域的所有邮件提供SMTP服务器的IP地址,在找到该地址后,本地的SMTP服务器就会把邮件从本地邮件库发送到该地址的SMTP服务器上。所以在这种情况下,邮件先从用户的发送到本地SMTP服务器,再从本地SMTP发送到目的域的SMTP服务器。1.4 邮件协议及原理邮件协议是指可以通过哪种方式进行电子邮件的收发,它们为邮件的发送和接收提供标准。常用的邮件协议有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邮件服务器(S)System.Web.Mail远程邮件服务器(S)ASP客户端浏览器(B) 发送邮件 互相发送邮件 接收邮件(其它组件方式)图2 WEB MAIL邮件的运行机理SMTP协议只负责邮件从客户端发送到目的域的SMTP服务器,用户要从服务器接收邮件,服务器端还必须提供邮件接收服务,而POP3就是用户接收他们邮件的协议,POP3服务器负责邮件的接收。 POP3服务器在服务器上一直运行,等待来自客户端的连接。当客户端试图连接到POP3服务器时,服务器用邮件帐号的用户名和密码来区分用户,邮件服务器验证用户身份后,POP3服务器就将该用户的邮件从SMTP邮件库发送到用户的收件箱。SMTP服务器一般为每个用户设立了一个目录,它类似于用户的邮件箱。这种目录结构使得POP3服务器可以高效的取出指定用户的全部邮件。1.5 SMTP简介目前在Internet上广泛采用的网络互连协议是TCP/IP协议族,该协议族的是为最大范围的计算机系统和网络提供互操作性。针对电子邮件服务,为扩展电子邮件的互操作性,TCP/IP协议族也规定了邮件传输协议,目前采用的是简单邮件传输协议SMTP。它作为TCP/IP协议族的一部分,规定了计算机间交换电子邮件时的一些细节,主要是一些控制信息,包括对正确连接的校验、发送者的标识、传输参数的商定及邮件的传输。SMTP中定义了命令以及命令的响应。客户机向服务器发送命令,并根据服务器回送的响应进行一下步的工作。两者之间相互配合,实现邮件的传送。1.6 SMTP的运行过程 SMTP的运行只需要一个可行的有序数据流传输通道,即TCP连接,这种连接可以跨越若干网络,以中继的方式传输,在不同的传输系统上的主机之间传输电子邮件。 当客户端提出发送电子邮件的请示时,将依次发生下面的事件:SMTP发送端建立一个到达接收端SMTP的双向信息传输通道,接收端SMTP既可以是最终目的地,也可以是中转目的地;1、 SMTP发送发送一个Mail命令,指明电子邮件的发送方;2、 如果SMTP接收端能够接受该电子邮件,那么它就发出一个OK答复消息;3、 SMTP发送端发送一个RCPT命令,指明邮件的收件人;4、 如果SMTP接收端能够为该收件人接收邮件,它就发出一个OK答复,如果不能,就发出一个拒绝为该收件人接受邮件的答复消息;5、 当协商确定了收件人后,SMTP发送端便开始发送邮件数据;6、 如果SMTP接收端成功地处理了邮件数据,它就发出一个ok答复消息;最后,SMTP运行,完成后断开TCP连接。邮于SMTP协议的通讯指令已经被封装进System.Web.Mail命名空间中的类,在程序中只用一句stmpmail.send(email)即可完成邮件发送,封装后并未体现上述的SMTP运行过程。1.7 SMTP中继服务的设置该毕业设计是使用Windows 2003 Server 系统内置的SMTP邮件服务来进行邮件发送的,帮在程序中未设SMTPmail属性,SMTPServer设置为localhost,这样可以获得快的邮件发送速度。当然也可以设置因特网上提供了SMTP服务器的邮件服务器,但需要满足一定的条件,如下:1、现在多数的免费邮件提供商都不再对所有邮件提供SMTP服务,需要验证用户身份,在程序中需要考虑用户身份验证的问题;2、若通过这种方式发送过多的邮件,可能被误认为是垃圾邮件而被拒绝服务。2 总体分析2.1 工作原理2.1.1 单域网络下的单Web 邮件服务器系统这种情况只适用于小型网络,只要在该域的任何一台服务器上建立了Web邮件站点,该域的所有用户都可以通过浏览器使用其Web邮件服务。2.1.2 多域网络下的单Web邮件服务器系统这种情况适用于中型规模的网络。如果多域网络各个域之间已经通过路由设备连通,那么只要在该网络的任何一个域的任何一个服务器上建立了Web邮件服务站点,全网络的所有用户都可以使用Web邮件服务。这时,所有的域的用户的邮件地址的域名部分都相同,都是Web邮件服务站点所在的域的域名。如果要让每个域的用户的邮件地址用自己所在的域名,就必须在IIS管理控制台的SMTP服务器上添加其它各个域的域名,同时把这些新添加的域设置为本地域,所有的域名都自动成为的本地域的别名。但这对用户是透明的,在用户看来他们使用的就是他们所在域的邮件服务器。2.1.3 多域网络下的多Web邮件服务器系统这种系统适用大型、物理分散的网络系统。在这类网络中,或者用户规模庞大,或者域之间的连接速度太慢,如果所有的用户都使用同一个Web邮件服务器势必对服务器有更高的要求;对于物理分散的网络,在多Web邮件系统下,用户可以就近服务,节约了宝贵的带宽资源,对通过低速停产连接的两个较大的域尤其重要。在多Web邮件服务器系统中,在每个SMTP服务器上必须添加所有其它SMTP服务所在的域,并把它们设置为远程域,而且各SMTP服务器设置为允许相互转发邮件。这样各个域的用户就可以相互发送电子邮件了。2.1.4 将内部网络的电子邮件发送Internet在能够把电子邮件发送到Internet之前,内部网络必须直接或通过代理服务器接入Internet;之后,在IIS SMTP服务器上设置邮件网络为智能主机。所有外出的邮件不需要查找邮件目的域的MX记录,都直接发送到邮件网关而不是本地SMTP服务器;邮件再从邮件网关被发送到目的Internet域。2.2 IIS Web邮件发送的特点IIS新增加的一系统功能组件, 不但加强了 Web服务和事务处理能力,更增加了新闻、搜索服务和邮件服务等功能。IIS SMTP服务器是IIS的一体信息服务解决方案的重要组成部分,用其构建的Web邮件系统有以下特点:1、 IIS的SMTP服务是IIS的一个组件,它与IIS紧密连接在一起。实质上,IIS本身就是邮件服务器,只不过这种方式下邮件服务集成于IIS和操作系统,提高了邮件服务的效率和系统的稳定性。2、 减少了系统的复杂性和管理负担。只需要在安装配置IIS的时候选中SMTP邮件服务组件,就可以在系统建立邮件服务。如果使用特定的邮件服务系统,服务器就不得不运行另一套系统,占用额外的服务器资源,而IIS Web邮件系统则减小了系统的复杂性和系统管理员的负担。3、 容易实现,构造成本低。使用SMTP服务器组件可以轻松建立起Web邮件服务,用户不需要安装任何邮件客户端软件,只要一个Web浏览器即可。而其它的邮件系统,每个用户必需安装特定的客户端邮件软件,增加了实现的难度,也提高了系统构造成本和费用。4、 IIS Web邮件系统提供简单方便的邮件服务。客户通过Web浏览器就可以实现用户主动注册邮件帐号和邮件的收发,也可以邮件中插入附件,同时,用户也可以使用客户端邮件软件,如Outlook来发送邮件。5、 可与其它邮件系统地协同服务。2.3 IIS Web邮件发送的不足1、由于SMTP进入SMTP服务器的所有邮件都放在了同一个目录中,而不是为每一个帐号创建一个单独的目录,其检索速度相对较慢。2、 由于不能使用像Outlook这样的邮件客户端软件来接收邮件,所以就不能为用户提供许多方便的各种规则。3、 有待进一步完善。虽然网络开发人员可以通过编写ASP脚本程序来实现所有的邮件功能,但这要求开发人员ASP开发人员精通ASP,增加开发难度。这与其它邮件系统的零编程比起来,有着明显的不足,也影响了其推广的速度。2.4 IIS Web环境建立安装SMTP服务器组件后并建立Web邮件服务站点,邮件服务站点应该提供邮件的发送和接收等服务,这样所有能访问该站点的帐号都可以申请邮件帐号,并使用站点提供了邮件服务。2.5 开发环境该设计开发环境使用Windows 2003 Server Standard 操作系统,搭建SMTP和POP3邮件服务器,配置.NET 2.0环境,代码编写工具为 Dreamwaver 8.0。3 程序的设计与实现3.1 System.Web.Mail命名空间介绍System.Web.Mail命名空间包含使您可以使用CDO消息组件来构造和发送消息的类。邮件可通过系统的SMTP邮件服务或任意的SMTP服务器来传送。该命令空间包含三个类,如下说明类的常用属性、方法说明:(1)、MailMessage类的属性:该类提供了多个属性、方法、函数,用以构造电子邮件。其中,常用属性如表(2)、MailAttachment类的函数该类中的MailAttachment构造函数常与new子句配合来初始化附件类的新实例。可用两种方式进行初始化。1、仅指定文件名;2、同时指定文件名和编码类型。(3)、SMTPmail类的属性及方法:该类提供了属性及方法以调用CDO组件的功能来发送电子邮件,其中常用的属性有:1、SMTPserver属性。用于获取或设置发送电子邮件的SMTP中继邮件服务器的名称;若不设置该属性,则使用本地(系统内置,如)的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)等。3.2 程序设计主要步骤首先要建立对System.Web.Dll动态连接库的引用。然后,在窗口类之前用以下语句导入命名空间:Import System.Web.Mail,通过初始化构造一个MailMessage()函数定义变量,将接收HTML网页中填入的信息赋值给变量,这样就可以引用其中的成员。3.3 界面设计1、 首页首页设置传值页面,把登录信息中的用户名,密码等传到下一个页面(default.asp),form标签的名称为f1,主要代码如:设置属性及传值页面传用户名传密码在首页中加入了判断输入的代码,如if (username.value = )alert(用户名不可为空);usernameshow.focus();return ;并加入了一些图片,生成的效果如图3 图3登录首页2、 发送邮件页面发送邮件的页面调用.NET框架中的System.Web.Mail, 此页面的运行需要.NET2.0框架环境,其它代码也是该设计的核心部分,在主要代码部分有详细的说明,详见 3.5发送邮件页面主要代码, 生成页面如图4图4邮件发送页面3、 用户登录后页面这是一个框架页面,分为收件箱,草稿箱,发件箱和垃圾箱,每一个部分分别用一个页面来实现,其中最重要的收件箱用listmail.asp来实现,在页面中邮件总数用%dim eiset ei = server.createobject(easymail. PerFolders)创建对象并初始化变量然后分别定义变量来接收用来显示组件中收件箱邮件的数量,同理分别用,来调用组件中收件箱数量,未读邮件数量和邮箱使用率,并对是否为空做判断。存储空间的大小用来获取,用来显示空间使用率,其中bf = CInt(100 * CLng(cursize / 1000) / maxsize),这里邮件设计为10M生成如图5图5登录后4、 收件箱收件箱页面首先用%dim eiset ei = server.createobject(easymail.InfoList)创建对象并定义接收信息列表中内容,用ei.LoadMailBox username加载组件中的信息收件箱中所有的邮件信息用循环来显示接收,%dim forpnforpn = i = 0do while i 循环结束如图6图6收件箱5、 邮件查看在查看邮件页面(showmail.asp)中同样调用组件中来显示每一邮件的信息值得注意的是在显示详细页面的时候,如果没有规定编码格式,可能出现乱码的情况,因此在这里添加一个判断charset = UCase(ei.Text_CharSet)if charset = or charset = DEFAULT_CHARSET thencharset = gb2312把页面的编码设为gb2312日期,优先级,发件人,发件人地址,收件人地址,主题和邮件的详细内容分别调用组件中Time,XMSMailPriority等来实现,具体格式如下:邮件优先级判断:%xmsp = ei.XMSMailPriority定义邮件优先级if xmsp = High thenResponse.Write 紧急邮件elseif xmsp = Low thenResponse.Write 慢件elseResponse.Write 普通邮件end if%发件人调用: 定义变量接收收件人变量调用主题调用邮件内容如图7图7邮件查看3.4 主要代码程序主要页面程序如下:1、 邮件发送页面: Sub SendMail(ByVal sender As Object, ByVal e As EventArgs) Dim MailObject As New MailMessage() 构造一个mailmessage函数,MailObject为构造函数名 下面是判断填的信息是否为空,不为空则为text中的内容 If Emailfrom.Text Then MailObject.From = Emailfrom.Text 发件人 If EmailTo.Text Then MailObject.To = EmailTo.Text 收件人,这里必填,否则邮件找不到邮件服务器上的邮箱信息,会出错 If EmailCc.Text Then MailObject.Cc = EmailCc.Text 抄送 If EmailBcc.Text Then MailObject.Bcc = EmailBcc.Text 密送 MailObject.Priority=MailPriority.High 邮件发送优先级,可以有high,normal和low三种选择 MailObject.Subject = EmailSubject.Text 邮件主题 MailObject.Body = EmailBody.Text 主体,即邮件内容 MailObject.BodyFormat = MailFormat.Text 设置邮件内容格式,Text为文本,Html为超文本 MailObject.BodyEncoding 设置编码类型,参考有ascii Dim MailAttachment As String 定义附件,这里不知道用string好还是可变的stringbuilder好 MailAttachment = EmailAttachment.PostedFile.FileName lenth变量控制附件大小,但是页面和服务器的设置如果不对的话会很麻烦 If MailAttachment Then MailObject.Attachments.Add(New MailAttachment(MailAttachment) SMTPMail.SMTPServer = localhost 指定使用缺省的SMTP服务器,测试了很多次外网的邮件服务器都需要验证,而这个又没有验证,所以就用自己Win2003建的邮件服务器做测试 SMTPMail.Send(MailObject) 调用System.Web.Mail.send发送邮件 panelSendEmail.Visible = False panelMailSent.Visible = True End Sub发送脚本部分完html定义变量 点击处理事件判断是否发送成功邮件已经成功发送,欢迎您使用!2、邮件收件箱主要代码:随机数产生函数:(作用是产生随机数,在注册时产生验证)function getGRSN()定义dim theGRSNRandomizetheGRSN = Int(9999999 * Rnd) + 1)让99999999乘以随机数rnd的和加1并取整getGRSN = GRSN= & CStr(theGRSN)end function定义邮箱空间使用率:dim bfif maxsize 0 thenbf = CInt(100 * CLng(cursize / 1000) / maxsize)elsebf = 100end if列表:set ei = server.createobject(easymail.InfoList)显示邮件主要函数:set ei = server.createobject(easymail.emmail)4 软件测试通过对自己搭建WinWebmail邮件服务器,设置域名,经过以下测试可以得出:(1)、因为发送邮件使用的是System.Web.Mail命令空间,所以单独运行时(此时需要独立的SMTP服务器)可以送带附件的邮件,可能是类的不同,所以集成到WinWebmail时不能发送带附件的邮件,但这个功能是实现了的。(2)、接收邮件可以完成,但是带附件的邮件无法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论