ImageVerifierCode 换一换
格式:DOC , 页数:74 ,大小:805.50KB ,
资源ID:4888033      下载积分:18 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4888033.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(电子邮件收发系统设计模板.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

电子邮件收发系统设计模板.doc

1、 电子邮件收发系统设计 73 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 目 录 第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 邮件接

2、收流程 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)又称电子信箱、 电子邮政, 表示经过电子通讯系统进行信件的书写、 发送和接收, 它是继电话、 电报和传真之后最快捷、 最方便的通讯工具,

3、是 20 世纪人类最伟大的创造。早在互联网流行很久以前, 电子邮件就已经存在。它是在主机-多终端的主从式体系中经过一台计算机终端向另一台计算机终端传送文本信息的相对简单方法发展起来的, 也就是人们常说的 C/S 架构。如今, 电子邮件已经将人与人越来越紧密地联系在一起, 成为人们生活的一部分。经过电子邮件系统, 人们能够用非常低廉的价格, 以非常快速的方式, 与世界上任何一个网络用户联系。而电子邮件的形式也从原来的纯文本方式变成现在的 HTML 页面并加载附件的多彩形式, 同时, 人们还能够得到大量免费的新闻、 专题邮件, 并实现轻松的信息搜索, 这是任何传统的方式也无法相比的。电子邮件的使用

4、简易、 投递迅速、 收费低廉、 易于保存、 全球畅通无阻, 使得它被广泛地应用。电子邮件收发系统基于Client/Server模式, 主要功能经过收发电子邮件客户端程序实现。收发电子邮件需要标准的会话协议支持, SMTP( SimpleMailTransferProtocol) 用于发送电子邮件, POP3协议( PostOfficeProtocol) 用于接收电子邮件。电子邮件使人们的交流方式得到了极大的改变.人们平时所发送或接收的电子邮件, 并不是由本机来实现 SMTP 协议与 POP3 协议, 电子邮件内容全是存储在相应服务商的 POP3 服务器上, 用户必须要登录到相应的服务器上才能进

5、行浏览、 查询或者删除操作, 可是, 在网络繁忙或大家集中传输数据的时候, 人们可能收不到消息或者打开很慢.为了解决这一难题, 我们开发了电子邮件收发系统, 将邮件服务器上的内容保存到本地机器上, 这样即使在网络断开的情况下, 也能查询已存在本地机器上的邮件。 第2章 需求分析 2.1 产品可行性分析 整个电子邮件系统由电子邮件服务器端和电子邮件客户端组成, 其工作过程及一些涉及到的协议如图2.1所示: 图2.1 电子邮件系统工作过程图 其中SMTP是因特网电子邮件系统重要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务

6、器传送到收信人邮箱所在邮件服务器。SMTP是客户-服务器应用模式, 由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其它邮件服务器发送邮件消息时, 它是作为SMTP客户端。当一个邮件服务器从其它邮件服务器接收邮件消息时, 它是作为SMTP服务器端。 SMTP规范定义在RFC 821中, 它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使得二进制多媒体数据在由SMTP传送之前必须编码成7位ASCII文本; S

7、MTP传送完毕之后, 再把相应的7位ASCII文本邮件消息解码成二进制数据。 POP3是RFC 1939中定义的一个简单的邮件访问协议, 其功能有限。POP3开始于用户代理打开一个到POP3服务器端口号110的TCP连接。POP3服务器与邮件服务器运行在相同的服务器主机上, 前者从用户的邮箱中读取并可能删除邮件消息, 后者往用户的邮箱中写入邮件消息。TCP连接建立好之后, POP3依次经历授权认证、 处理和更新3个阶段。在授权阶段, 用户代理分别发出一个用户名和一个口令以认证下载邮件消息的用户。在处理阶段, 用户代理获取邮件消息, 并能够标记待删除的邮件消息或去掉这些标记, 获取邮件统计信息

