电子邮件收发系统设计
- 格式:doc
- 大小:804.50 KB
- 文档页数:40
系统设计方案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,采用集中部署的方式实施<客户名称>的电子系统。
电子邮件系统设计方案一、引言随着信息技术的不断发展,电子邮件已经成为人们日常工作和生活中必不可少的沟通工具。
为了提高工作效率和便捷性,设计一个高效稳定的电子邮件系统显得尤为重要。
本文将针对电子邮件系统的设计方案进行探讨。
二、系统架构设计1. 服务器端在服务器端,我们可以采用客户-服务器架构,客户端通过电子邮件客户端软件连接到邮件服务器,完成邮件的发送和接收。
同时,服务器端还需要搭建数据库以保存用户信息、邮件内容等数据,确保数据的安全性和可靠性。
2. 客户端客户端是用户与电子邮件系统进行交互的界面,我们可以设计一个简洁易用的客户端界面,支持发送、接收、查看和管理邮件等功能。
同时,客户端需要保证数据传输的安全性,可以采用加密算法来保护邮件内容的机密性。
三、功能设计1. 邮件发送用户可以通过客户端输入邮件内容、选择接收人和附件等信息,发送电子邮件。
系统需要对邮件进行格式校验和安全性检测,确保邮件发送的有效性和安全性。
2. 邮件接收用户可以通过客户端接收新邮件,系统需要及时更新用户的收件箱并提醒用户有新邮件到达。
同时,系统可以实现自动过滤垃圾邮件等功能,提升用户体验。
3. 邮件管理用户可以对已发送和已接收的邮件进行管理,包括删除、标记、归档等操作。
系统需要提供便捷的管理界面,帮助用户轻松管理邮件内容。
四、安全性设计1. 用户认证在用户登录时,系统需要对用户进行身份验证,确保用户身份的合法性。
可以采用用户名密码验证、双因素认证等方式提升系统的安全性。
2. 数据加密为了保护用户的隐私和机密性,系统可以对邮件内容和附件进行加密传输。
同时,系统需要采用SSL/TLS等安全协议来保护数据传输的安全性。
3. 防火墙设置为了防止黑客攻击和恶意软件侵入,系统可以设置防火墙来监控数据流量和网络连接,保障系统的稳定性和安全性。
五、性能优化设计1. 邮件队列管理为了减少系统压力,系统可以设置邮件队列,对邮件发送进行排队管理,保证系统的稳定性和高效性。
本科毕业设计邮件收发系统的设计与实现摘要随着互联网应用的不断增加,人们通讯的速度和方式不断进步。
电子邮箱就是基于互联网的非即时通讯工具。
利用电子邮箱,人们可以方便地传输文档、视频、照片、音频等信息,现代企业也都将其作为重要的办公工具。
基于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培养学生观察问题、分析问题和解决问题的能力。
3、让学生通过积极自主探索,初步掌握收发电子邮件的操作方法;培养学生使用电子邮件与他人沟通,获取、交流信息。
二:教学重点:如何接收和发送电子邮件。
三:教学难点:发送带附件的邮件四:教学准备:在学生机上拷贝好听的歌曲和图片多媒体教学系统、计算机网络、自制课件。
五、教法、学法:本课采用的主要教法有“任务驱动法”、“创设情境法”、“实践体验法”。
六、教学过程七:教学过程:一、复习旧知,激情导入同学们,上节课我们共同学习了怎样申请电子邮箱,现在同学们都拥有了一个自己的电子邮箱,一定很想知道怎样使用它吧!请一位同学上来演示,其他同学在下面操作。
二、探索新知引领学生认识邮箱页面介绍收发邮件操作步骤:1. 发送邮件。
点击,在显示的写信窗口中,需要输入“收信人地址”、“主题”、“内容”,点即可。
教师强调收件人的格式一定要输入正确. 用户名+@+邮件服务器域名发送成功后,页面出现“邮件发送成功”信息。
(教师通过示范性的操作、教学媒体的演示使学生了解发送电子邮件的过程,使静态的知识动态化,抽象的概念具体化,为创新动机的形成奠定物化的基础。
特别是为学生形成操作策略提供帮助。
)2.收邮件:进入邮箱后,点击即可看到所邮件服务器域名收到的邮件(显示邮件主题及发件人地址)点击邮件名称,即可看到邮件内容介绍完操作步骤后同学一定都很着急的要具体操作,接下来请同学们完成任务一:相邻的两台电脑的同学互发邮件。
主题:交流学习经验(设计意图:让学生自己尝试收发邮件,教师边指导。
学生很容易接受新知识,学习积极性很高。
)思考:自己能收到自己的邮件吗?学生上机实践,通过亲自实践得出结论。
目录第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.需求分析在设计电子邮件收发系统之前,需要进行需求分析,明确系统的功能和性能需求。
电子邮件收发系统需要支持以下功能:(1)发送邮件:用户输入邮件内容,包括主题、收件人、抄送人、邮件内容等信息,系统将这些信息打包为邮件并发送给目标邮箱。
同时,系统还需要记录下这封邮件的发送时间和状态。
(2)接收邮件:系统需要定期检查用户的邮箱,将未读邮件保存到收件箱中,同时更新邮件的状态标记以便用户可以知道哪些邮件已读、哪些未读。
(3)抄送邮件:系统需要支持抄送邮件功能。
(4)回复邮件:系统需要支持用户在收到邮件后能够点击“回复”按钮进行回复,同时自动引用原邮件内容。
(5)转发邮件:系统需要支持用户在收到邮件后能够点击“转发”按钮进行转发,同时用户可以对邮件内容进行修改。
2.系统架构基于上述需求,我们可以设计出一个基于客户端-服务器架构的电子邮件收发系统,如下图所示。
系统共分为客户端和服务器两个部分。
(1)客户端:用户通过客户端与服务器进行通信,包括发送邮件、接收邮件等功能。
客户端同时还需要进行用户身份认证和邮件内容加密等安全措施。
(2)服务器:服务器负责接收用户发来的邮件,并将邮件发送至目标邮箱,同时还需要维护用户账号和邮件状态等信息。
服务器需要高效稳定,同时还需要进行定期备份保证数据的可靠性。
3.技术选型在设计电子邮件收发系统时,需要选择合适的技术方案。
以下是一些推荐的技术:(1)服务器端语言:Node.js、Java、Python等。
(2)前端框架:React、Vue.js等。
(3)数据库:MySQL、MongoDB等。
(4)安全措施:SSL加密、加密邮件内容、双重认证等。
4.注意事项在设计电子邮件收发系统时,需要注意以下事项:(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.账户安全为了防止账户被盗用,可以设置登录限制和密码策略。
例如,可以设置登录失败次数限制,密码必须包含大小写字母和数字等。
六、总结。
目录第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模式,主要功能通过收发电子邮件客户端程序实现。
收发电子邮件需要标准的会话协议支持,SMTP (SimpleMailTransferProtocol)用于发送电子邮件,POP3协议(PostOfficeProtocol)用于接收电子邮件。
电子邮件使人们的交流方式得到了极大的改变.人们平时所发送或接收的电子邮件,并不是由本机来实现 SMTP 协议与 POP3 协议,电子邮件内容全是存储在相应服务商的 POP3 服务器上,用户必须要登录到相应的服务器上才能进行浏览、查询或者删除操作,但是,在网络繁忙或大家集中传输数据的时候,人们可能收不到消息或者打开很慢.为了解决这一难题,我们开发了电子邮件收发系统,将邮件服务器上的内容保存到本地机器上,这样即使在网络断开的情况下,也能查询已存在本地机器上的邮件。
第2章需求分析2.1 产品可行性分析整个电子邮件系统由电子邮件服务器端和电子邮件客户端组成,其工作过程及一些涉及到的协议如图2.1所示:图2.1 电子邮件系统工作过程图其中SMTP是因特网电子邮件系统重要的应用层协议。
它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮箱所在邮件服务器。
SMTP是客户-服务器应用模式,由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。
SMTP的客户端和服务器端同时运行在每个邮件服务器上。
当一个邮件服务器向其它邮件服务器发送邮件消息时,它是作为SMTP客户端。
当一个邮件服务器从其它邮件服务器接收邮件消息时,它是作为SMTP服务器端。
SMTP规范定义在RFC 821中,它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。
SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。
这个限制使得二进制多媒体数据在由SMTP传送之前必须编码成7位ASCII文本;SMTP传送完毕之后,再把相应的7位ASCII文本邮件消息解码成二进制数据。
POP3是RFC 1939中定义的一个简单的邮件访问协议,其功能有限。
POP3开始于用户代理打开一个到POP3服务器端口号110的TCP连接。
POP3服务器与邮件服务器运行在相同的服务器主机上,前者从用户的邮箱中读取并可能删除邮件消息,后者往用户的邮箱中写入邮件消息。
TCP连接建立好之后,POP3依次经历授权认证、处理和更新3个阶段。
在授权阶段,用户代理分别发出一个用户名和一个口令以认证下载邮件消息的用户。
在处理阶段,用户代理获取邮件消息,并可以标记待删除的邮件消息或去掉这些标记,获取邮件统计信息。
更新阶段发生在用户代理发出quit命令以结束当前POP3会话之后,期间POP3服务器删除己加过删除标记的邮件消息。
在POP3会话期间,用户代理发出命令,POP3服务器则对每个命令响应以一个应答。
可能的应答有两个:指出刚才的命令执行成功的+OK(有时后跟一个解释性消息)和指出刚才的命令执行有误的-ERR。
一个邮件的收发就是通过SMTP传递消息到对端邮件服务器,对端客户使用POP3协议从服务器上获得邮件的过程。
在本设计中,采用自己编写基于socket 的方法,来解析协议,进行邮件收发。
同时,在进行邮件收发,需要提供基于BASE64加密解密的鉴权信息,其中Base64是一种很简单的编码转换:对于待编码数据,以3个字节为单位,依次取6位数据并在前面补上两个0形成新的8位编码,由于3×8=4×6,这样3个字节的输入会变成4个字节的输出,长度上增加了1/3。
上面的处理还不能保证得到的字符都是可见字符,为了达到此目的,Base64制定了一个编码表,进行统一的转换,见表2.1。
码表的大小为26=64,这也是Base64名称的由来。
由于编码是以3个字节为单位,当剩下的字符数量不足3个字节时,则应使用0进行填充,相应地,输出字符则使用‘=’占位,因此编码后输出的文本末尾可能会出现1至2个‘=’。
表2.1 Base64编码表BASE64的加密解析,SUN公司有自己内部专用的API,该API位于JRE/LIB下,但是该API并没有javadoc,属于不推荐使用的方法,将在后续JDK版本中被剔除,因为本设计根据Base64编码表,自行编写Base64加密解密方法。
分析电子邮件传输过程中的协议和加密算法后,本设计进行自主开发是可行的。
2.2 产品功能需求分析图2.2 系统总体功能图其中本设计实现的是一个电子邮件客户端,类似于Outlook,有用户邮箱账户设置,登陆验证,接收邮件,阅读邮件,保存邮件,发送邮件等功能。
发送邮件:根据用户设置的公网邮箱账户或者一个公网不存在的自己私人域内的符合邮箱命名规范的邮箱账户,可实现对公网邮箱和本客户端(比如新浪,QQ,163)的邮件收发;若邮箱账户是自己随机设置的账户,则不可以向除本客户端以外的邮件服务器发送邮件;接收邮件:接收来自本客户端私人邮箱发来的邮件,在接收邮件的同时,将对邮件进行默认保存,接收完成后,点击即可实现对邮件的阅读;登陆验证:客户端在启动的时候,会对用户的账户信息与客户端内部保存的信息,进行鉴权,防止旁人使用客户端乱发垃圾邮件;账号设置:这个功能主要是实现对邮件发送代理的选择,决定发送邮件功能的能力。
2.2电子邮件系统收发邮件的过程图2.3 收发邮件过程图(1)发信人调用用户代理来编辑要发送的邮件。
用户代理用 SMTP 把邮件传送给发送端邮件服务器。
(2)发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
(3)运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。
(4)TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。
当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。
(5)运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。
收信人在打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的)。
第3章总体设计3.1 本系统的总体架构模型:图3.1 系统的总体模型图图3.1是该客户端的系统架构图,图中包含了六个图形用户界面,两个邮件接收和发送线程,以及一些相关的辅助方法和数据模型。
其中,各个图形用户界面是为了方便用户使用该客户端而设计;用户鉴权和客户端配置信息,是主界面在加载时,针对每个特定的用户,加载其个人设置;用户信息模型和账户信息模型用来对用户进行登录验证,设置邮箱账户时的信息进行封装。
发送邮件线程等待来自客户的发送请求,收到请求后,首先根据SMTP模型和用户输入信息,封装一个SMTP消息对象;接着对用户账户和密码进行BASE64加密;最后将封装好的信息对象,交由发送邮件方法进行发送;邮件接收线程是客户端加载成功后,就开始监听25端口,当有邮件信息发送到来时,将接收到的信息封装到一个未读邮件模型中去,然后将该模型传递给邮件接收和保存方法,该方法将会对邮件在硬盘中进行保存,并更新客户端配置信息中得未读邮件信息。
3.2 系统模块的划分按照本系统的总体功能划分,可以将这个电子邮件客户端分成5大模块,首先是登录模块,作为验证需要;其次是接收邮件模块,该模块负责邮件的接收,再次是发送模块,该模块负责该对方发送邮件;接着是邮件处理模块,该模块负责邮件的阅读、保存等操作;然后是邮件账户的管理,该操作负责设置客户端对公网的身份标识。
图3.2给出了本系统的模块体系:图3.2 系统模块体系图第4章详细设计4.1 接收邮件模块接收邮件模块主要由接收邮件线程监听端口完成对邮件的接收并对其进行保存和刷新主界面,包括下图中的几个部分。
(1)接收邮件线程。
一个邮件系统最基本的功能是能够接受发送的邮件。
为了可以同时接收多个邮件,保持并发性,本设计使用java多线程的功能,设计一个可以多线程的接收邮件线程;(2)保存邮件。
接收到对方的邮件以后,必须先对邮件进行保存备份,然后将邮件信息封装到未读邮件模型后,再显示出来,可以隐去一些不必要的内容,只显示邮件关键信息给用户;(3)刷新界面。
当客户端收到一个邮件后,必须能够实时刷新主界面以提醒用户。
接收邮件和附件模块的图示:图4.1 接收邮件和附件模块图4.2 发送和回复邮件模块发送邮件模块主要由发送邮件线程文件完成,包括图中的几个部分。
(1)编写新邮件。
该部分也是电子邮件系统中最基本的功能。
(2)发送新邮件。
在编写完成新邮件后,电机该功能将邮件内容发送给对方。
发送邮件模块的图示:图4.2 发送邮件模块图4.3 邮件处理模块邮件处理模块主要对邮件进行阅读和保存功能,包括图中的几个部分。