版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工程硕士专业学位论文(设计)题 目 中小企业web邮件系统的设计与实现 作 者 完成日期培养单位 四 川 大 学 指导教师 指导教师 工程领域 软 件 工 程 授予学位日期 2011年10月 日中小企业web邮件系统的设计与实现软件工程 领域研究生 关 冀 指导老师 随着网络技术的快速发展,电子邮件已经被广泛应用在人们的日常生活中。据统计,全球总的网页访问量中,其中与电子邮件相关的就有66%以上。电子邮件系统在应用的初期只能通过Outlook,Foxmail等客户端软件来收发自己的邮件,但随着经济的发展与用户需求的不断提高,单纯使用邮件客户端程序进行邮件的收发已经不能满足用户移动办公的需要。W
2、eb邮件技术因其快捷、方便的优点吸引了众多的网络用户。该技术的出现,较好解决了用户办公的需要。运用该技术,用户无须安装任何E-mail客户端软件,只需要使用浏览器打开存放在服务器上的特定网页就可以进行E-mail收发及相关操作。对于应用开发来说,选择一条适合开发的技术路线,才能够开发出灵活的、低耦合的、可扩展的、易于维护的系统。正是基于目前Web邮件系统的优势和切实需求,开发新一代的高性价比Web邮件系统对于某些行业有重要的意义。本文正是在这样的背景下,对Web邮件系统实施中的关键要素进行讨论,在系统的架构方面基于MVC模式,实现了由表现层、业务层到持久层的三层架构,采用的技术是Spring+
3、Struts+Hibernate,在此基础上设计和实现一个基本的邮件系统。系统基于J2EE平台,MVC开源框架,使用JavaBean,Sevlet等标准技术实现了MVC模式。论文首先阐述了电子邮件基本原理、相关协议,分析了MVC模式及J2EE架构。进而根据中小企业的需求分析介绍了中小企业web邮件系统的总体架构及Web server构架,对构成该邮件系统的结构进行了分别介绍。本邮件系统设计了用户注册、身份认证、邮件发送、邮件接收、通讯录管理、邮件夹管理、邮件过滤等应用功能。系统的功能实现采用了socket编程,多线程、线程池技术,oscache缓存技术等组件技术,运用Mysql数据库服务器管理
4、用户信息、邮件信息以及系统配置参数等数据。本文对系统安全性、邮件收发及垃圾邮件过滤进行测试,自建的邮件服务器测试表明,该邮件系统的功能满足了设计的要求,性能方面达到了中小型企业邮件服务器的需求。本文的最后,说明了本课题的当前状况,并且指出了该系统的特点以及不足之处,对该系统的后续需要解决的问题作了说明。关键词:电子邮件 邮件过滤 电子邮件协议 MVC架构模式English titleSoftware EngineeringGraduate Student: Adviser: With the development of Internet and networking office, emai
5、l is becoming a popular communication way. According to the statistics, 66% of web accessing is email service. In the past, email client software, such as Outlook and Foxmail, is the only way to send and receive email. But this way is not enough for mobile office. WebMail technology can meet the nee
6、d of mobile office, because it has the benefits of quickness and easiness. Users do not need to install any client software, by using the web browser, users can send and receive email or doing other operations.For application development, choosing a technical route which suits fou the development to
7、 a achieve this goal and develop a flexible, low-coupled,extensible, easy-to-maintain system is very necessary.Since the WebMail system has such benefits, it is important to develop a new generation WebMail system with high performance/cost rate. In such background, this paper discusses the key aspe
8、cts of designing a WebMail system. Based on the MVC model, we design a three layer architecture which includes presentationlayer, business layer and persistence layer. The implementation tools we used include Spring, Struts and Hibernate. The E-mail system bases on the J2EE paltform, MVC open source
9、 framework, technical standards Java Bean, Servlet and achieves MVC design mode.The author first describes the basic principles of e-mail and the related agreements and analyses the MVC model and J2EE architecture in the paper. Meanwhile, according to the demands of small and medium enterprises, the
10、 author has also introduced the general framework of web mail system、web server architecture and the structure of forming the mail system respectively. This e-mail system is designed including the user registration、authentication、message sending、e-mail receiving、contacts management、mail folder manag
11、ement、mail filtering and other applications. The functions of the system is accomplished by using socket programming as well as some component technology such as multithreading、thread pool and oscache cache technology and by using Mysql server database to manage user information、mail information and
12、 system configuration parameters data. For the sake of security, mail sending and receiving and spam filter system have also been tested. Testing the prototype WebMail system. The result shows that the system implements the basic function of a mail system, and its performance meet the need of a midd
13、le level mail server.In the last part of the paper, the author explains the current status of the study and points out the characteristics of the system and its limitations. The follow-up problems of the system has also been described.Keywords: Email Email Filtering Email Protocol MVC目 录1 绪论81.1课题背景
14、81.2电子邮件系统的研究现状81.3电子邮件系统发展趋势101.4Web邮件系统的研究内容及意义112 Web电子邮件的相关技术132.1基本原理132.2相关协议152.3Web应用J2EE架构182.4小结193 Web邮件系统的设计213.1中小企业对邮箱的需求分析213.2系统总体架构223.3Web server构架设计233.4Web应用功能设计243.5小结254 电子邮件系统的实现274.1系统实现技术背景274.1.1开发环境274.1.2相关组件技术274.1.3收发邮件的基础API294.2系统架构实现机制294.3Web邮件系统功能实现344.3.1. 用户注册和身份
15、认证的实现344.3.2邮件发送的实现374.3.3. 邮件接收的实现404.3.4. 通讯录管理的实现424.3.5. 邮件夹管理的实现424.3.6. 垃圾邮件过滤的实现444.3.7. Web页面的JSP实现454.4小结475 测试与分析485.1系统部署485.1.1. 部署环境485.1.2. 运行及监控485.2功能实现测试495.2.1.测试的方式495.2.2.测试配置505.2.3.用户安全性测试505.2.4.Web邮件发送测试515.2.5.Web邮件接收测试525.2.6.Web邮件夹管理测试525.2.7.Web通讯录管理测试535.2.8垃圾邮件过滤测试545.3
16、系统性能的分析555.3.1.用户并发行性能555.3.2.服务器资源分配问题555.4小结566 总结与展望576.1系统特色576.2问题与展望58致谢59参考文献601 绪论1.1课题背景随着互联网技术及网络办公化的发展1,电子邮件已经成为人们主要的通信方式之一。据统计,当前全世界网页访问量中,与电子邮件相关的占60%以上。电子邮件是人与人之间最快捷、省钱的联系方式。同时,电子邮件以嵌入方式传送的特点还可以传送多种类型的信息,包括文件、声音、图片、视频等。另外,PGP加密、数字签名与认证等技术的应用能够保证电子邮件传递的可靠性和安全性。正是这些良好的特性,使电子邮件系统受到越来越多用户的
17、青睐,如新产品发布系统、客户订货系统、电子杂志订阅系统等等。在商务领域,电子邮件已经成为交易双方间最为常用的通信联络方式。随着技术的不断发展,电子邮件系统的技术体系也逐渐完善。从刚开始的只能通过Outlook,Foxmail等客户端软件来收发自己的邮件到Web邮件技术的出现,较好地解决了用户移动办公的需要,用户不用安装任何客户端软件,就可在特定网页上进行邮件收发及相关操作,其方便、快捷的操作得到了大多数用户的青睐。正是基于目前Web邮件系统的优势和切实需求,开发新一代的Web邮件系统,对于某些行业有重要的意义,例如外贸行业,外贸公司联系客户的核心手段即电子邮件,基于Web应用的邮件系统解决了外
18、贸公司对电子邮件管理的迫切需求。本文正是在这样的背景下, 分析和讨论了Web邮件系统实施中的关键要素,并且设计和实现一个基本的邮件系统。1.2电子邮件系统的研究现状据CNNIC的一份调查报告显示,到2000年,全球电子邮箱注册数已达5.14亿,全世界平均每日发送邮件已高达100亿封。我国网民的电子邮件账号总数已超过了7000万个,电子邮件已经当之无愧地成为Internet的第一应用。随着电子邮件技术发展为多网合一的沟通工具,企业自建邮件系统已成为商业沟通和客户关系管理的利器,电子邮件技术的应用已成为企业进入信息化管理的关键一步。本节将详细介绍几种有代表性的电子邮件系统。由于Email是互联网上
19、最常用的联系工具,国内外各大厂商和顶尖技术高手纷纷推出了自己的邮件系统平台。1、Ms Exchange和IBM的Lotus Notes为代表的工作流软件在Windows平台上,Lotus Notes和Exchange是两个最常用的邮件系统软件,它们已经发展成熟,拥有大量的用户基础。这种邮件系统通常是由内部人员自行开发的,它们的优点在于功能丰富、扩展能力强,缺点是价格昂贵,管理和维护的复杂度也相应较高。高昂的成本严重影响了企业的收益。除此之外,该类电子邮件系统在满足电子邮件应用的具体需求上,还存在着种种缺憾。Exchange Server作为服务器,该系统只能运行在Windows NT上,Win
20、dows NT本身的不可靠、不稳定决定了Exchange Server的不稳定、不可靠。Exchange Server的不稳定在于它的内存泄漏问题,并会随着系统运行时间的增加会越来越慢,平均每周都要重启动一次。Exchange Server不能支持太多的邮件账户,一般超过200个用户时系统运行效率就会明显变慢,要解决这个问题只有依靠更先进的硬件,而这些硬件往往会很贵。Exchange Server没有较强的安全性和功能,很容易被外界攻破导致邮件被任意乱发或发一些垃圾邮件。Exchange Server的不稳定还在于经常出现系统故障,使得无法正常收、发邮件,需不断地重启服务器和刷新邮件系统6-7
21、。Lotus Notes基本上还是一套OA和工作流系统,根据客户的反映情况,出现的问题与Exchange Server类似。2、Sendmail和Qmail6为代表的免费软件和共享软件许多 Linux 操作系统免费提供 Sendmail 或 Qmail, 满足用户的基本邮件收发需求。不管是从代码的复杂程度,还是从使用的广泛程度来判断,Sendmail都是一款极为优秀的软件。尽管Sendmail有许多优点,但也存在着以下不足:第一不足是它的安全性较差。究其原因是软件作者Eric Allman最初开始写作这个软件的时候,全球Internet的用户还很少,网络是非常友好的地方,每个在网上交流的人都能
22、够很容易地了解对方,几乎没有必要为了安全而设计软件,编写代码。自然,安全性问题并没有引起大家足够的重视,人们并未意识到安全会出现问题,出现问题就会对整个系统安全造成严重影响。Sendmail在大多数系统中都是以root身份运行,邮件系统需要处理的是外部发送来的各种各样的信息,信息中所包含的一些恶意数据会对系统产生威胁,而这些威胁仅仅依赖程序本身是无法解除的。因此要保障系统的安全,必须针对系统的结构,限制程序所拥有的特殊权限。Sendmail开发当时,Internet用户数量及邮件数量都相当小,通常情况下Sendmail只启动一个进程顺序向外发送邮件,如果邮件较多时就要花费相当长的时间,这时候
23、Sendmail的系统结构就很难承受,解决这一问题的唯一办法就是对Sendmail进行调整,而这一过程相当复杂。第二不足是Sendmail的设置,它也非常困难。而一般情况下,我们在收发电子邮件时使用缺省设置,这一问题就迎刃而解。但是当管理员需要进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力处理邮件时,Sendmail的设置问题就凸现了。系统管理员不得不面对复杂的宏和正则表达式,尽管现在Sendmail使用了宏预处理程序使设置变得容易了一些,但是要掌握Sendmail的设置对广大系统管理员来说仍是一个难题。 使用Qmail替代Sendmail。Sendmail 的历史上出现过很
24、多严重的安全问题,Sendmail的作者, 和目前的维护者Claus Assman 为了加强Sendmail的安全也做了很多工作,但还是不能让Sendmail达到绝对的安全。为了彻底解决Sendmail的安全缺陷,必须重新设计整个系统结构,Qmail就是面向安全而设计的。Qmail是运行在UNIX兼容系统下的一个因特网邮件传送代理,是一个直接代替UNIX下 Sendmail软件的邮件传送程序,其设计的基本原则就是将系统划分为许多不同的模块,每个模块都承担其相应的功能。Qmail由多个不同功能的、相对简单的小程序组成。在诸多小程序中,只有必要的程序才是setuid程序(即以root用户权限执行)
25、,最少限度地应用root编码能减少安全隐患,达到较高的安全性13。安全性的提高对于当前险象丛生的因特网是有很大意义的。Qmail是按照Unix思路的模块化设计方法设计的,该设计方法使得Qmail具备较高的性能。它不但可以启动某个模块的多个实例来共同完成同一个任务还提供了一些特殊功能,例如Maildir格式的邮件存储方式,这使得邮件可以通过网络文件系统NFS进行存取。除了前文所述,Qmail还具备一些非常别致的特色,如它既提供了与Sendmail兼容的方式来处理转发、别名等能力,也可以用以Sendmail完全不同的方式来提供这些功能。以此可见其作者Dan Bernstein是一个极具个性化的程序
26、员。Qmail并没有拥有所有人要求的任意功能,对于其安装编译方式,提供的扩展功能和源代码的风格等方面,也存在着一些争议。例如,对于安装设置容易与否就形成了两种截然不同的观点,有些人认为Qmail的安装设置不容易,很容易让人胡涂,而另一些人的看法则相反。就其争论原因基本上是因为Qmail提供解决问题的方式和Sendmail不大相同,对那些不太熟悉Sendmail的邮件系统管理员来说,更容易接受Qmail一些。不管怎样,使用Qmail逐步替代Sendmail却是事实。1.3电子邮件系统发展趋势目前基于Internet、Intranet电子邮件系统的发展趋势如下:(1)Web邮件技术的应用经济的发展
27、,生产方式的改变和商业交易模式的转变将会带动中国Internet应用的进一步普及与深入,电子邮件的使用将呈不断增长的态势。越来越多的企业和个人的经济行为不受时空限制,移动办公已成为一种趋势。过去只能使用邮件客户端程序进行邮件的收发根本不能满足用户的需求。Web邮件技术的出现恰好解决了这一问题,有效应用该技术,将使得邮件用户无须配置邮件客户端程序,就能随时随地使用浏览器登录邮件服务器完成收发邮件。(2)提供多域邮件服务所谓多域邮件服务,也就是一台物理服务器能为若干个独立注册Internet域名的企业或组织提供电子邮件的服务。ISP提供商和企业集团在选择邮件服务器时,通常会看重多域邮件服务器较为强
28、大的支持能力。要实现多域邮件服务功能,企业和组织应拥有自己独立的邮件服务器,所以也可以称为虚拟邮件服务器技术。(3)Linux邮件服务器的使用可靠性高、性能稳定、且价格低廉是Linux操作系统的特点,良好的性能使得Linux操作系统成为目前最为广泛应用的开源操作系统。使用Linux邮件服务器,可以与Sendmail、MySQL等开源软件共同使用,既满足了用户的功能需求,又有效降低了系统价格,体现出了较明显的优势。 (4)提升安全防护安全是用户对电子邮件的基本要求,安全技术的发展与应用是极为重要的。传输加密技术、数据身份认证技术、安全审计、邮件病毒过滤技术等多项安全技术的广泛应用使得现在的邮件服
29、务器在安全防护技术上明显加强。(5)多语言环境在实际使用中,邮件系统的语言环境是复杂的。对于各种各样的语言我们不可能制定适用所有的邮件客户端的统一标准。为了实现邮件用户之间的“交流畅通无阻”,就只有让邮件服务器支持多语言的环境。目前,仅中文就有若干字符集,如GB-18030、GB-2312、Big5等等。(6)可实施远程监控和性能调整目前,邮件服务器都可以对邮件进行远程监控,以此来解决使用过程中许多邮件服务器的操作受到限制的问题。因为产业结构和技术等原因,许多邮件服务器处于电信托管等方式,本地操作在一定程度上被限制。人们需要通过Web方式,适时监控邮件服务器的工作状态,并随时对出现的发信高峰和
30、网络攻击等现象进行远程调整和处理。 1.4Web邮件系统的研究内容及意义从以上阐述的企业电子邮箱应用方式中可以看到目前市场上适合中小型企业应用的性价比高、功能完善、管理维护简单的Web邮件系统还很少。特别针对嵌入式应用,更需要跨平台的Web邮件系统。广大中小企业正面临产业结构的转型,无论是生产组织方式还是商品交易模式都需要借助于信息化来实现。信息化建设与管理已成为中小企业管理的主要组成部分,在这其中,邮件系统的开发和运用首当其冲。高性价比、维护成本低、实施简单容易、可靠性高的邮件系统解决方案是受中小企业欢迎的。开发设计并应用符合中小企业需求的邮件系统将能帮助中小企业提高生产能力,提高企业营运效
31、率和效益,进而提升综合竞争实力。本文的工程研究正是要尝试采用先进的技术标准满足企业级电子邮件系统的业务需求和成本约束要求,并尽可能使系统更安全,系统实施和维护成本更低。为了实现这样的一个具有较高应用价值的任务,不仅需分析其在理论上是否可行,更需要考虑系统的可实施性和成本约束。这样我们就必须了解如下事实:(1)作为电子邮件系统的核心部件邮件收发服务器性能及稳定性可以从硬件配置和软件性能两个大的方面来比较邮件服务器。在硬件配置上,主要考虑的是硬件的可管理性、可扩展性和物理配置等方面;而在软件性能比较上,邮件服务器主要考虑所支持的邮件服务协议、是否支持多域名、是否支持SSL安全协议和邮件过滤等诸多方
32、面。如果从邮件发送指标上来考虑的话,还有诸如最大并发邮件数、平均往返延迟和邮件发送成功率等几个重要指标。(2)作为企业级电子邮件系统的可实施性和成本控制企业级电子邮件系统不仅要能用、好用,而且要充分考虑系统的开发成本、维护成本和相关硬件投入成本。基于上述两个事实,本文提出这样的设想:设计一种低成本、可实施、跨平台、高兼容性的企业级电子邮件系统,该系统能部署在Internet、Intranet上,满足企业级电子邮件传递和管理需求。成本和可靠性是其中的关键问题,对于成本问题可以通过引用成熟的Java16开源项目作为电子邮件服务器的核心主件,这样可以解决大部分服务器开发的成本,并且可以保证系统的稳定
33、性和成熟度,更重要的是可以对服务器进行改造和扩充;对于系统的高可用性和通用性来说,可以重点设计和开发一套基于Web应用的用户邮件管理系统,既能实现跨平台使用,又能降低维护成本,也能够解决通用性问题,降低培训成本。从下一章起,本文将首先细化上述问题提出更具体的需求,然后对其进行详细分析,逐步给出解决方案和实现方法,最后对所实现的电子邮件系统进行性能和功能测试,并给出分析和评价。2 Web电子邮件的相关技术2.1基本原理本文针对现在企业对Web邮件系统的需求现状,提出一个基于Java Mail开源技术的Web电子邮件系统,实现分布式处理、多线程收发邮件、处理不断增长的历史数据的存储,解决目前电子邮
34、件管理需求。1、 邮件系统的工作原理 电子邮件其实就是电子版的信件,是现在最主要的通信方式之一,使信息交换和数据传输更加快速简捷。它的工作原理是通过网络,实现各类信号的传送、接收、存贮等处理,能把邮件以最短的时间发送到任何指定的地方。除了普通的信件,电子邮件还可以传递视频、文件、图像等多种类型的信息。因此,它是网络资源使用最多、全球最受欢迎的一种服务。电子邮件是一种被称为“先存储后转发式” 的服务。 这种服务不必时时在线,也就是说无论信件接收者当时在不在场,发送者都可顺利把邮件快速的发送到接受者的邮箱中,并且存储在对方的电子邮箱中。接收者可随时随地查阅所收到的信件,不受任何限制。所以,所谓“发
35、送”邮件实则意味着将邮件放到了收件人的信箱中,而收件人“接收”邮件就意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的个实体。电子邮件系统把是计算机技术和通信技术结合而产生的一种新型信息系统 25,26。TCP/IP定义了一组协议,以此来保证电子邮件系统的正常运行。其中最主要的几个协议是POP3(邮局协议)3-5 、SMTP(简单邮件传输协议)2和IMAP(Internet消息访问协议)8。它们的关系如图2-1所示。电子邮件从发送到被接收的传递历经如下过程:电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服
36、务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP主机的一个电子信箱,由ISP主机负责电子邮件的接收。一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户
37、时,电子邮件首先从用户计算机发送到ISP主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。MDAMailboxMDAMailboxMUAMTAMTAMUA图2-1 Internet邮件传递示意图SMTP和POP3/IMAP一样是在邮件服务器上运行的服务器软件。SMTP是工作在两种情况下:第一种情况是从客户机传输电子邮件到服务器,第二种情况是从服务器到服务器。SMTP服务器的主要功能有MDA和MTA,通过该功能完成待发送邮件的接收,同时完成将邮件发至指定邮件服务器的SMTP服务器,再由该SMTP服务器写入到用户邮箱。SMTP在传送邮件的时候能够通过不同网络上的主机以接
38、力式传送是它的一个显著特点。所以,无论是从用户机(如普通PC)上来的邮件还是从其它SMTP服务器上来的邮件都能通过SMTP传送。对于没有SMTP服务器的普通客户主机用户也可以实现邮件的接收,只需通过IMAP协议或者POP3协议从邮件服务器上获取。一般情况下,我们把电子邮件程序分解成投递代理、传输代理和用户代理。用户代理将用户的信件传送至传输代理(如 Outlook Express、FoxMail 等)。邮件传输代理负责将邮件送到目标主机(如sendmail)。而投递代理则将在传输代理处的信件传送至最终用户的邮箱(如 procmail)。 从上面的收发过程中可以看出邮件服务器是电子邮件系统中最重
39、要的部分。它是实现邮件发送、接收、储存、转发的必要条件。如果是通过Web方式访问邮件服务器,则还需要在服务器端部署Web服务功能为用户提供邮件系统的访问界面,用户在远程计算机通过浏览器即可访问邮件系统并通过Web服务所提供的界面实现其他管理功能。2、Java Mail的整体结构Java Mail API是用于存取邮件服务器的API,程序员可使用这种API创建邮件用户代理(Mail User Agent,MUA) 类型的程序,从而实现类似于Microsoft Outlook这样邮件程序。用户可以与基于Java Mail的MUA进行交互,来阅读和编写电子邮件,MUA根据邮件传输代理(Mail Tr
40、ansfer Agent,MTA)处理发送任务。Java Mail只是定义了一组接口,它是作为Java的可选包存在的(不管是POP3、SMTP、IMAP还是Hotmail用的HTTP协议),从使用者的角度看,Java Mail API包括三个部分。(1) Message及相关的接口/类。这些类是用来构建一个标准的RFC822邮件。(2)Transport及相关的接口/类。这些类是用来发送一个已经构建好的RFC822邮件。(3)Store及相关的接口/类。这些类是用来接收邮件,并按RFC822标准,转换成message对象。从服务提供者角度看,Java Mail API还包括一套可扩展的prov
41、ider机制,通过它,你可以扩展出各种邮件协议,例如:SMTP、SMTPs、POP3、POP3s、IMAP、NNTP等。不过,对使用API的人来说,这些provider是透明的。2.2相关协议邮件系统主要有三个关键的协议:SMTP协议,POP3协议和IMAP4 协议24。1SMTP协议SMTP(Simple Mail Transfer Protocol)协议的目标是向用户提供安全、高速的邮件传输。SMTP协议具有中转特性,接收者与发送者的SMTP之间建立一个双向传送通道,发送方SMTP发出SMTP命令,接收方SMTP接收SMTP命令,而应答SMTP命令就作反方向传送。这就是设计SNTP所依据通
42、信模式。当传送通道被建立后, SMTP发送者以MAIL指令告示邮件发送者,SMTP接收者如果能够接收邮件就返回OK应答。接着,SMTP发送者再发出RCPT命令对邮件接收者是否可以到达进行确定。相同道理,返回OK表示可以接收,否则表示不能接收,此过程将会在发送方与接收方之间重复若干次,一直到所有邮件被接收完后有一组特别的序列。同理,返回OK表示已经成功处理了邮件。其使用模型如下图所示。图2-2 SMTP使用模型因为SMTP具有 “中转”(Relay)的重要特点,只要能与该服务器建立传输层连接,通常用户可以任选一台SMTP服务器来实现邮件的发送处理。如果该服务器M能与目服务器N直接相连接,那么邮件
43、就可以被直接送至N中;如果M、N不能连接,那么M将会向其它的服务器询问路由。如果有另一台服务器L能够与N建立直接连接,或者是目标的路由能够明确,那么邮件就会由M被转至L,再由L转发向至B。无论是服务器间的中转还是从客户机到服务器的直接发送,都是通过使用SMTP同一套指令来进行的,使整个过程更加简单明析。2POP3协议POP3(Post Office Protocol 3)是规定将个人计算机如何连接到Internet的邮件服务器和如何下载电子邮件的电子协议。它能够让用户直接把邮件从服务器上存储到自己的计算机,还可以存储在将服务器里的邮件删除。POP3是基于以下流程开展各项工作的:初始时,通过侦听
44、TCP端口110开始提供POP3服务;客户主机如果需要享用该种服务,就会与主机建立TCP连接;然后, POP3服务器会和客户交换命令和响应,直至连接终止。在生命周期中,POP3会话有“确认”、 “操作”、 “更新” “退出”几种不同的状态。进入“确认”状态需要两个条件,一个是POP3服务器发送了确认信息另一个是TCP连接已经打开。这时候必须先确认用户的身份。身份认证后就可以获取相关的资源,这时便到了生命周期的“操作”状态。当客户发出QUIT命令时,就从“操作”状态转入“更新”状态。此时,在前一状态中所获得的资源将被全部释放,同时发送消息,断开连接直至退出。图2-3 POP3的状态模型USER
45、Username 对应find_user(username)查询用户是否已注册。PASS password 对应verify_pwd(username,passwork)验证用户密码是否正确。STAT对应count_mlist(username)查询该用户邮件数。3IMAP4 协议IMAP4(Internet Message Access Protocol version 4 rev 1)即交互式数据消息访问协议第四个版本。IMAP4设计支持多种访问方式如联机、脱机和断开。随着发展趋势的变化,它的特性必将超过POP3。很多厂商都打算采用IMAP4。IMAP4还拥有很多POP3所没有的功能:如支
46、持多级档夹、远程档夹操作,支持共享档夹,新到邮件通知等优越性能。基于现在的分布式计算环境,IMAP4的优势很明显,适用范围更广。IMAP定义了3种状态:未确认状态(Non-Authenticated State)、已确认状态(Authenticated State)和已选定状态(Selected State)。对于大多数的IMAP4命令一般都只有在具体某种状态下才会生效。假如IMAP4客户端发送命令时没有在相应的状态下,那么将返回错误的信息。状态不同则客户机向服务器发送的命令也就不同,状态可以在某些命令下相互转换。初始化连接和服务器问候非预确认连接拒绝连接预确认连接未确认Login或Authe
47、nticate命令成功,Logout或服务器关闭或连接关闭已确认Select或Examine命令成功Logout或服务器关闭或连接关闭Select或Examine命令失败,或Close命令 已选定Logout或服务器关闭或连接关闭注销并关闭连接图2-4 IMAP状态机IMAP与POP3的不同之处还在于,POP3客户机一次只能发送一个命令,也就是在第一个命令发出去以后没有得到服务器响应之前第二个命令不能发出。IMAP则一次可发送多个命令请求而不需要等待服务器的响应。IMAP还规定客户机发送命令的时候必须带上一个能够唯一标识此命令的标签或参数。相应的每一个响应也是如此,都在返回时包含了一个卷标,使
48、响应与命令相对应。通常,服务器返回的回应包含“OK”、“NO”、“BAD”、“BYE”、“PREAUTH”等状态的内容。由于IMAP的回应格式较复杂,所以实现起来难度更大。2.3Web应用J2EE架构基于MVC模式的web应用一般被分成至少3个各司其职的层次。这些层次是:表现层、持久层、业务层。目前,基于Struts,Hibernate和Spring的轻量级J2EE框架是最流行的框架之一11。通过组合Spring、Struts、Hibernate使得每一层都以一种松耦合的方式彼此沟通。表现层将使用Struts,业务层将使用Spring,持久层使用Hibernate12。架构图见图2-6。图2-
49、6 Web应用的J2EE架构1表现层表现层是整个WEB应用系统的最前端,使用Struts构建表现层负责接受用户的请求,并根据请求显示正确的页面。一般而言基于Struts的表现层应该提供以下功能:为用户管理请求和响应;提供一个控制器代理调用业务逻辑和其它上层处理;处理从其它层掷出给一个Struts Action的异常;为显示提供一个模型;执行用户接口验证。2持久层持久层主要为业务逻辑层提供对数据库进行操作的接口。根据数据库表的定义导出表的结构,然后生成对应的映射文件和Java代码使实际数据库结构和Java代码保持一致,同时也有效地节省了手工编码的时间。值得注意的是不能把持久层逻辑和表现层逻辑搅和
50、在一起。避免诸如JSP或基于Servlet的类等表现层组件里的逻辑和数据存取直接通讯。为了修改应用程序而不影响在其它层的代码,需要把持久层逻辑隔离进自己的层。3业务层业务逻辑层主要完成持久层异常封装、业务逻辑处理、事务管理和持久层Hibernate Session管理等四项主要功能。在一些不合理的架构设计中,会经常存在这种类型的代码,使应用程序紧耦合。随着时间的变化,代这些码也越来越难以维护。而Spring可以解决这个问题。2.4小结本章首先介绍了电子邮件系统的基本原理,对电子邮件体系结构和因特网上的电子邮件工作机制作了详细阐述,并对电子邮件的通信协议-SMTP协议,POP3协议和IMAP4
51、协议-进行了介绍。然后介绍基于MVC模式的web应用框架以及在不同层上的特性。在当前流行的J2EE平台上,表现层、业务层、持久层分别使用Struts、Spring、Hibernate。把Spring、Struts、Hibernate等框架组合在一起构成的web应用系统具有开放性、独立性、复用性和可靠性等特点。3 Web邮件系统的设计3.1中小企业对邮箱的需求分析随着市场经济的发展以及社会环境的改变,中小企业面临着产业升级、管理模式转变等重要课题。在此背景下,中小企业的信息化发展得越来越快,就企业邮箱上的需求也趋于明显20。有统计数据显示,目前全国经工商部门注册的中小企业已达1000多万户,若加
52、上微型企业,就达到4000多万户,已经形成了一股强大的力量。广大中小企业拥有全国60%以上的发明专利,80%以上的产品开发。但是这些中小企业的信息化技术比较落后应用水平比较低。随着竞争压力的加剧,整个中小企业市场对信息化的需求不断扩大,并且应用层次差异和范围比较大。信息化建设对企业发展至关重要,据调查,中国有绝大多数的中小企业会在IT方面投资,而总计有10左右的企业正在进行基础网络方面投资,并且这一比例将不断上升。就电子邮箱发展而言,2005年中国电子邮箱市场规模为RMB 6.4亿,预计到2010年该市场将接近RMB 16亿,复合成长率为21%。其中企业邮箱发展潜力巨大。预计到2010年企业邮
53、箱所占比重将从2005年的20%提升到24%。虽然中小企业对邮箱的依赖程度正在逐步增强,但从目前国内的形势来看使用企业邮箱的中小企业仅有10%左右。其根本原因是多数邮件系统不能满足中小企业对于企业邮箱的需求所形成的。因此,要建立一个方便易用的邮件系统就必须具有满足中小规模软件企业特性需求的能力。 一般而言,中小企业邮件系统需要达到以下的目标:1用户在线注册 用户在Web页面上填写直接填写用户资料,方便注册为新用户。2邮件接收业务用户接收并查看浏览他人发送的邮件并以邮件列表的形式显示在web页面上,每封邮件只显示发件人、主题等简单信息。若要查看邮件的详细内容需要用户点击主题。3邮件发送业务用户在
54、web页面上编写新邮件,或者是回复、转发邮件(此时邮件的收件人、主题和正文内容都依赖于原邮件),邮件能够自动保存在草稿箱中。用户既能选择直接发送,也可添加附件后发送。4通信录管理用户管理联系人地址,对其所属的通讯录记录进行删除、修改、添加。5邮件夹管理用户通过邮件夹管理自己的邮件,实现对邮件的分类存储。用户可新建文件夹或删除某文件夹里的邮件,也可以方便地把邮件移动到任意一个文件夹中。6垃圾邮件过滤垃圾邮件已成为中小企业用户的一大公害,可能会给企业带来严重损失。另外,垃圾邮件将导致员工工作效率低下,不健康内容的邮件将对收件人造成不同程度的冲击23。此功能便可过滤垃圾邮件,轻松解决这一问题。3.2
55、系统总体架构图3-1 邮件服务系统总体架构基于第二章所述的MVC模式的Spring+Struts+Hibernate三层架构,本文设计了Browser/Server结构的Web邮件系统,如图3-1所示,其中表现层使用Struts,业务层和持久层分别使用Spring和 Hibernate,这具有以下优点:三种框架均为免费开源,因此节约了开发费用,并有丰富的文档和范例可供参考;该架构符合MVC设计模式,有效地分离了持久层、业务层和表示层之间的逻辑功能,达到了充分解藕的目的;Spring对于Web应用开发的支持,并非只限于框架中的MVC部分,它也为Hibernate提供了良好的支持,两者结合构成了有
56、效的数据持久层;减少了视图、模型和控制器之间的关联性,在彼此不影响的前提下可以对任何一层进行修改,这样可以有效减少软件熵。传统的邮件系统为Client/Server(C/S)结构,分为邮件服务器和客户端。用户通过客户端(foxmail 、outlook)软件收发邮件。本文构架的邮件系统为Browser/Server结构,允许用户使用浏览器作为客户端,接收和发送邮件通过浏览网页就能实现。表现层利用Struts构建了一组Web页面给用户用以收发邮件。在业务层中的web服务器和邮件服务器,我们选择了开源的Tomcat18服务器和James30,并在spring框架下采用JavaBeans这种可重用的
57、组件技术开发控制模块以及表现层和业务层之间的接口。持久层使用Hibernate直接和数据库进行交互,为业务层提供对数据进行操作的接口。数据库使用的是目前广泛应用在Internet上的中小网站中的Mysql。我们选择其主要出于降低成本的考虑。Hibernate根据数据库表的定义导出表的结构,并生成对应的映射文件和Java代码,大幅减少了SQL和JDBC的手工编码。3.3Web server构架设计Web电子邮件系统实现了用户登录、收取邮件、发送邮件、编辑邮件、编辑用户信息、POP3收件等功能。考虑到系统的跨平台及扩展性以及开发周期与开发成本,采用Spring所支持的轻量级J2EE框架及相关技术2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商职业技术学院《安全监察和管理》2025-2026学年第一学期期末试卷(A卷)
- 上海工商职业技术学院《Android 高级应用开发》2025-2026学年第一学期期末试卷(A卷)
- 第5课 筑长城说课稿2025年小学信息技术(信息科技)第四册下粤教版
- 耳鸣耳聋病人护理指南
- 第4课 机器人走正方形说课稿2025学年初中信息技术川教版九年级下册-川教版2018
- 上海音乐学院《阿拉伯国家历史与文化常识》2025-2026学年第一学期期末试卷(B卷)
- 初中2025年故事评价说课稿
- Numbers说课稿2025学年中职基础课-基础模块 1-外研版(2021)-(英语)-52
- 上海震旦职业学院《安检设备原理与维修》2025-2026学年第一学期期末试卷(A卷)
- 上海震旦职业学院《安全工程专业制图与 CAD》2025-2026学年第一学期期末试卷(B卷)
- 高考议论文写作指导课件
- 金蝉使用说明书
- GB/T 2423.16-2022环境试验第2部分:试验方法试验J和导则:长霉
- GB/T 629-1997化学试剂氢氧化钠
- GB/T 27679-2011铜、铅、锌和镍精矿检查取样精密度的实验方法
- 《统计法实施条例》解读
- 汽车电气设备与维修课程标准
- 浣花溪公园植物调查报告课件
- 幼师口语朗读训练课件
- 小学硬笔书法课教案(1-30节)
- 手机摄影入门课件
评论
0/150
提交评论