8、更新阶段发生在用户代理发出quit命令以结束当前POP3会话之后, 期间POP3服务器删除己加过删除标记的邮件消息。在POP3会话期间, 用户代理发出命令, POP3服务器则对每个命令响应以一个应答。可能的应答有两个: 指出刚才的命令执行成功的+OK(有时后跟一个解释性消息)和指出刚才的命令执行有误的-ERR。 一个邮件的收发就是经过SMTP传递消息到对端邮件服务器, 对端客户使用POP3协议从服务器上获得邮件的过程。在本设计中, 采用自己编写基于socket的方法, 来解析协议, 进行邮件收发。 同时, 在进行邮件收发, 需要提供基于BASE64加密解密的鉴权信息, 其中Base64

9、是一种很简单的编码转换: 对于待编码数据, 以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编码表 值

10、编码 值 编码 值 编码 值 编码 值 编码 值 编码 值 编码 值 编码 0 A 8 I 16 Q 24 Y 32 g 40 o 48 w 56 4 1 B 9 J 17 R 25 Z 33 h 41 p 49 x 57 5 2 C 10 K 18 S 26 a 34 i 42 q 50 y 58 6 3 D 11 L 19 T 27 b 35 j 43 r 51 z 59 7 4 E 12 M 20 U 28 c 36

11、 k 44 s 52 0 60 8 5 F 13 N 21 V 29 d 37 l 45 t 53 1 61 9 6 G 14 O 22 W 30 e 38 m 46 u 54 2 62 + 7 H 15 P 23 X 31 f 39 n 47 v 55 3 63 / BASE64的加密解析, SUN公司有自己内部专用的API, 该API位于JRE/LIB下, 可是该API并没有javadoc, 属于不推荐使用的方法, 将在后续JDK版本中被剔除, 因为本设计根据Base64编码

12、表, 自行编写Base64加密解密方法。 分析电子邮件传输过程中的协议和加密算法后, 本设计进行自主开发是可行的。 2.2 产品功能需求分析 图2.2 系统总体功能图 其中本设计实现的是一个电子邮件客户端, 类似于Outlook, 有用户邮箱账户设置, 登陆验证, 接收邮件, 阅读邮件, 保存邮件, 发送邮件等功能。 发送邮件: 根据用户设置的公网邮箱账户或者一个公网不存在的自己私人域内的符合邮箱命名规范的邮箱账户, 可实现对公网邮箱和本客户端( 比如新浪, QQ, 163) 的邮件收发; 若邮箱账户是自己随机设置的账户, 则不能够向除本客户端以外的邮件服务器发送邮件; 接收

13、邮件: 接收来自本客户端私人邮箱发来的邮件, 在接收邮件的同时, 将对邮件进行默认保存, 接收完成后, 点击即可实现对邮件的阅读; 登陆验证: 客户端在启动的时候, 会对用户的账户信息与客户端内部保存的信息, 进行鉴权, 防止旁人使用客户端乱发垃圾邮件; 账号设置: 这个功能主要是实现对邮件发送代理的选择, 决定发送邮件功能的能力。 2.2电子邮件系统收发邮件的过程 图2.3 收发邮件过程图 (1) 发信人调用用户代理来编辑要发送的邮件。用户代理用 SMTP 把邮件传送给发送端邮件服务器。 (2) 发送端邮件服务器将邮件放入邮件缓存队列中, 等待发送。 (3) 运行在发送

14、端邮件服务器的 SMTP 客户进程, 发现在邮件缓存中有待发送的邮件, 就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。 (4) TCP 连接建立后, SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了, SMTP 就关闭所建立的 TCP 连接。 (5) 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后, 将邮件放入收信人的用户邮箱中, 等待收信人在方便时进行读取。 收信人在打算收信时, 调用用户代理, 使用 POP3( 或 IMAP) 协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回( 如果邮箱中有来信的)

