电子邮件收发系统设计
邮件系统设计方案

系统设计方案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.收邮件:进入邮箱后,点击即可看到所邮件服务器域名收到的邮件(显示邮件主题及发件人地址)点击邮件名称,即可看到邮件内容介绍完操作步骤后同学一定都很着急的要具体操作,接下来请同学们完成任务一:相邻的两台电脑的同学互发邮件。
主题:交流学习经验(设计意图:让学生自己尝试收发邮件,教师边指导。
学生很容易接受新知识,学习积极性很高。
)思考:自己能收到自己的邮件吗?学生上机实践,通过亲自实践得出结论。
软件工程--电子邮件系统设计文档

IPO表
系统: 电子邮件系统 作者:李东
模块: 验证用户ID
编号: 2.1.1.1
日期:2009.12.24
被调用:
添加联系人模块
调用: 成功添加模块
输入: 新的用户帐号
输出: ID验证结果TRUE或 FALSE
处理: 校验用户帐号
局部数据元素: 用户的帐号,String str_id
IPO表
系统: 电子邮件系统 作者:李东
处理: 更新联系人列表 局部数据元素:
用户的帐号,String str_id
IPO表
系统: 电子邮件系统 作者:谢晋杰
模块: 修改指定联系人 日期:2009.12.24
编号: 2.1.2.3
被调用:
显示联系人列表模 块 输入: 指定的联系人帐号
调用: A输入修改信息模块 B修改模块 输出: 修改请求
系统: 电子邮件系统 作者:刘奇鑫
模块: 读邮件模块
编号: 2.2.1
日期:2009.12.25
被调用:
邮件管理模块2.2
调用:
显示邮件列表模块2.2.1.1 提取邮件内容模块2.2.1.2
输入: 邮件信息列表
输出:
处理:
查询邮箱信息列表,根据标记调用2.2.1.1显 示邮件列表,2.2.1.2提取邮件内容
日期: 2009.12.24
调用: 无
输入:用户帐号 用户密码
输出: 用户是否存在
处理:与数据库中信息作比较,看用户 是否存在,密码是否正确 局部数据元素:
IPO表
系统: 电子邮件系统 作者:李东
模块: 显示联系人列表 日期:2009.12.24
编号: 2.1.3.1
被调用:
电子邮件收发系统设计.doc

目录第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第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 邮件处理模块邮件处理模块主要对邮件进行阅读和保存功能,包括图中的几个部分。