资源描述
工程硕士专业学位论文(设计)
题 目 中小企业web邮件系统的设计与实现
作 者 完成日期
培养单位 四 川 大 学
指导教师
指导教师
工程领域 软 件 工 程
授予学位日期 2011年10月 日
中小企业web邮件系统的设计与实现
软件工程 领域
研究生 关 冀 指导老师
随着网络技术的快速发展,电子邮件已经被广泛应用在人们的日常生活中。据统计,全球总的网页访问量中,其中与电子邮件相关的就有66%以上。电子邮件系统在应用的初期只能通过Outlook,Foxmail等客户端软件来收发自己的邮件,但随着经济的发展与用户需求的不断提高,单纯使用邮件客户端程序进行邮件的收发已经不能满足用户移动办公的需要。Web邮件技术因其快捷、方便的优点吸引了众多的网络用户。该技术的出现,较好解决了用户办公的需要。运用该技术,用户无须安装任何E-mail客户端软件,只需要使用浏览器打开存放在服务器上的特定网页就可以进行E-mail收发及相关操作。对于应用开发来说,选择一条适合开发的技术路线,才能够开发出灵活的、低耦合的、可扩展的、易于维护的系统。
正是基于目前Web邮件系统的优势和切实需求,开发新一代的高性价比Web邮件系统对于某些行业有重要的意义。本文正是在这样的背景下,对Web邮件系统实施中的关键要素进行讨论,在系统的架构方面基于MVC模式,实现了由表现层、业务层到持久层的三层架构,采用的技术是Spring+Struts+Hibernate,在此基础上设计和实现一个基本的邮件系统。系统基于J2EE平台,MVC开源框架,使用JavaBean,Sevlet等标准技术实现了MVC模式。
论文首先阐述了电子邮件基本原理、相关协议,分析了MVC模式及J2EE架构。进而根据中小企业的需求分析介绍了中小企业web邮件系统的总体架构及Web server构架,对构成该邮件系统的结构进行了分别介绍。本邮件系统设计了用户注册、身份认证、邮件发送、邮件接收、通讯录管理、邮件夹管理、邮件过滤等应用功能。系统的功能实现采用了socket编程,多线程、线程池技术,oscache缓存技术等组件技术,运用Mysql数据库服务器管理用户信息、邮件信息以及系统配置参数等数据。本文对系统安全性、邮件收发及垃圾邮件过滤进行测试,自建的邮件服务器测试表明,该邮件系统的功能满足了设计的要求,性能方面达到了中小型企业邮件服务器的需求。
本文的最后,说明了本课题的当前状况,并且指出了该系统的特点以及不足之处,对该系统的后续需要解决的问题作了说明。
关键词:电子邮件 邮件过滤 电子邮件协议 MVC架构模式
English title
Software Engineering
Graduate Student: Adviser:
With the development of Internet and networking office, email 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 need 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 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 aspects of designing a WebMail system. Based on the MVC model, we design a three layer architecture which includes presentation layer, 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 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 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 management、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 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 middle 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
四川大学工程硕士学位论文 中小企业web邮件系统的设计与实现
目 录
1 绪论 8
1.1课题背景 8
1.2电子邮件系统的研究现状 8
1.3电子邮件系统发展趋势 10
1.4Web邮件系统的研究内容及意义 11
2 Web电子邮件的相关技术 13
2.1基本原理 13
2.2相关协议 15
2.3Web应用J2EE架构 18
2.4小结 19
3 Web邮件系统的设计 21
3.1中小企业对邮箱的需求分析 21
3.2系统总体架构 22
3.3Web server构架设计 23
3.4Web应用功能设计 24
3.5小结 25
4 电子邮件系统的实现 27
4.1系统实现技术背景 27
4.1.1开发环境 27
4.1.2相关组件技术 27
4.1.3收发邮件的基础API 29
4.2系统架构实现机制 29
4.3Web邮件系统功能实现 34
4.3.1. 用户注册和身份认证的实现 34
4.3.2邮件发送的实现 37
4.3.3. 邮件接收的实现 40
4.3.4. 通讯录管理的实现 42
4.3.5. 邮件夹管理的实现 42
4.3.6. 垃圾邮件过滤的实现 44
4.3.7. Web页面的JSP实现 45
4.4小结 47
5 测试与分析 48
5.1系统部署 48
5.1.1. 部署环境 48
5.1.2. 运行及监控 48
5.2功能实现测试 49
5.2.1.测试的方式 49
5.2.2.测试配置 50
5.2.3.用户安全性测试 50
5.2.4.Web邮件发送测试 51
5.2.5.Web邮件接收测试 52
5.2.6.Web邮件夹管理测试 52
5.2.7.Web通讯录管理测试 53
5.2.8垃圾邮件过滤测试 54
5.3系统性能的分析 55
5.3.1.用户并发行性能 55
5.3.2.服务器资源分配问题 55
5.4小结 56
6 总结与展望 57
6.1系统特色 57
6.2问题与展望 58
致谢 59
参考文献 60
四川大学工程硕士学位论文 中小企业web邮件系统的设计与实现
1 绪论
1.1课题背景
随着互联网技术及网络办公化的发展[1],电子邮件已经成为人们主要的通信方式之一。据统计,当前全世界网页访问量中,与电子邮件相关的占60%以上。电子邮件是人与人之间最快捷、省钱的联系方式。同时,电子邮件以嵌入方式传送的特点还可以传送多种类型的信息,包括文件、声音、图片、视频等。另外,PGP加密、数字签名与认证等技术的应用能够保证电子邮件传递的可靠性和安全性。正是这些良好的特性,使电子邮件系统受到越来越多用户的青睐,如新产品发布系统、客户订货系统、电子杂志订阅系统等等。在商务领域,电子邮件已经成为交易双方间最为常用的通信联络方式。
随着技术的不断发展,电子邮件系统的技术体系也逐渐完善。从刚开始的只能通过Outlook,Foxmail等客户端软件来收发自己的邮件到Web邮件技术的出现,较好地解决了用户移动办公的需要,用户不用安装任何客户端软件,就可在特定网页上进行邮件收发及相关操作,其方便、快捷的操作得到了大多数用户的青睐。正是基于目前Web邮件系统的优势和切实需求,开发新一代的Web邮件系统,对于某些行业有重要的意义,例如外贸行业,外贸公司联系客户的核心手段即电子邮件,基于Web应用的邮件系统解决了外贸公司对电子邮件管理的迫切需求。本文正是在这样的背景下, 分析和讨论了Web邮件系统实施中的关键要素,并且设计和实现一个基本的邮件系统。
1.2电子邮件系统的研究现状
据CNNIC的一份调查报告显示,到2000年,全球电子邮箱注册数已达5.14亿,全世界平均每日发送邮件已高达100亿封。我国网民的电子邮件账号总数已超过了7000万个,电子邮件已经当之无愧地成为Internet的第一应用。随着电子邮件技术发展为多网合一的沟通工具,企业自建邮件系统已成为商业沟通和客户关系管理的利器,电子邮件技术的应用已成为企业进入信息化管理的关键一步。本节将详细介绍几种有代表性的电子邮件系统。
由于Email是互联网上最常用的联系工具,国内外各大厂商和顶尖技术高手纷纷推出了自己的邮件系统平台。
1、Ms Exchange和IBM的Lotus Notes为代表的工作流软件
在Windows平台上,Lotus Notes和Exchange是两个最常用的邮件系统软件,它们已经发展成熟,拥有大量的用户基础。这种邮件系统通常是由内部人员自行开发的,它们的优点在于功能丰富、扩展能力强,缺点是价格昂贵,管理和维护的复杂度也相应较高。高昂的成本严重影响了企业的收益。除此之外,该类电子邮件系统在满足电子邮件应用的具体需求上,还存在着种种缺憾。
Exchange Server作为服务器,该系统只能运行在Windows NT上,Windows NT本身的不可靠、不稳定决定了Exchange Server的不稳定、不可靠。Exchange Server的不稳定在于它的内存泄漏问题,并会随着系统运行时间的增加会越来越慢,平均每周都要重启动一次。Exchange Server不能支持太多的邮件账户,一般超过200个用户时系统运行效率就会明显变慢,要解决这个问题只有依靠更先进的硬件,而这些硬件往往会很贵。Exchange Server没有较强的安全性和功能,很容易被外界攻破导致邮件被任意乱发或发一些垃圾邮件。Exchange Server的不稳定还在于经常出现系统故障,使得无法正常收、发邮件,需不断地重启服务器和刷新邮件系统[6-7]。
Lotus Notes基本上还是一套OA和工作流系统,根据客户的反映情况,出现的问题与Exchange Server类似。
2、Sendmail和Qmail[6]为代表的免费软件和共享软件
许多 Linux 操作系统免费提供 Sendmail 或 Qmail, 满足用户的基本邮件收发需求。不管是从代码的复杂程度,还是从使用的广泛程度来判断,Sendmail都是一款极为优秀的软件。尽管Sendmail有许多优点,但也存在着以下不足:第一不足是它的安全性较差。究其原因是软件作者Eric Allman最初开始写作这个软件的时候,全球Internet的用户还很少,网络是非常友好的地方,每个在网上交流的人都能够很容易地了解对方,几乎没有必要为了安全而设计软件,编写代码。自然,安全性问题并没有引起大家足够的重视,人们并未意识到安全会出现问题,出现问题就会对整个系统安全造成严重影响。Sendmail在大多数系统中都是以root身份运行,邮件系统需要处理的是外部发送来的各种各样的信息,信息中所包含的一些恶意数据会对系统产生威胁,而这些威胁仅仅依赖程序本身是无法解除的。因此要保障系统的安全,必须针对系统的结构,限制程序所拥有的特殊权限。Sendmail开发当时,Internet用户数量及邮件数量都相当小,通常情况下Sendmail只启动一个进程顺序向外发送邮件,如果邮件较多时就要花费相当长的时间,这时候 Sendmail的系统结构就很难承受,解决这一问题的唯一办法就是对Sendmail进行调整,而这一过程相当复杂。第二不足是Sendmail的设置,它也非常困难。而一般情况下,我们在收发电子邮件时使用缺省设置,这一问题就迎刃而解。但是当管理员需要进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力处理邮件时,Sendmail的设置问题就凸现了。系统管理员不得不面对复杂的宏和正则表达式,尽管现在Sendmail使用了宏预处理程序使设置变得容易了一些,但是要掌握Sendmail的设置对广大系统管理员来说仍是一个难题。
使用Qmail替代Sendmail。Sendmail 的历史上出现过很多严重的安全问题,Sendmail的作者, 和目前的维护者Claus Assman 为了加强Sendmail的安全也做了很多工作,但还是不能让Sendmail达到绝对的安全。为了彻底解决Sendmail的安全缺陷,必须重新设计整个系统结构,Qmail就是面向安全而设计的。Qmail是运行在UNIX兼容系统下的一个因特网邮件传送代理,是一个直接代替UNIX下 Sendmail软件的邮件传送程序,其设计的基本原则就是将系统划分为许多不同的模块,每个模块都承担其相应的功能。Qmail由多个不同功能的、相对简单的小程序组成。在诸多小程序中,只有必要的程序才是setuid程序(即以root用户权限执行),最少限度地应用root编码能减少安全隐患,达到较高的安全性[13]。安全性的提高对于当前险象丛生的因特网是有很大意义的。Qmail是按照Unix思路的模块化设计方法设计的,该设计方法使得Qmail具备较高的性能。它不但可以启动某个模块的多个实例来共同完成同一个任务还提供了一些特殊功能,例如Maildir格式的邮件存储方式,这使得邮件可以通过网络文件系统NFS进行存取。
除了前文所述,Qmail还具备一些非常别致的特色,如它既提供了与Sendmail兼容的方式来处理转发、别名等能力,也可以用以Sendmail完全不同的方式来提供这些功能。以此可见其作者Dan Bernstein是一个极具个性化的程序员。Qmail并没有拥有所有人要求的任意功能,对于其安装编译方式,提供的扩展功能和源代码的风格等方面,也存在着一些争议。例如,对于安装设置容易与否就形成了两种截然不同的观点,有些人认为Qmail的安装设置不容易,很容易让人胡涂,而另一些人的看法则相反。就其争论原因基本上是因为Qmail提供解决问题的方式和Sendmail不大相同,对那些不太熟悉Sendmail的邮件系统管理员来说,更容易接受Qmail一些。不管怎样,使用Qmail逐步替代Sendmail却是事实。
1.3电子邮件系统发展趋势
目前基于Internet、Intranet电子邮件系统的发展趋势如下:
(1)Web邮件技术的应用
经济的发展,生产方式的改变和商业交易模式的转变将会带动中国Internet应用的进一步普及与深入,电子邮件的使用将呈不断增长的态势。越来越多的企业和个人的经济行为不受时空限制,移动办公已成为一种趋势。过去只能使用邮件客户端程序进行邮件的收发根本不能满足用户的需求。Web邮件技术的出现恰好解决了这一问题,有效应用该技术,将使得邮件用户无须配置邮件客户端程序,就能随时随地使用浏览器登录邮件服务器完成收发邮件。
(2)提供多域邮件服务
所谓多域邮件服务,也就是一台物理服务器能为若干个独立注册Internet域名的企业或组织提供电子邮件的服务。ISP提供商和企业集团在选择邮件服务器时,通常会看重多域邮件服务器较为强大的支持能力。要实现多域邮件服务功能,企业和组织应拥有自己独立的邮件服务器,所以也可以称为虚拟邮件服务器技术。
(3)Linux邮件服务器的使用
可靠性高、性能稳定、且价格低廉是Linux操作系统的特点,良好的性能使得Linux操作系统成为目前最为广泛应用的开源操作系统。使用Linux邮件服务器,可以与Sendmail、MySQL等开源软件共同使用,既满足了用户的功能需求,又有效降低了系统价格,体现出了较明显的优势。
(4)提升安全防护
安全是用户对电子邮件的基本要求,安全技术的发展与应用是极为重要的。传输加密技术、数据身份认证技术、安全审计、邮件病毒过滤技术等多项安全技术的广泛应用使得现在的邮件服务器在安全防护技术上明显加强。
(5)多语言环境
在实际使用中,邮件系统的语言环境是复杂的。对于各种各样的语言我们不可能制定适用所有的邮件客户端的统一标准。为了实现邮件用户之间的“交流畅通无阻”,就只有让邮件服务器支持多语言的环境。目前,仅中文就有若干字符集,如GB-18030、GB-2312、Big5等等。
(6)可实施远程监控和性能调整
目前,邮件服务器都可以对邮件进行远程监控,以此来解决使用过程中许多邮件服务器的操作受到限制的问题。因为产业结构和技术等原因,许多邮件服务器处于电信托管等方式,本地操作在一定程度上被限制。人们需要通过Web方式,适时监控邮件服务器的工作状态,并随时对出现的发信高峰和网络攻击等现象进行远程调整和处理。
1.4Web邮件系统的研究内容及意义
从以上阐述的企业电子邮箱应用方式中可以看到目前市场上适合中小型企业应用的性价比高、功能完善、管理维护简单的Web邮件系统还很少。特别针对嵌入式应用,更需要跨平台的Web邮件系统。广大中小企业正面临产业结构的转型,无论是生产组织方式还是商品交易模式都需要借助于信息化来实现。信息化建设与管理已成为中小企业管理的主要组成部分,在这其中,邮件系统的开发和运用首当其冲。高性价比、维护成本低、实施简单容易、可靠性高的邮件系统解决方案是受中小企业欢迎的。开发设计并应用符合中小企业需求的邮件系统将能帮助中小企业提高生产能力,提高企业营运效率和效益,进而提升综合竞争实力。
本文的工程研究正是要尝试采用先进的技术标准满足企业级电子邮件系统的业务需求和成本约束要求,并尽可能使系统更安全,系统实施和维护成本更低。
为了实现这样的一个具有较高应用价值的任务,不仅需分析其在理论上是否可行,更需要考虑系统的可实施性和成本约束。这样我们就必须了解如下事实:
(1)作为电子邮件系统的核心部件邮件收发服务器性能及稳定性
可以从硬件配置和软件性能两个大的方面来比较邮件服务器。在硬件配置上,主要考虑的是硬件的可管理性、可扩展性和物理配置等方面;而在软件性能比较上,邮件服务器主要考虑所支持的邮件服务协议、是否支持多域名、是否支持SSL安全协议和邮件过滤等诸多方面。如果从邮件发送指标上来考虑的话,还有诸如最大并发邮件数、平均往返延迟和邮件发送成功率等几个重要指标。
(2)作为企业级电子邮件系统的可实施性和成本控制
企业级电子邮件系统不仅要能用、好用,而且要充分考虑系统的开发成本、维护成本和相关硬件投入成本。
基于上述两个事实,本文提出这样的设想:设计一种低成本、可实施、跨平台、高兼容性的企业级电子邮件系统,该系统能部署在Internet、Intranet上,满足企业级电子邮件传递和管理需求。成本和可靠性是其中的关键问题,对于成本问题可以通过引用成熟的Java[16]开源项目作为电子邮件服务器的核心主件,这样可以解决大部分服务器开发的成本,并且可以保证系统的稳定性和成熟度,更重要的是可以对服务器进行改造和扩充;对于系统的高可用性和通用性来说,可以重点设计和开发一套基于Web应用的用户邮件管理系统,既能实现跨平台使用,又能降低维护成本,也能够解决通用性问题,降低培训成本。
从下一章起,本文将首先细化上述问题提出更具体的需求,然后对其进行详细分析,逐步给出解决方案和实现方法,最后对所实现的电子邮件系统进行性能和功能测试,并给出分析和评价。
61
2 Web电子邮件的相关技术
2.1基本原理
本文针对现在企业对Web邮件系统的需求现状,提出一个基于Java Mail开源技术的Web电子邮件系统,实现分布式处理、多线程收发邮件、处理不断增长的历史数据的存储,解决目前电子邮件管理需求。
1、 邮件系统的工作原理
电子邮件其实就是电子版的信件,是现在最主要的通信方式之一,使信息交换和数据传输更加快速简捷。它的工作原理是通过网络,实现各类信号的传送、接收、存贮等处理,能把邮件以最短的时间发送到任何指定的地方。除了普通的信件,电子邮件还可以传递视频、文件、图像等多种类型的信息。因此,它是网络资源使用最多、全球最受欢迎的一种服务。
电子邮件是一种被称为“先存储后转发式” 的服务。 这种服务不必时时在线,也就是说无论信件接收者当时在不在场,发送者都可顺利把邮件快速的发送到接受者的邮箱中,并且存储在对方的电子邮箱中。接收者可随时随地查阅所收到的信件,不受任何限制。所以,所谓“发送”邮件实则意味着将邮件放到了收件人的信箱中,而收件人“接收”邮件就意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的—个实体。
电子邮件系统把是计算机技术和通信技术结合而产生的一种新型信息系统 [25,26]。TCP/IP定义了一组协议,以此来保证电子邮件系统的正常运行。其中最主要的几个协议是POP3(邮局协议)[3-5] 、SMTP(简单邮件传输协议)[2]和IMAP(Internet消息访问协议)[8]。它们的关系如图2-1所示。
电子邮件从发送到被接收的传递历经如下过程:电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP主机的一个电子信箱,由ISP主机负责电子邮件的接收。一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。
MDA
Mailbox
MDA
Mailbox
MUA
MTA
MTA
MUA
图2-1 Internet邮件传递示意图
SMTP和POP3/IMAP一样是在邮件服务器上运行的服务器软件。SMTP是工作在两种情况下:第一种情况是从客户机传输电子邮件到服务器,第二种情况是从服务器到服务器。SMTP服务器的主要功能有MDA和MTA,通过该功能完成待发送邮件的接收,同时完成将邮件发至指定邮件服务器的SMTP服务器,再由该SMTP服务器写入到用户邮箱。SMTP在传送邮件的时候能够通过不同网络上的主机以接力式传送是它的一个显著特点。所以,无论是从用户机(如普通PC)上来的邮件还是从其它SMTP服务器上来的邮件都能通过SMTP传送。对于没有SMTP服务器的普通客户主机用户也可以实现邮件的接收,只需通过IMAP协议或者POP3协议从邮件服务器上获取。
一般情况下,我们把电子邮件程序分解成投递代理、传输代理和用户代理。用户代理将用户的信件传送至传输代理(如 Outlook Express、FoxMail 等)。邮件传输代理负责将邮件送到目标主机(如sendmail)。而投递代理则将在传输代理处的信件传送至最终用户的邮箱(如 procmail)。
从上面的收发过程中可以看出邮件服务器是电子邮件系统中最重要的部分。它是实现邮件发送、接收、储存、转发的必要条件。如果是通过Web方式访问邮件服务器,则还需要在服务器端部署Web服务功能为用户提供邮件系统的访问界面,用户在远程计算机通过浏览器即可访问邮件系统并通过Web服务所提供的界面实现其他管理功能。
2、Java Mail的整体结构
Java Mail API是用于存取邮件服务器的API,程序员可使用这种API创建邮件用户代理(Mail User Agent,MUA) 类型的程序,从而实现类似于Microsoft Outlook这样邮件程序。用户可以与基于Java Mail的MUA进行交互,来阅读和编写电子邮件,MUA根据邮件传输代理(Mail Transfer 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还包括一套可扩展的provider机制,通过它,你可以扩展出各种邮件协议,例如:SMTP、SMTPs、POP3、POP3s、IMAP、NNTP等。不过,对使用API的人来说,这些provider是透明的。
2.2相关协议
邮件系统主要有三个关键的协议:SMTP协议,POP3协议和IMAP4 协议[24]。
1.SMTP协议
SMTP(Simple Mail Transfer Protocol)协议的目标是向用户提供安全、高速的邮件传输。SMTP协议具有中转特性,接收者与发送者的SMTP之间建立一个双向传送通道,发送方SMTP发出SMTP命令,接收方SMTP接收SMTP命令,而应答SMTP命令就作反方向传送。这就是设计SNTP所依据通信模式。
当传送通道被建立后, SMTP发送者以MAIL指令告示邮件发送者,SMTP接收者如果能够接收邮件就返回OK应答。接着,SMTP发送者再发出RCPT命令对邮件接收者是否可以到达进行确定。相同道理,返回OK表示可以接收,否则表示不能接收,此过程将会在发送方与接收方之间重复若干次,一直到所有邮件被接收完后有一组特别的序列。同理,返回OK表示已经成功处理了邮件。其使用模型如下图所示。
图2-2 SMTP使用模型
因为SMTP具有 “中转”(Relay)的重要特点,只要能与该服务器建立传输层连接,通常用户可以任选一台SMTP服务器来实现邮件的发送处理。如果该服务器M能与目服务器N直接相连接,那么邮件就可以被直接送至N中;如果M、N不能连接,那么M将会向其它的服务器询问路由。如果有另一台服务器L能够与N建立直接连接,或者是目标的路由能够明确,那么邮件就会由M被转至L,再由L转发向至B。无论是服务器间的中转还是从客户机到服务器的直接发送,都是通过使用SMTP同一套指令来进行的,使整个过程更加简单明析。
2.POP3协议
POP3(Post Office Protocol 3)是规定将个人计算机如何连接到Internet的邮件服务器和如何下载电子邮件的电子协议。它能够让用户直接把邮件从服务器上存储到自己的计算机,还可以存储在将服务器里的邮件删除。
POP3是基于以下流程开展各项工作的:初始时,通过侦听TCP端口110开始提供POP3服务;客户主机如果需要享用该种服务,就会与主机建立TCP连接;然后, POP3服务器会和客户交换命令和响应,直至连接终止。
在生命周期中,POP3会话有“确认”、 “操作”、 “更新” “退出”几种不同的状态。进入“确认”状态需要两个条件,一个是POP3服务器发送了确认信息另一个是TCP连接已经打开。这时候必须先确认用户的身份。身份认证后就可以获取相关的资源,这时便到了生命周期的“操作”状态。当客户发出QUIT命令时,就从“操作”状态转入“更新”状态。此时,在前一状态中所获得的资源将被全部释放,同时发送消息,断开连接直至退出。
图2-3 POP3的状态模型
USER Username 对应find_user(username)查询用户是否已注册。
PASS password 对应verify_pwd(username,passwork)验证用户密码是否正确。
STAT对应count_mlist(username)查询该用户邮件数。
3.IMAP4 协议
IMAP4(Internet Message Access Protocol version 4 rev 1)即交互式数据消息访问协议第四个版本。IMAP4设计支持多种访问方式如联机、脱机和断开。随着发展趋势的变化,它的特性必将超过POP3。很多厂商都打算采用IMAP4。IMAP4还拥有很多POP3所没有的功能:如支持多级档夹、远程档夹操作,支持共享档夹,新到邮件通知等优越性能。基于现在的分布式计算环境,IMAP4的优势很明显,适用范围更广。
IMAP定义了3种状态:未确认状态(Non-Authenticated State)、已确认状态(Authenticated State)和已选定状态(Selected State)。对于大多数的IMAP4命令一般都只有在具体某种状态下才会生效。假如IMAP4客户端发送命令时没有在相应的状态下,那么将返回错误的信息。状态不同则客户机向服务器发送的命令也就不同,状态可以在某些命令下相互转换。
初始化连接和服务器问候
非预确认连接
拒绝连接
预确认连接
未确认
Login或Authenticate
命令成功,
Logout
或服务
器关闭
或连接
关闭
已确认
Select
或Examine
命令成功
Logout或服务器关闭或连接关闭
Select
或Examine命令失败,或Close命令
已选定
Logout或服务器关闭或连接关闭
注销并关闭连接
图2-4 IMAP状态机
IMAP与POP3的不同之处还在于,POP3客户机一次只能发送一个命令,也就是在第一个命令发出去以后没有得到服务器响应之前第二个命令不能发出。IMAP则一次可发送多个命令请求而不需要等待服务器的响应。IMAP还规定客户机发送命令的时候必须带上一个能够唯一标识此命令的标签或参数。相应的每一个响应也是如此,都在返回时包含了一个卷标,使响应与命
展开阅读全文