15、 第3章 总体设计 3.1 本系统的总体架构模型: 图3.1 系统的总体模型图 图3.1是该客户端的系统架构图, 图中包含了六个图形用户界面, 两个邮件接收和发送线程, 以及一些相关的辅助方法和数据模型。 其中, 各个图形用户界面是为了方便用户使用该客户端而设计; 用户鉴权和客户端配置信息, 是主界面在加载时, 针对每个特定的用户, 加载其个人设置; 用户信息模型和账户信息模型用来对用户进行登录验证, 设置邮箱账户时的信息进行封装。 发送邮件线程等待来自客户的发送请求, 收到请求后, 首先根据SMTP模型和用户输入信息, 封装一个

16、SMTP消息对象; 接着对用户账户和密码进行BASE64加密; 最后将封装好的信息对象, 交由发送邮件方法进行发送; 邮件接收线程是客户端加载成功后, 就开始监听25端口, 当有邮件信息发送到来时, 将接收到的信息封装到一个未读邮件模型中去, 然后将该模型传递给邮件接收和保存方法, 该方法将会对邮件在硬盘中进行保存, 并更新客户端配置信息中得未读邮件信息。 3.2 系统模块的划分 按照本系统的总体功能划分, 能够将这个电子邮件客户端分成5大模块, 首先是登录模块, 作为验证需要; 其次是接收邮件模块, 该模块负责邮件的接收, 再次是发送模块, 该模块负责该对方发送邮件; 接着是邮件处理

17、模块, 该模块负责邮件的阅读、 保存等操作; 然后是邮件账户的管理, 该操作负责设置客户端对公网的身份标识。图3.2给出了本系统的模块体系: 图3.2 系统模块体系图 第4章 详细设计 4.1 接收邮件模块 接收邮件模块主要由接收邮件线程监听端口完成对邮件的接收并对其进行保存和刷新主界面, 包括下图中的几个部分。 (1) 接收邮件线程。一个邮件系统最基本的功能是能够接受发送的邮件。为了能够同时接收多个邮件, 保持并发性, 本设计使用java多线程的功能, 设计一个能够多线程的接收邮件线程; (2) 保存邮件。接收到对方的邮件以后, 必须先

18、对邮件进行保存备份, 然后将邮件信息封装到未读邮件模型后, 再显示出来, 能够隐去一些不必要的内容, 只显示邮件关键信息给用户; (3) 刷新界面。当客户端收到一个邮件后, 必须能够实时刷新主界面以提醒用户。 接收邮件和附件模块的图示: 图4.1 接收邮件和附件模块图 4.2 发送和回复邮件模块 发送邮件模块主要由发送邮件线程文件完成, 包括图中的几个部分。 (1) 编写新邮件。该部分也是电子邮件系统中最基本的功能。 (2) 发送新邮件。在编写完成新邮件后, 电机该功能将邮件内容发送给对方。 发送邮件模块的图示: 图4.2 发送邮件模块图 4.3 邮件处理模

19、块 邮件处理模块主要对邮件进行阅读和保存功能, 包括图中的几个部分。 (1) 显示邮件内容, 新建一个界面显示用户选择的邮件内容。 (2) 保存邮件。在接收到邮件的同时, 默认自动保存邮件。 (3) 显示错误信息。在出现一些登录错误, 删除错误, 发送错误时, 将显示不同的错误信息提示用户。 邮件处理模块的图示: 图4.3 邮件处理模块图 4.4 界面实现的流程图 如上所述, 本设计的邮件客户端需要六个不同的界面, 都采用java swing技术实现, java swing提供丰富的图形组件和多样的布局方式, 以及事件注册处理机制, 在本设计中使用java swing技术

20、实现这些界面, 其流程如图4.4所示: 图4.4 界面实现流程图 其中的部分代码如下: …… buttonPanel.add(newButton); buttonPanel.add(recButton); buttonPanel.add(recboxButton); buttonPanel.add(draftButton); buttonPanel.add(setButton);…… jFrame.setBounds(0, 0, SCREEN_WIDTH*3/4,SCREEN_HEIGHT*3/5); jFrame.s

21、etBackground(Color.WHITE); jFrame.add(buttonPanel,new BorderLayout().WEST); jFrame.add(tab,new BorderLayout().CENTER); jFrame.setVisible(true);…… 4.5 邮件发送过程的流程图 邮件发送过程需要使用SMTP协议, 因此在本设计中, 将SMTP协议的各个字段封装到了一个对象中去, 便于维护和管理, 邮件发送的实现过程如图4.5所示,其部分实现代码如下 …… String destip = getEmailNameIn

