电子邮件收发系统设计
- 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