西安建筑科技大学课程设计(论文)第1页共40页目录第1章引言...............................................................2第2章需求分析..............................................................32.1产品可行性分析...........................................................32.2产品功能需求分析.........................................................52.2电子邮件系统收发邮件的过程...............................................5第3章总体设计..............................................................73.1本系统的总体架构模型:...................................................73.2系统模块的划分...........................................................8第4章详细设计..............................................................94.1接收邮件模块.............................................................94.2发送和回复邮件模块.......................................................94.3邮件处理模块............................................................104.4界面实现的流程图........................................................104.5邮件发送过程的流程图....................................................114.6邮件接收流程............................................................134.7用户鉴权和客户端配置信息流程............................................154.8阅读邮件流程............................................................16第5章系统功能测试.........................................................185.1登陆界面及邮箱账户设置界面测试..........................................185.2主界面测试..............................................................185.3发送界面与收件箱界面测试................................................185.4阅读邮件界面测试........................................................20第6章结论与展望...........................................................216.1结论....................................................................216.2展望....................................................................21致谢......................................................................22参考文献...................................................................23附录.......................................................................24西安建筑科技大学课程设计(论文)第2页共40页第1章引言电子邮件(简称E-mai1)又称电子信箱、电子邮政,表示通过电子通讯系统进行信件的书写、发送和接收,它是继电话、电报和传真之后最快捷、最方便的通讯工具,是20世纪人类最伟大的发明。早在互联网流行很久以前,电子邮件就已经存在。它是在主机-多终端的主从式体系中通过一台计算机终端向另一台计算机终端传送文本信息的相对简单方法发展起来的,也就是人们常说的C/S架构。如今,电子邮件已经将人与人越来越紧密地联系在一起,成为人们生活的一部分。通过电子邮件系统,人们可以用非常低廉的价格,以非常快速的方式,与世界上任何一个网络用户联系。而电子邮件的形式也从原来的纯文本方式变成现在的HTML页面并加载附件的多彩形式,同时,人们还可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索,这是任何传统的方式也无法相比的。电子邮件的使用简易、投递迅速、收费低廉、易于保存、全球畅通无阻,使得它被广泛地应用。电子邮件收发系统基于Client/Server模式,主要功能通过收发电子邮件客户端程序实现。收发电子邮件需要标准的会话协议支持,SMTP(SimpleMailTransferProtocol)用于发送电子邮件,POP3协议(PostOfficeProtocol)用于接收电子邮件。电子邮件使人们的交流方式得到了极大的改变.人们平时所发送或接收的电子邮件,并不是由本机来实现SMTP协议与POP3协议,电子邮件内容全是存储在相应服务商的POP3服务器上,用户必须要登录到相应的服务器上才能进行浏览、查询或者删除操作,但是,在网络繁忙或大家集中传输数据的时候,人们可能收不到消息或者打开很慢.为了解决这一难题,我们开发了电子邮件收发系统,将邮件服务器上的内容保存到本地机器上,这样即使在网络断开的情况下,也能查询已存在本地机器上的邮件。西安建筑科技大学课程设计(论文)第3页共40页第2章需求分析2.1产品可行性分析整个电子邮件系统由电子邮件服务器端和电子邮件客户端组成,其工作过程及一些涉及到的协议如图2.1所示:图2.1电子邮件系统工作过程图其中SMTP是因特网电子邮件系统重要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮箱所在邮件服务器。SMTP是客户-服务器应用模式,由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其它邮件服务器发送邮件消息时,它是作为SMTP客户端。当一个邮件服务器从其它邮件服务器接收邮件消息时,它是作为SMTP服务器端。SMTP规范定义在RFC821中,它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使得二进制多媒体数据在由SMTP传送之前必须编码成7位ASCII文本;SMTP传送完毕之后,再把相应的7位ASCII文本邮件消息解码成二进制数据。POP3是RFC1939中定义的一个简单的邮件访问协议,其功能有限。POP3开始于用户代理打开一个到POP3服务器端口号110的TCP连接。POP3服务器与西安建筑科技大学课程设计(论文)第4页共40页邮件服务器运行在相同的服务器主机上,前者从用户的邮箱中读取并可能删除邮件消息,后者往用户的邮箱中写入邮件消息。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.1Base64编码表值编码值编码值编码值编码值编码值编码值编码值编码0A8I16Q24Y32g40o48w5641B9J17R25Z33h41p49x5752C10K18S26a34i42q50y5863D11L19T27b35j43r51z5974E12M20U28c36k44s5206085F13N21V29d37l45t5316196G14O22W30e38m46u54262+7H15P23X31f39n47v55363/BASE64的加密解析,SUN公司有自己内部专用的API,该API位于JRE/LIB西安建筑科技大学课程设计(论文)第5页共40页下,但是该API并没有javadoc,属于不推荐使用的方法,将在后续JDK版本中被剔除,因为本设计根据Base64编码表,自行编写Base64加密解密方法。分析电子邮件传输过程中的协议和加密算法后,本设计进行自主开发是可行的。2.2产品功能需求分析电子邮件系客户端发送邮件阅读邮件账户设置保存邮件登陆验证接收邮件图2.2系统总体功能图其中本设计实现的是一个电子邮件客户端,类似于Outlook,有用户邮箱账户设置,登陆验证,接收邮件,阅读邮件,保存邮件,发送邮件等功能。发送邮件:根据用户设置的公网邮箱账户或者一个公网不存在的自己私人域内的符合邮箱命名规范的邮箱账户,可实现对公网邮箱和本客户端(比如新浪,QQ,163)的邮件收发;若邮箱账户是自己随机设置的账户,则不可以向除本客户端以外的邮件服务器发送邮件;接收邮件:接收来自本客户端私人邮箱发来的邮件,在接收邮件的同时,将对邮件进行默认保存,接收完成后,点击即可实现对邮件的阅读;登陆验证:客户端在启动的时候,会对用户的账户信息与客户端内部保存的信息,进行鉴权,防止旁人使用客户端乱发垃圾邮件;账号设置:这个功能主要是实现对邮件发送代理的选择,决定发送邮件功能的能力。2.2电子邮件系统收发邮件的过程西安建筑科技大学课程设计(论文)第6页共40页图2.3收发邮件过程图(1)发信人调用用户代理来编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。(2)发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。(3)运行在发送