22、fo.getusername(username).replace("_", "."); socket = new Socket(destip,PORT); BufferedReader br = getReader(socket); PrintWriter pw = getWriter(socket); sendAndReceive(null,br,pw); if(sendResult.equals(FAILED)){ JOptionPane.showMessageDialog(MainUI.jFrame, "连接邮件服务器失败! ",nul

23、l, 0);return;} sendAndReceive(smtp.getMail(), br, pw); if(sendResult.equals(FAILED)){return;} sendAndReceive(smtp.getRept(), br, pw); if(sendResult.equals(FAILED)){return;} sendAndReceive(smtp.getData(), br, pw); if(sendResult.equals(FAILED)){return;} sendAndReceive(message

24、getFrom()+"\r\n"+message.getTo()+"\r\n"+message.getData(), br, pw); if(sendResult.equals(FAILED)){ JOptionPane.showMessageDialog(MainUI.jFrame, "邮件发送失败! ",null, 0);return;} sendAndReceive(smtp.getQuit(), br, pw); if(sendResult.equals(FAILED)){ JOptionPane.showMessageDialog(Ma

25、inUI.jFrame, "邮件发送成功! ",null, 0);return;} 图4.5 邮件发送过程 其中邮件发送过程分为如下几步: 1、 发送HELO命令, 并等到回复, 若回复争取, 则发送下一个命令, 若失败停止发送, 下面步骤皆是如此处理; 2、 发送EHLO命令; 3、 发送 auth login命令, 进行用户名和密码的鉴权请求; 4、 发送BASE64加密后的用户名; 5、 发送BASE6加密后的密码; 6、 若鉴权成功发送mail from命令; 7、 发送r

26、cpt to命令, 告知服务器邮件的接收方; 8、 发送data命令, 告知服务器接下来要发送邮件内容; 9、 在本设计中邮件内容被封装到一个Message模型中, 在本步中, 发送的是该模型的一个对象; 10、 在收到成功响应后, 发送”.”结束发送过程。 4.6 邮件接收流程 邮件接收流程是该设计的基本功能之一, 其使用的仍是SMTP协议流程, 在本设计中, 针对收到的邮件会将其封装到一个未读邮件的对象中去, 具体流程如图4.6所示, 其部分代码如下所示: 图4.6 邮件接收流程 while((request = br.readLine())!=null){

27、 if(request.contains("mail from:") && request.contains("@") && request.contains(".com") || request.contains(".cn")){ isMAILFROM = true; pw.println("250 sender ok"); continue; }else if(!isMAILFROM){ pw.println("500 command not recognized"); continue;} if(requ

28、est.contains("rcpt to:") && request.contains("@") && request.contains(".com") || request.contains(".cn")){ isRCPTTO = true; pw.println("250 recipient ok"); continue; }else if(!isRCPTTO){ pw.println("500 command not recognized"); continue;} if(request.contains("

29、data")){ isDATA = true; pw.println("354 enter content"); continue; }else if(!isDATA){ pw.println("500 command not recognized"); continue;} if(isDATA){ stringBuffer.append(request); stringBuffer.append("."); if(stringBuffer.toString().endsWith("..")){

30、 isMessage = true; content = stringBuffer.toString().substring(0, stringBuffer.toString().length()-1); System.out.println("content is "+content); pw.println("250 ok");}} if(request.contains("quit")){ pw.println("221 "+getEmailNameInfo.getHostname(e_mailConfig.getEmailC

31、FG().getEmailname()));return;}} private PrintWriter getWriter(Socket socket) throws IOException { // TODO Auto-generated method stub OutputStream out = socket.getOutputStream(); return new PrintWriter(out, true); } private BufferedReader getReader(Socket socket) { InputStr

32、eam is = null; try { is = socket.getInputStream(); } catch (IOException e) { e.printStackTrace();} BufferedReader br = new BufferedReader(new InputStreamReader(is)); return br; } 4.7 用户鉴权和客户端配置信息流程 该模块是在主界面加载前, 针对不同的用户, 加载相应的设置, 其包含保存用户

