电子邮件系统的设计与开发
- 格式:doc
- 大小:1.77 MB
- 文档页数:26
安全电子邮件系统的设计与实现Secure E-mail System Design and Implementation摘要:电子邮件的安全问题是目前实际网络应用中被广泛关注的热点问题之一。
文章分析了当前电子邮件在安全方面的隐患,设计了一种实现内联网端到端的安全电子邮件系统,并详细介绍了安全电子邮件系统中签名加密、轻量目录访问协议(LDAP)证书库、目录等部分的设计思路。
文章还给出了把安全电子邮件系统扩展应用在大企业Intranet中的方案。
关键词:电子邮件;安全;安全/多用途互联网邮件扩充;公钥基础设施;轻量目录访问协议Abstract:Email security is currently one of the hot-spot issues in network applications, drawing broad attention. Based on the analysis of the shortcomings of current email systems, this paper presents an end-to-end secure email system on Intranet, putting emphasis on the design of digital signature encryption, Lightweight Directory Access Protocol (LDAP) certificate server and system directory. At last, it gives solutions of implementing such a system on an enterprise Intranet.Key words:E-mail; security; S/MIME; PKI; LDAP电子邮件利用计算机的存储、转发原理,克服时间、地理上的差距,通过计算机终端和通信网络进行文字、声音、图像等信息的传递。
Web编程的电子邮件系统及邮件服务设计毕业论文绪论1.1课题背景电子邮件是介于书信、电话和传真之间的电子信息传送方式,它也是互联网上最基本的功能之一。
随着互联网的进一步发展,电子邮件已经成为人们联系沟通的重要手段。
技术的革新使得电子邮件系统已经演变成一个相当复杂且功能更为丰富的系统,可以传送声音、图片、图像、文档等多媒体信息,以至于数据库或帐目报告等更加专业化的文件都可以以电子邮件的形式在网上分发。
随着信息技术的发展以及电子邮件系统功能的日益强大,其应用领域已得到较大的拓展。
基于Web的Web mail系统应用是这些年发展起来的,网络的普及使得它得以广泛的应用。
采用开放的Web邮件服务不仅为用户省去了维护与升级客户端软件的麻烦,而且也能够充分发挥系统软硬件资源的作用。
Web邮件服务的另一个优势是允许用户,甚至是持有移动设备的用户,可以随时、随地的访问系统并进行信息传递。
1.2论文的研究内容在现有的基于WINDOWS平台的Send mail邮件服务器上来架构和实现Web mail是本文主要研究的问题。
结合目前主流的B/S网络应用模式以及教研室邮件服务器的扩展需求,本文主要研究了基于C/S模式邮件服务器的开放式Web邮件服务器集成方案及相关技术。
随着新技术的不断涌现,电子邮件产品越来越多,而且也越来越丰富。
在邮件服务器端有Microsoft Exchange 服务器、Qmail服务器、FTPMail服务器等等。
这些服务器都有相应的操作系统支持,而且有的又有很好的跨平台性,像Send mail服务器它在Linux、Unix、FreeBSD都可用。
在邮件系统客户端,其中Microsoft Outlook、Netscape Mail、Fox mail是当今电子邮件客户端软件的主流产品;另外,随着网络的普及,基于Web的应用模式的发展与应用,诸如sina、263以及众多的企业都已推出了自己的Web邮件系统。
系统设计方案1.1需求分析1.1.1系统参数考虑到系统近一年的可扩展性,系统设计用户数为:总部总部为10000个用户、分支一和分支二各为1000个用户。
根据上表并考虑一定的活跃用户数比例,确定本次建设的<客户名称><项目名称>支持用户数量为1.3万。
另外,假设用户按如下场景使用系统:1.1.2网络流量分析1.1.2.1集中式的方案由于分支机构的用户均须通过骨干网对总部的服务器进行访问,因此对网络带宽的要求较高。
这里的特征假设是针对集中式方案下远程用户的假设,而因为本地网络都是百兆或千兆网,无需作带宽的计算。
远程的用户为节省带宽,将推荐用户在Outlook中配置RPC over Https。
即Outlook客户端采用HTTPS协议去访问服务器,这样可以给广域网环境下的用户节省带宽,又能克服不稳定的网络连接给用户性能的影响。
假设各站点的用户数为1000人,同时在线用户为60%。
每用户平均每日发送10份,接收40封,平均大小为30KB。
则预计所需的带宽为:POP3<IMAP4>/SMTP客户端:1000 * 60% * 30% * <10+40> * 50KB = 450 MB;按一小时的峰值流量估算 450MB/60/60 = 125 KBpsMAPI客户端:1000*60%*60%*5 KBps = 1800 KBpsHTTP客户端:1000*60%*10%*<10+40>*50KB = 90MB;按一小时的峰值流量估算 54MB/60/60 = 25KBps总计所需的流量约为:75 KBps + 1800 KBps + 15KBps = 1890 KBps = 1.8 Mbps计算结果是:1.1.2.2分布式方案分布式方案中,由于客户端直接访问本地服务器,故总部与分部间所需的网络带宽仅为服务器间收发的流量:●每天发到外部数 = 分部用户数*〔每用户平均每日发送数*来自和发送到分部外的比例 = 1000 * 10 * 30% = 3000封●每天发送到外部的字节数〔M = 每天发送到外部数*平均每封大小/1000 =3000 * 50 /1000 = 150 M●高峰时出省带宽<Mbps> =每天发送到外部的字节数〔M/3600 = 150M /3600 = 0.04M●每天收到外部数 =高峰时出省带宽<Mbps> * 4 = 0.16计算结果:1.2总体设计针对以上对<客户名称>现状和需求的分析,我们建议采用占全球企业62%市场份额的系统——微软Exchange Server 2007,采用集中部署的方式实施<客户名称>的电子系统。
电子邮件系统的设计与开发电子邮件系统的设计与开发现代社会,电子邮件已经成为了人们重要的沟通方式之一,因为电子邮件可以快速、可靠地传递信息。
设计和开发一个高效可靠的电子邮件系统对于我们现代社会来说,是非常必要且具有重要意义的。
本文将从以下几个方面着手,探讨电子邮件系统的设计与开发。
电子邮件系统的架构电子邮件系统的架构是电子邮件系统设计的重要基础。
一般来说,电子邮件系统可以分为两个部分:邮件服务器和邮件客户端。
其中,邮件服务器用于存储和转发邮件,负责维护邮件系统的安全性和稳定性。
而邮件客户端则是用户接收和发送邮件的工具,通过邮件客户端,用户可以查看收到的电子邮件、编写并发送邮件。
电子邮件系统的协议电子邮件系统的协议是邮件系统设计的另一个重要基础。
在现代电子邮件系统中,SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是两个最重要的协议。
SMTP是邮件发送协议,由发件人的邮件客户端发送邮件到邮件服务器;而POP3是邮件接收协议,由收件人的邮件客户端收取从服务器传来的邮件。
同时,邮件系统还会使用其他协议,如IMAP(Internet Mail Access Protocol)、SMTPS(SMTP with TLS/SSL)等。
电子邮件系统的安全性安全性是现代电子邮件系统设计的重要因素。
为了保证电子邮件的机密性和完整性,我们必须采取以下安全措施:数据加密数据加密是保护电子邮件机密性的一种重要措施。
对于用户的邮件内容,我们可以使用对称加密算法或非对称加密算法进行加密,使其只有发件人和收件人能够解密内容。
电子签名电子签名是确保邮件完整性和身份认证的一种重要技术。
发件人可以通过数字证书验证自己的身份,并在邮件内容中加入数字签名,收件人可以通过验证数字签名来确认邮件的完整性和信任发件人身份。
反垃圾邮件垃圾邮件是电子邮件系统中最大的威胁之一。
本科毕业设计邮件收发系统的设计与实现摘要随着互联网应用的不断增加,人们通讯的速度和方式不断进步。
电子邮箱就是基于互联网的非即时通讯工具。
利用电子邮箱,人们可以方便地传输文档、视频、照片、音频等信息,现代企业也都将其作为重要的办公工具。
基于Web服务器的网页版邮箱,虽然非常简便,但局限性很大,会出现超时自动退出登录、在线读取缓慢、难以查找、安全性低等不足,传统的电子邮箱客户端仍然是日常生活和办公的首选。
伴随着电子邮箱用户的增加,垃圾邮件和病毒邮件日益盛行,给用户带来了潜在的危险和不便。
作为必备办公工具,电子邮箱的应用也仅局限于交流通讯和文件传输。
员工们必须得借助其他手段来辅助办公。
而且网络上出现的许多电子邮箱客户端软件,都添加了许多纷繁复杂的功能,看似华丽却很不实用。
针对传统邮箱客户端的不足和用户实际使用需求,本系统从邮件的接收与发送、邮件的管理和办公工具三个大方面进行了设计,基本实现了电子邮件的收发、删除、查找、备份以及记事本和通讯录等功能。
通过对企业常用邮件收发系统进行分析,决定采用C/S架构来研究和开发系统,与客户端进行连接的邮箱服务器采用网络上常用的免费邮箱服务器。
操作系统使用微软公司的Windows 7,后台数据库服务用Microsoft公司的SQL Server 2005,前台客户端软件采用当前流行的Microsoft公司的C#语言开发。
本系统的优势在于操作简单、功能合理、扩展能力良好。
实践证明思路是正确的,技术方案是可行的,将给企业员工办公和日常使用带来极大的方便。
关键字:邮件收发系统邮件传输协议邮件服务器SQL ServerThe Design and Implementation of E-mail Send and Receive SystemAbstractWith the continuous development of the Internet applications, the speed and manner of people daily registry is increasing, too. E-mail is the Internet-based instant messaging tools. By E-mail, people can easily transfer documents, video, photos, audio and other information. For the modern company, E-mail is an very important office tools. The web version E-mail based on web server is very simple but very restrictive, there will be automatic time-out exit to landing, and it is slow and difficult to find and read mail on line. So the traditional e-mail client is still the first choice for us. A long with the increase in e-mail users, there is lots of potential danger and useless mail to user. As the essential office tools, e-mail application is limited to exchange communications and file transfers. Employees must make use of other means to assist the office. And many e-mail client software add a complex, seemingly gorgeous which is very practical. This e-mail client achieves function modules such as function of sending and receiving mail management, calendar, notepad, rapid mail query and some other functional modules.I adopt C/S structure to study and develop system. I have used the following techniques: Windows 7, SQL Server 2005, C#.The advantages of this system consist in easy operations, well function, nice extend capabilities. The experiment proved the technical plans. It brings office users with a very easy and well functional e-mail client software.Key Words: E-mail Transfer System; Mail Transfer Protocol; Mail server; SQL Server目录1. 绪论 (1)1.1 课题研究的选题背景 (1)1.2 课题研究的目的和意义 (1)1.3 课题研究的国内外现状 (2)1.4 邮件系统要实现的目标 (3)2. 系统技术背景 (4)2.1 系统体系机构 (4)2.1.1 基于web服务器的网页版邮箱 (4)2.1.2 基于邮箱客户端软件的体系结构 (4)2.2 SMTP协议概述 (6)2.2.1 电子邮件格式 (6)2.2.2 与邮件服务器建立连接 (7)2.2.3 邮件的发送过程 (8)2.3 POP3协议 (9)2.3.1 授权状态 (9)2.3.2 操作状态 (10)2.3.3 更新状态 (11)3. 邮件系统的数据库设计 (12)3.1 数据库逻辑设计 (12)3.2数据库物理设计 (15)4. 系统概要设计 (18)4.1 系统结构设计 (18)4.1.1系统流程图 (18)4.1.2 系统模块划分 (18)4.1.3 各模块功能 (19)5. 系统详细设计 (20)5.1 配置数据库连接 (20)5.2 账号关联 (20)5.3 发送邮件功能 (21)5.4 接收邮件功能 (24)5.4.1 主界面收件箱显示 (24)5.4.2 查询邮件信息 (31)5.5 记事本功能 (32)5.6 通讯录功能 (37)5.6.1 添加联系人信息 (37)5.6.2 查询联系人信息 (38)6. 论文工作总结及展望 (39)6.1 论文工作总结 (39)6.2 展望 (39)参考文献 (40)致谢 (41)1. 绪论随着自动化办公的一步步实现,以电子邮件为载体的信息传输方式越来越被人们认可和应用。
高可用的电子邮箱系统设计与实现一、引言电子邮件系统在现代社会中起着越来越重要的作用,无论是个人还是企业都会使用邮件进行日常的沟通和交流。
因此,保证电子邮件系统的高可用性对于保障个人和企业的正常运作是非常必要的。
高可用性是指即使在设备故障、网络中断等突发情况下,电子邮件系统仍能够正常地工作。
本文将围绕这一主题,探讨如何设计和实现高可用的电子邮箱系统。
二、基础设计首先,我们需要考虑的是电子邮箱系统的基础设计,也即如何实现邮件的传输、存储和检索。
在设计邮件传输系统时,我们可以采用集群的方式,将邮件服务器分布在多台物理服务器上。
这种方式可以提高整个系统的承载能力,防止单一服务器崩溃导致系统瘫痪。
同时我们可以采用邮件协议中的IMAP和POP协议来进行邮件的收发。
对于存储和检索,我们可以选择使用关系型数据库或者NoSQL 数据库。
关系型数据库一般使用MySQL或Oracle等,而NoSQL 数据库可以使用MongoDB或Redis等。
这些数据库都支持分布式存储,可以将数据存储在多台设备上,保证数据的可靠性和可扩展性。
三、负载均衡为了提高系统的可用性,我们需要保证系统的负载均衡。
负载均衡是指将用户请求均匀地分配到多个服务器上,防止单一服务器过载而导致系统崩溃。
负载均衡可以通过硬件设备(如F5)或者软件设备(如Nginx、HAProxy等)来实现。
负载均衡的实现过程中,我们需要考虑多个因素。
首先是会话保持,即将用户请求分配至同一台服务器上,保证用户在同一会话中的数据不会被中断。
其次是健康检查,即对服务器进行定期检查,将不可用的服务器从负载均衡中剔除。
此外,还需要考虑服务器的加权和调度算法,提高系统的灵活性和可用性。
四、容错与自动故障转移容错是指系统能够在硬件或软件故障发生时仍能够继续工作,保证系统的稳定性。
实现容错的方式有很多种,其中包括双机热备、故障转移、冗余等。
在电子邮箱系统中,我们可以通过实现自动故障转移来保证系统的高可用性。
目录第1章引言 (2)第2章需求分析 (3)2.1产品可行性分析 (3)2.2产品功能需求分析 (5)2.2电子邮件系统收发邮件的过程 (5)第3章总体设计 (7)3.1本系统的总体架构模型: (7)3.2系统模块的划分 (8)第4章详细设计 (9)4.1接收邮件模块 (9)4.2发送和回复邮件模块 (9)4.3邮件处理模块 (10)4.4界面实现的流程图 (10)4.5邮件发送过程的流程图 (11)4.6邮件接收流程 (13)4.7用户鉴权和客户端配置信息流程 (15)4.8阅读邮件流程 (16)第5章系统功能测试 (18)5.1登陆界面及邮箱账户设置界面测试 (18)5.2主界面测试 (18)5.3发送界面与收件箱界面测试 (18)5.4阅读邮件界面测试 (20)第6章结论与展望 (21)6.1结论 (21)6.2展望 (21)致谢 (22)参考文献 (23)附录 (24)第1章引言电子邮件(简称 E-mai1)又称电子信箱、电子邮政,表示通过电子通讯系统进行信件的书写、发送和接收,它是继电话、电报和传真之后最快捷、最方便的通讯工具,是 20 世纪人类最伟大的发明。
早在互联网流行很久以前,电子邮件就已经存在。
它是在主机-多终端的主从式体系中通过一台计算机终端向另一台计算机终端传送文本信息的相对简单方法发展起来的,也就是人们常说的 C/S 架构。
如今,电子邮件已经将人与人越来越紧密地联系在一起,成为人们生活的一部分。
通过电子邮件系统,人们可以用非常低廉的价格,以非常快速的方式,与世界上任何一个网络用户联系。
而电子邮件的形式也从原来的纯文本方式变成现在的 HTML 页面并加载附件的多彩形式,同时,人们还可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索,这是任何传统的方式也无法相比的。
电子邮件的使用简易、投递迅速、收费低廉、易于保存、全球畅通无阻,使得它被广泛地应用。
电子邮件收发系统基于Client/Server模式,主要功能通过收发电子邮件客户端程序实现。
电子邮件收发系统的设计与实现
电子邮件收发系统是一种常见的信息交流方式,其实现需要考虑到以下方面。
1.系统功能需求设计
首先需要明确系统所具备的功能需求,如邮件的发送、接收、查看、删除、回复、转发等。
此外还需要考虑到附件上传、下载、过滤垃圾邮件、发件人身份验证、邮件加密等功能的实现。
2.系统架构设计
整个邮件收发系统需要分为客户端部分和服务器端部分。
客户端部分分为网页、桌面客户端和移动端客户端三种,用户通过这些客户端进行邮件的收发。
而服务器端则需要有邮件服务器、认证服务器、DNS服务器、邮件过滤服务器等多个组成部分,这些组成部分需要实现具体的功能。
3.数据库设计
在系统中需要使用到数据库,因此需要设计数据库表、字段及其关系,以便进行数据的存储和读取。
4.邮件协议的选择
常用的邮件协议有POP3、IMAP和SMTP,需要根据系统需求选择具体协议。
5.系统安全性设计
邮件收发中存在着网络安全和邮件安全两个方面的问题,因此需要进行安全性设计,包括使用SSL协议进行加密通信、用户身份验证、邮件内容加密等。
6.系统性能测试
在系统实现后需要进行性能测试,检查系统的各项功能是否正常运行,并评估系统的性能,改进系统的性能。
通过以上步骤的设计与实现,可以建立出稳定、高效、安全的电子邮件收发系统。
电子邮件系统的设计与开发电子邮件系统的设计与开发一、背景电子邮件是信息时代必不可少的沟通方式之一,企业、机构和个人都需要使用电子邮件来处理日常事务。
而随着移动互联网的发展,人们对于邮件系统的依赖性也越来越大,因此,邮件系统的设计与开发显得尤为重要。
二、目标本文将介绍电子邮件系统的设计与开发,包括系统的架构设计、功能模块、技术选型和数据处理等方面,以期为开发者提供一些参考和思路。
三、系统架构设计1、前端架构设计前端架构是整个邮件系统的用户接口和展示界面,好的前端设计能够提高用户体验和使用效率。
一般来说,前端架构可以采用MVC 模式,即Model 模型、View 视图和Controller 控制器。
2、后端架构设计后端架构是邮件系统的核心,主要包括邮件服务器、数据库、缓存服务器、负载均衡服务器等。
其中,邮件服务器是整个邮件系统的重要组成部分,邮件服务器的性能和稳定性直接影响邮件系统的使用效果。
邮件服务器可以根据实际情况选择Postfix、Sendmail、Exim 等邮件服务器软件。
四、功能模块1、用户管理模块用户管理模块是整个邮件系统的基础模块,主要实现用户信息的管理、账号的注册、登录、退出等功能。
2、发送电子邮件模块发送电子邮件模块是邮件系统的核心功能之一,主要实现邮件的发送、接收、草稿保存、删除等功能。
3、电子邮件附件模块电子邮件附件模块可以实现邮件附件的上传、下载、删除等功能,支持文本、图片、音频、视频等多种附件类型。
4、电子邮件搜索模块电子邮件搜索模块是邮件系统的重要功能之一,用户可以通过关键词进行搜索,搜索结果可以按照时间、发件人、主题等进行筛选排序。
五、技术选型1、前端技术选型:HTML5、CSS3、JavaScript、Vue.js、Bootstrap、jQuery、Ajax2、后端技术选型:Web框架:SpringMVC、Spring、MyBatis缓存技术:Redis数据库:MySQL 或Oracle邮件服务器:Postfix 或Sendmail六、数据处理1、采用分布式架构邮件系统的数据量很大,因此采用分布式架构是很有必要的。
电子邮箱系统的设计与实现一、引言二、设计概述1.系统结构2.数据存储邮件数据需要存储在服务器端,通常采用数据库来管理。
数据库可以根据实际需要选择合适的存储方案,如MySQL、MongoDB等。
3.用户认证与权限管理4.邮件传输协议5.邮件收发与管理用户可以通过客户端软件或Web界面来发送和接收邮件,并进行邮件管理操作。
常见的邮件操作包括创建新邮件、查看已收邮件、删除邮件、标记为已读等。
三、关键功能和实现1.用户注册与登录2.邮件编写与发送3.邮件接收和查看服务器收到用户的邮件后,将邮件存储在数据库中。
用户可以通过客户端软件或Web界面来接收和查看邮件。
未读邮件会自动标识,用户可以选择标记为已读或删除邮件。
4.邮件管理和组织四、系统性能优化1.分布式架构2.缓存优化可以使用缓存技术来提高系统的读取速度。
常见的缓存技术包括Redis和Memcached,在数据库查询频繁的场景下可以有效减少IO压力。
3.异步处理可以将邮件的发送和接收等操作进行异步处理,提高系统的响应速度。
可以使用消息队列来实现异步处理,如RabbitMQ、ActiveMQ等。
五、系统安全设计1.数据加密邮件在传输和存储过程中应该进行数据加密,保护邮件内容的安全。
可以使用SSL/TLS协议对邮件进行传输加密,采用加密算法对邮件数据库进行加密。
2.防止垃圾邮件为了减少垃圾邮件的影响,可以对用户发送的邮件进行过滤。
可以使用机器学习算法对邮件进行分类,将垃圾邮件自动移到垃圾邮件文件夹中。
3.账户安全为了防止账户被盗用,可以设置登录限制和密码策略。
例如,可以设置登录失败次数限制,密码必须包含大小写字母和数字等。
六、总结。
山东农业大学毕业论文题目:电子邮件系统的设计与开发二○○八年六月中英文摘要第一章电子邮件的发展背景和意义电子邮件翻译自英文的E-mail,它表示通过电子通讯系统进行信件的书写、发送和接收。
30多年前,人们发明了电子邮件这种便捷的信息传递方式,这是人类通信历史上的一次革命。
电子邮件的兴起是在20世纪80年代,70年代的沉寂主要是因为当时使用Arpanet网络的人太少,网络的速度也仅为目前56Kbps标准速度的二十分之一。
受网络速度的限制,那时的用户只能发送些简单的信息,根本无法象现在这样发送大量照片;到80年代中期,个人电脑兴起,电子邮件开始在电脑迷以及大学生中广泛传播开来;到90年代中期,随着计算机技术的发展,出现了功能强大的Internet。
在Internet众多的服务功能中,电子邮件E-mail就是其强大功能中的一个。
自此,电子邮件被广为使用。
今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。
通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式,与世界上任何一个角落的网络用户联络系,这些电子邮件可以是文字、图象、声音等各种方式。
同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。
这是任何传统的方式也无法相比的。
正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。
随着网络越来越普及,现在已经是人人一个电子邮箱甚至有多个电子邮箱。
在Internet 上使用最多的服务当属电子邮件服务了。
可见,电子邮件与人们的工作、学习和生活息息相关,它已经深深的融入到每个人的生活中,生活在这个网络时代的人是不可能没有电子邮箱的。
电子邮箱已经由以前科技工作者用于科技信息交流转变到现在大多数人用来进行日常生活工作学习的交流工具。
同时,电子邮箱的功能也发生了翻天覆地的变化。
由原来只能收发文本到现在的收发多媒体文件。
简化邮件的编码,减少编码造成的数据冗余。
这些都得宜于与电子邮箱有关的网络协议的发展和有关硬件的改进。
现在我们每天都习惯于通过E-mail进行交流,各大网站也几乎都推出了自己的基于WEB 的免费邮件系统。
电子邮件已无可争议的地成为互联网上最受用户欢迎的服务。
邮件的安全也逐渐受到人们的重视。
至今已出现了各种安全保障措施来加强E-mail的安全性。
随着电子邮件服务的完善和安全性的不断提高。
电子邮件毫无疑问将在人类的通信史上占有一席之地。
如同其他的网络服务,电子邮件系统也有其使用的传输协议,包括SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、POP(Post Office Protocol,邮局协议)和IMAP (Internet Message Access Protocal)消息访问协议)等,这些协议应用于电子邮件的发送和接收。
一些邮件处理软件如OutLook Express和FoxMail等就是按照SMTP和POP3 协议结合Windows Sockets套接字进行设计来收发邮件的。
第二章电子邮件收发原理及相关技术本章简单介绍了SMTP协议,POP3协议的工作原理。
只有较深入的掌握了这两个协议的主要内容,才能理解基于SMTP,POP3的邮件收发系统是怎样工作。
2.1 SMTP协议简介2.1.1 SMTP协议原始命令码和工作原理SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,或者说是由它来控制信件传输的一种中转方式。
SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过SMTP协议所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转电子邮件。
(1)SMTP协议的通信模型首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。
发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。
图2-1 SMTP协议通信模型示意图(2)SMTP协议的命令和应答从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。
在通讯链路建立后,发送SMTP发送MAIL FROM:命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。
双方如此反复多次,直至邮件处理完毕。
SMTP协议共包含10个SMTP命令,列表如下:-------------------------------------------------------------------------------表2-1 SMTP命令命令说明-------------------------------------------------------------------------------HELLO <domain><CRLF>识别发送方到接收SMTP的一个HELLO命令MAIL FROM:<reverse-path><CRLF><reverse-path>为发送者地址。
此命令告诉接收方一个新邮件发送的开始并对所有的状态和缓冲区进行初始化。
此命令开始一个邮件传输处理最终完成将邮件数据传送到一个或多个邮箱中。
RCPT TO:<forward-path><CRLF>标识各个邮件接收者的地址DATA <CRLF>接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>标识数据的结尾。
REST <CRLF>退出/复位当前的邮件传输NOOP <CRLF>要求接收SMTP仅做OK应答。
(用于测试)QUIT <CRLF>要求接收SMTP返回一个OK应答并关闭传输。
VRFY <string><CRLF>验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。
EXPN <string><CRLF>验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。
HELP <CRLF>查询服务器支持什么命令VRFY <CRLF>用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN <CRLF>用于扩充邮件列表。
------------------------------------------------------------------------------- 注:<CRLF>为回车、换行,ASCII码分别为13、10(十进制)。
------------------------------------------------------------------------------- MAIL FROM命令中指定的地址是称作envelope from地址,不需要和发送者自己的地址是一致的。
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。
邮件被分为信封部分,信头部分和信体部分envelope from, envelope to 与message from:, message to:完全不相干。
evnelope是由服务器主机间SMTP后台提供的,而message from/to是由用户提供的。
有无冒号也是区别。
SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为2时表示命令成功;为5表失败;3表没有完成。
一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。
下面将SMTP的应答码列表如下:----------------------------------------------------------------表2-2 应答码说明----------------------------------------------------------------501 参数格式错误502 命令不可实现503 错误的命令序列504 命令参数不可实现211 系统状态或系统帮助响应214 帮助信息220 <domain>服务就绪221 <domain>服务关闭421 <domain>服务未就绪,关闭传输信道250 要求的邮件操作完成251 用户非本地,将转发向<forward-path>450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)451 放弃要求的操作;处理过程中出错551 用户非本地,请尝试<forward-path>452 系统存储不足,要求的操作未执行552 过量的存储分配,要求的操作未执行553 邮箱名不可用,要求的操作未执行354 开始邮件输入,以"."结束554 操作失败(3)SMTP协议工作原理SMTP协议规定的命令是以明文方式进行的。
SMTP工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。
SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。
响应包括一个表示返回状态的三位数字代码。
SMTP服务器在TCP协议25号端口监听连接请求。
连接和发送过程如下:a.建立TCP连接b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令服务器端正希望以OK作为响应,表明准备接收。
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行。
服务器端则表示是否愿意为收件人接受邮件。
d.协商结束,发送邮件,用命令DATA发送。
e.以.表示结束输入内容一起发送出去。
f.结束此次发送,用QUIT命令退出。
2.1.2 SMTP协议的会话流程在进行程序设计之前有必要弄清SMTP协议的会话流程,其实前面介绍的内容已经可以大致勾勒出用SMTP发送邮件的框架了,对于一次普通的邮件发送,其过程大致为:先建立TCP 连接,随后客户端发出HELLO命令以标识发件人自己的身份,并继续由客户端发送MAIL命令,如服务器应答为"OK",可继续发送RCPT命令来标识电子邮件的收件人,在这里可以有多个RCPT行,而服务器端则表示是否愿意为收件人接受该邮件。