33、信息流程, 更改用户信息流程, 保存邮箱账户信息流程, 更改邮箱账户信息流程, 获取收到的邮件信息流程, 设置邮件是否已读流程。其中这三组流程处理方式一致, 获取和更改用户信息流程如图4.7, 4.8所示, 部分处理代码如下。 4.7获取用户信息流程 4.8 更改用户信息流程图 protected User getUserProfile(){ User user = new User(); SAXBuilder builder =

34、 new SAXBuilder(); try {Document doc = builder.build(USERFILE); Element rootElement = doc.getRootElement(); String username = rootElement.getChild(USERNAME).getText(); user.setUsername(username); String password = rootElement.getChild(PWD).getText(); user.setPassword(passwo

35、rd); boolean login = new Boolean(rootElement.getChild(LOGIN).getText()); user.setLogin(login);} catch(Exception e){ e.printStackTrace();} return user;} protected void setUserProfile(User user){ SAXBuilder builder = new SAXBuilder(); try{ Document doc = builder.bu

36、ild(USERFILE); Element rootElement = doc.getRootElement(); rootElement.getChild(USERNAME).setText(user.getUsername()); rootElement.getChild(PWD).setText(user.getPassword()); rootElement.getChild(LOGIN).setText(String.valueOf(user.isLogin())); XMLOutputter fmt=new XMLOutputter();

37、 FileWriter writer=new FileWriter(USERFILE); org.jdom.output.Format f = org.jdom.output.Format.getPrettyFormat(); fmt.setFormat(f); fmt.output(doc, writer); writer.close();} catch(Exception e){ e.printStackTrace();}} 4.8 阅读邮件流程 邮件阅读是邮件系统的最基本功能之一, 在本设计中

38、 邮件阅读流程如图4.9所示, 其代码如下 String isread = String.valueOf(array.get(index-1).isRead()); String name = array.get(index-1).getName(); int length = name.length(); int sindex = name.indexOf("_"); user = name.substring(0, sindex); String rest = name.substring(sindex+1, length); int i

39、ndex2 = rest.indexOf("_"); topic = rest.substring(0,index2); File file = new File(name+".txt"); in = new DataInputStream(new BufferedInputStream(new FileInputStream(file))); StringBuffer sb = new StringBuffer(); String string = null; while((string=in.readLine())!=null){

40、sb.append(string); } string = sb.toString(); BaseMain.setUnReadMail(user); showcontent(string); 图 4.9 邮件阅读流程 第5章 系统功能测试 5.1 登陆界面及邮箱账户设置界面测试 界面模块主要使用java swing技术完成, 其中包括主界面, 登陆界面, 设置账户界面, 阅读邮件界面, 发送邮件界面等几部分。 登陆选择指定邮件用户和密码。在本系统中提供了一个用户名和密码均为admin的默认用户进行登录

41、使用默认用户登录后, 用户能够更改登录账户。必须使用正确的用户名和密码才能够登录, 不然无法进入客户端。登录界面的效果图: 图5.1 登录界面 设置账户界面用来标识对公网的客户端身份, 只有设置正确存在的公网账户才能够使用本客户端对外发送邮件。设置账户界面效果图: 图5.2 邮箱账户设置界面 5.2 主界面测试 主界面是客户端与用户交互的直接体现, 它调用相应的界面和方法响应用户的操作, 主界面见图5.3; 图5.3 主界面 5.3 发送界面与收件箱界面测试 发送界面是发送邮件时的操作控制界面, 主要有设置接收人, 抄送, 密送,

42、 邮件主题, 邮件内容等5部分组成, 发送界面见图5.4 图5.4 发送邮件界面 收件箱界面是登陆客户端时由邮箱配置方法将收到邮件信息设置在它下面, 在主界面选择它后, 即可查看客户端收到的邮件信息情况, 收件箱界面见图5.5; 图5.5 收件箱界面 5.4 阅读邮件界面测试 阅读邮件界面是根据在收件箱界面的列表, 选择一条未读邮件后, 进行未读邮件内容的显示, 阅读邮件界面见图5.6; 图5.6 阅读邮件界面 第6章 结论与展望 6.1 结论 系统主要实施对于邮件系统中邮件及邮件夹的管理。 系统主要实现了对于邮件的发送、 接收、 删除、 邮件夹的管理等功能

43、 6.2 展望 系统开发是需要一个不断完善的过程, 经过不断测试, 检测出更多问题, 并不断完善。然而由于时间的缘故, 并不能进行逐步测试, 因此依然有很多地方需要改进。现在归纳如下:有时候邮件太长, 或者是表格、 Word文档, 一正文方式发送不太方便, 这样能够引用一个附件功能。及那个这些表格或Word文档以附件的形式上传, 然后发送。在扩充一下, 提供能够发送多个邮件的功能。但本系统未实现此功能。 致 谢 感谢我的指导老师彭晓天老师, 本次论文的每个细节和每个数据, 都离不开她的细心指导。无论在理论上还是在实践中, 彭老师

44、都给了我很大的帮助, 使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助。 另外, 在系统开发过程中同学也给予我很大的帮助, 帮助解决了不少的难点, 使得系统能及时开发完成, 这里一并表示感谢。  在论文即将完成之际, 我的心情无法平静, 从开始进入课题到论文的顺利完成, 有许多可敬的师长、 同学、 朋友给了我无私的帮助, 在这里请接受我诚挚的谢意! 参考文献 [1]张尧学等编著, 计算机网络与Internet教程( 第三版) .北京: 清华大学出版社, [2]Computer Networks, Ve

45、rsion Prentice Hall International,Inc.1998( 《计算机网络》第四版, 清华大学出版社影印版, ) 。 [3]Internetworking with TCP/IP( Vol.1, Vol.2, Vol.3) Prentice Hall International,Inc.1995( 《TCP/IP网络互连技术》卷1、 卷2、 卷3, 清华大学出版社影印版, 1998) 。 [4]谢希仁主编,《计算机网络》(第三版), 北京: 电子工业出版社, 。 附 录 1、 主界面主要代码

46、public class MainUI extends BaseMain{ @SuppressWarnings("unused") private static String title; private User user; private boolean isFirstLogin = false; public static JFrame jFrame; public static final String WELCOME_WORD01 = "欢 迎 使 用 邮 件 客 户 端",WELCOME_WORD02 = "作

47、 者 : 党 西 娇",WELCOME_WORD03 = "班 级 : 通 信 901"; public static final String NEW = "写 信",RECEIVED = "收 信",RECBOX = "收件箱",DRAFT = "草 稿",SET = "设 置"; public static final int BUTTON_NUMBER = 20,BUTTON_WIDTH = 30,BUTTON_HEIGHT = 20,BUTTON_START_POINT = 0; public static

48、int DRAFT_EMAIL = 0; public static JButton newButton,recButton,recboxButton, contactButton,unreadButton,raftButton, sendButton,deleteButton, rabishboxButton,setButton; public static JTabbedPane tab; public static JPanel buttonPanel,sendPanel; public Color[] colorStyle = new Color[]{Color.B

49、LACK,Color.BLUE,Color.CYAN,Color.DARK_GRAY, Color.GRAY,Color.GREEN,Color.LIGHT_GRAY,Color.MAGENTA,Color.ORANGE,Color.PINK,Color.YELLOW,Color.RED}; public JLabel start01,start02,start03; public JPanel labelPanel; public static final String DEFAULT_FONT = "宋体"; public static int UNREADNUMBER

50、 = getUnreadCounter(BaseMain.getUnReadMailNumber()); public static int DELETEDNUMBER = 1; private static boolean flag = false; private JPanel tempPanel; public MainUI(String title){ this.title = title; } public void start(){ initButton(); initTable(); user = getUserProfile

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服