简单邮件客户端设计要点_第1页
简单邮件客户端设计要点_第2页
简单邮件客户端设计要点_第3页
简单邮件客户端设计要点_第4页
简单邮件客户端设计要点_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算网络课程设计学院计算机学院专业网络工程年级班别2012级(3)班 _学号 3112006443学生姓名王彦德课题 简单的电子邮件客户端指导教师 _ 何翠红成 绩计算机网络课程设计任务书设计题目利用MyEclipse + SWT-Designer实现电子邮件客户端已知技术参 数和设计要 求1. 设计图形用户接口 (GUI)的电子邮件客户端,与收件人SMTP服务器交互,实现邮件的发送。2. 界面设计中至少包含用户输入收件人地址、邮件主题、发件人地址、文本电子邮件内容编辑等的编辑框,以及发送邮件(Send)、清除邮件内容(Clear)、退出客户端(Exit)等的命令按钮等。3. 如果可能,实现附

2、件发送,完成该项功能将得到加分。设计内容与 步骤1阅读 RFC821-Simple Mail Transfer Protocol,熟悉 SMTP 协议;2. 熟悉Java Socket实现网络通信的基本机制;3. 熟悉TCP Socket程序设计方法;4. 熟悉MyEclipse+SWT-Designer的GUI应用程序开发环境的安装、使用;5. 电子邮件客户端用户界面设计;6. 电子邮件客户端功能实现;7课程设计任务说明书。设计工作计划与进度安排1.SMTP4 小时2. Java TCP Socket程序设计基础2小时3. MyEclipse + SWT-Designer环境安装与使用8小时

3、4. 电子邮件客户端 GUI界面设计4小时5. 电子邮件客户端功能实现12小时6. 课程设计说明书10小时目录简单邮件客户端设计说明书 1一前言1二需求分析12.1功能需求12.2开发环境工具12.3所需要的知识2三概要设计23.1邮件系统各功能概述 23.1.1 JavaMail 简介23.1.2设计目标33.1.3系统功能概述33.2邮件管理系统总体设计方案 43.2.1系统体系结构 43.2.2 功能模块 43.3系统开发的技术难点和解决方案 53.3.1 MIME Messsage的解析53.3.2邮件发送53.3.3系统性能问题 63.4系统特点 73.5系统具体设计73.6关键代码

4、113.7结束语11简单邮件客户端设计说明书、八、-一前言随着互联网技术及网络办公化的发展,电子邮件成为人们主要的通信方式之一。越来越多的人开始使用它。 而且用它的人数势必会继续增加。虽然,现在已经有很多的邮件收发软件例如著名的FoxMail ,但是对于大多数的非专业的人来说它还是有点难度。因此,我们 所设计的基于JavaMail的邮件收发系统就利用 JavaMail开发包的高级应用和E-Mail的相关协议开发出这个功能相对简单,但是实用、方便、快捷的邮件收发系统。主要用于帮助用户将邮件发送给 SMTF服艮务器和从POP3邮件服务器读取用户的电子邮件。它集邮件的撰写、 发送和接收功能与一体。并

5、且支持附件的发送和接收以及其它一些附加功能的实现。虽然它没有FoxMail那么强大的功能,但是它容易掌握和使用。整个系统功能流畅,从操作简便、 界面友好、灵活实用的要求出发,使用户之间的交流能够更加地方便和快捷。本人结合SMTP以及POP3协议的实现原理、相关 JavaMail API帮助文档以及相关参考 书,实现了一个工作在 PC下的邮箱客户端程序,该程序基本上实现了一个邮箱所对应的所 有功能。二需求分析2.1功能需求(1)开发一个JavaMail API下的邮箱客户端,实现邮件的发送、接收以及。(2) 通过输入服务器地址、用户名、密码,可以实现远程FTP服务器登录。(3) 提供本地文件和文

6、件夹的上传功能,对FTP主机文件进行下载和删除。(4)提供对本地目录的读取与返回,能够列出文件和文件夹。(5) FTP提供两种工作模式的选择,Port模式(主动模式)和 Passive模式(被动模 式)。2.2开发环境工具(1) 使用编程工具:MyEclipseSWT-Desig ner(2)使用的语言:Java(3)开发平台: Mac OS X 所需要的知识(1) 计算机网络的基本知识(2) 了解SMTP协议以及POP3协议基本实现原理(3) 使用 Windows下的Eclipse编译器的使用方法(4) 熟悉邮件的各项功能。三概要设计3.1邮件系统各功能概述3.1.1 Ja

7、vaMail 简介JavaMail API是Java EE的一部分,是 Java SE的可选组件。该组件提供了一个平台无关、协议独立的框架,预置了一些最常用的邮件传送协议的实现方法,通过一组API来模拟邮件系统。提供 Email的发送和接收服务。它借鉴了IMAP MAPk CMC等消息系统API的设计,采用面向对象的思想将接2008年4月18日收到接口与实现相分离,支持存取方式、消息格式、消息传送协议不同的邮件消息系统,可以简便的为应用程序增加Email支持,广泛应用于构件邮件和消息应用系统JavaMail API封装了电子邮件功能中:邮件对象、发送、身份认证、接收等功能。其核心类有:Sess

8、ion、Authenticator Address MessageTran sport、Store、Folder等。其中Session是邮件操作的接口,用于建立了基本的邮件 会话;Authenticator类提供访问邮件服务器所需的认证信息;Message描述基本的邮件消息,是收发邮件的操作单位;Tran sport是发送邮件时所用的协议,通常是 SMTP Store模拟了消息数据库及其内部存储消息的目录的访问协议;Folder用于描述消息数据库中的目录结构。一个 Session会有多个 Trans port,每个Store包含一系列的 Folder和Message,每个Folder又包含一系

9、列的 Folder和Message。借助这些类,就可以构建各种典型的邮件应用。JavaMail的最新实现是1. 4版本,可以支持 POP3 IMAP4 SMTP协议。由于 JavaMail 还需要 JavaBeans Activation Framework(JAF)框架的支持,3.1.2设计目标公用邮箱是和外单位交互的主要渠道,用户获取和提交一些重要数据和文件,也是与本单位其它部门进行业务的信息交换的重要渠道。公用邮箱不仅有13常办公相关的各类邮件,还有很多其它种类的邮件。 此外,一些与办公相关的邮件还会发送到工作人员的个人邮箱中。 工作人员使用Fox. mail或其它邮件客户端将公用邮箱中

10、的邮件从服务器下载至本地,然后进行处理。这样的工作模式存在的缺点有:邮箱中邮件太多,很难找到与工作相关的邮件, 工作效率低下,存在潜在处理风险;工作人员都利用邮件客户端存储和处理邮件,造成资源浪费,且无法及时得悉邮件的处理情况,难以落实责任;难以对办公相关的邮件进行统一归档和备份,并提供检索、统计、数据分析等服务;邮件帐号分散管理,带来潜在的信息安全 隐患。本系统的设计旨在解决这些问题,为工作人员提供一个基于 Web的简洁、易用、安全可靠、功能完备的办公邮件处理平台。3.1.3系统功能概述(1) 邮件自动获取与过滤系统每天实时或者在固定的时间,统一收集多个外部邮件服务上多个邮件帐号的新邮件后汇

11、总在一起,并根据发送地址和过滤规则对邮件进行过滤,提取服务器上的有效邮件,通过人工干预或者自动化的机制将邮件基本信息存储在数据库中,附件存人文件服务器, 对完全重复的邮件通过比对后只保留一份。(2) 邮件分类对过滤后的有效邮件,按照制定好的分类规则,根据邮件主题、发件人信息、附件属性 及关键词对邮件及其附件进行归类,并提供自动归类和人工干预后确定邮件类别两种灵活的类别确认机制。(3) 邮件提醒与处理在邮件归类后,对于新邮件,系统通过与短信发送平台的接口,将发件人、发送时间、 主题、优先级等信息以短信的形式发送给相应邮件类别的处理者。邮件处理者通过网页登陆系统,可以像使用 Web邮箱那样,方便快

12、捷的查阅和处理只属于自己需要处理的那些邮件。(4) 邮件管理系统向用户提供邮件检索、 删除、调整分类等功能。可以统一直观的对:信息过滤情况、 信息分类跟踪、处理情况、审阅结果、处理者信息、反馈情况等进行展示。还可以对邮件进行统计,生成月度及年度邮件统计报表。普通用户只能管理与自己工作相关的邮件,系统管理员可以管理所有邮件。(5) 邮件帐号设定及过滤和分类规则定义系统管理员可根据需求设定多个邮件帐号,将不同邮箱的邮件汇总在一起。过滤规则是系统选择接收邮件的依据,目前状况下,对邮件地址和发送时间进行过滤已能满足需求。分类规则是对邮件进行分类的依据,对每个公司或单位,管理员可以根据业务类型定义邮件及

13、附件类别,然后指定该类别邮件的关键词、特征及处理者。3.2邮件管理系统总体设计方案3.2.1系统体系结构系统基于B/ S结构,采用 MVC(Mode1 View . Controller) 模式,体系结构系统采用三层结构:第一层是客户端层,用户通过IE、Firefox等浏览器与系统交互,发起浏览、检索、处理邮件、系统配置与管理等请求,并展示处理结果。第二层为服务器层,可以分为两个功能相对独立的部分,一个是Web服务器,用于响应和处理客户端请求,通过请求处理程序与后台数据库交互,返回处理结果给浏览器;一个是邮件处理部分,通过 JavaMail API与邮件服务器交互,发送和接收邮件,并对有效邮件

14、进 行解析与分类,将结果存放在数据库和文件系统中,然后借助短信发送平台的接口通知用户处理邮件。第三层为数据层,包括:用于存储系统信息、邮件信息的数据库服务器,存储邮件附件的文件服务器。为了提高系统可扩展性和满足复杂应用逻辑的需求,在系统第二层的 Web应用中,是 MVC莫式的一种实现。3.2.2功能模块系统涵盖了运行中心日常邮件管理与维护的所有功能,共分为六个模块:邮件获取模块、邮件发送模块、邮件分类模块、邮件处理模块、邮件管理模块、联系人模块。这些模块功能 相对独立,具有高内聚、低耦合的特点,每个模块都有定义良好的接口,可以扩展和增加复 杂的应用逻辑。其中,邮件发送模块可以发送文字,图片,附

15、件,并可以同时发送给不同的邮箱。其中 可编辑发送文字的大小格式颜色等。邮件获取模块可以获取邮件,在收件箱可以看到邮件列表,刷新可见新邮件。由M牛分类模块是将邮件客户端分为发信箱,收信箱,已发送,已删除邮件管理模块是可对邮件删除,回复,彻底删除,对已删除的邮件可以恢复, 刷新收信箱。邮件处理模块是对邮件的查看,下载附件,回复。联系人模块是可以添加,删除联系人,发邮件的时候可以直接点击已添加过的联系人进行发送。3.3系统开发的技术难点和解决方案3.3.1 MIME Messsage 的解析MIME(Multipurpose In ternet Mail Exte nsio n)协议是目前应用最广泛

16、的邮件协议,用 于定义邮件的格式,它可以包含文本、图像、音频、视频以及其它应用程序专用的数据。邮件的解析实际上可以就是解析MIME消息的过程,是邮件过滤、分类、管理等工作的前提。通常情况下,一个MIME消息由消息头(Headers)和消息体(Content) 组成。消息头包括:发送者、接收者、发送时间、主题、优先级、邮件内容类型、MIME版本号等信息。消息体为邮件的内容,它可以为简单的文本,也可以是包含多个分段(Part)的多重消息(Muhipart),而其中每个分段的消息都有自己的消息头和消息体。对于不带附件的简单邮件,其消息体的内容类型是纯文本,text/plain 或者text/html

17、等。对于带附件或者包含多种内容格式的邮件,其消息体为muhipart类型,通常为:muhipart/mixed 、muhipart/related 或 multipart/alternative.比如:邮件正文、附件、HTML言件等。因此,邮件消息的解析过程实际上是一个后序周游整棵MIME消息树的过程。消息的解析需要递归访问消息中的每个消息体,也就是树的叶结点,从中获取相关信息,并生成一个邮件对象, 用于随后的邮件分类和写人数据库操作。在解析时,需要将发送者、接收者、主题、发送时 间、正文等有用信息存储在定义好的邮件对象中,将附件和HTML格式的信件存储在文件系统,并将附件的文件名和文件路径存

18、储在邮件对象中。3.3.2邮件发送Email的发送实际上就是构造一个MIME消息的过程。JavaMail API提供了相应的接口用于构造一个邮件消息,但是相对较复杂。本系统采用A pache的开源工具包 CommonsEmail来实现邮件发送。Commons Email构建于JavaMail API 上,对JavaMail进行了再圭寸装,提供了极为简便的借口用于通过Java程序发送Email。它提供的主要类有:SimpleEmail(用于发送简单的文本类型Email)、MultiPartEmail(用于发送带附件的Email)、HtmlEmail(用于发送 Html 格式的邮件)、EmailA

19、ttachment(描述 Email 的附件)。借助Commo ns Email工具包发送一个简单 Email只需要创建 SimpleEmail对象,设置 SMTF服务器、认证信息、发送者、接收者、主题、正文,然后发送即可。要发送一个带附 件的邮件,只需要构造一个 MuhiPartEmail对象,设置和简单Email 一样的属性,然后构造 附件对象并将之附加在MuhiPartEmail中即可。不难看出采用了Commo ns Email工具包后,邮件的发送十分简洁,只需要构建相应的附件和邮件内容即可,而且工具包还支持直接用网络上的文件作为附件内容。333系统性能问题邮件服务器上可能会有很多封邮件

20、,如何判断一封邮件是否被处理过,并对未处理的邮件消息进行过滤与分类是系统的一个性能瓶颈。系统基于Web技术构建客户端,而Web应用程序不可避免的会有频繁的数据库操作,建立数据库连接是相当耗费资源和时间的操作。在JSP应用中若直接采用 JDBC接口访问数据库,必然会频繁建立和关闭数据库连接,从而导 致服务器性能下降。为保证系统高效运行,采用如下的策略来提高整体性能:(1)多线程技术每个Email消息的处理是相对独立的过程,因而采用多线程技术同时处理多封邮件是提高性能的最简单可行的做法。系统共使用8个线程处理邮件消息,根据邮件消息的总数,就能计算出每个线程所需要处理的消息数为N=M/8(表示取上整

21、)。其中第k个线程处理邮件消息队列中第 8i+k(i=0 , 1, ?, N一 1)个消息,以倒序的方式处理可以使得消息相对均匀的分配给处理线程,并保证有效消息先被处理。(2)灵活高效的过滤机制每个Email都会对应一个固定的 Message ID和SentDate,在解析时很容易获取。系 统会对每个帐号设定邮件开始接收13期(ReceiveStartDate),在处理E mail消息时,先根据SentDate来判断,若在该13期前,则不予以处理。每次接收完成后,更新 ReceiveStartDate 至当前13期。为了避免重新设定Re ceiveStartDate或者重新执行接收任务时,对已

22、经处理过的有效邮件重复处理,系统提供两种机制,一种是不在服务器上保留副本,这样每次获取的必然是新邮件;一种是保留副本,但利用Property文件记录每个符合要求的消息的处理情况,以便快速判断邮件消息是否被处理过。(3)采用数据库连接池技术连接池会在初始化时保持一定数量的数据库连接,应用程序在操作数据库时,从连接池中获取一个连接,完成操作后释放连接,这样大大提高了系统性能。 保存邮件信息至数据库时,系统采用 Apache DBCFComp onent来建立数据库连接池。在系统的Web应用部分,通过配置Tomcat数据源来建立数据库连接池。3.4系统特点系统借助JavaMail API实现了一个简

23、单的基于 Web的邮件客户端,可以将不同邮件服 务器的有效邮件聚合在一起进行统一归档管理,并提供统一、友好的界面以方便相关人员处理邮件。系统在自动化的基础上提供选择性干预的机制,以应对一些特殊情况。系统使用 Java语言开发,基于 B/S结构,采用MVC莫式,系统层次清晰,结构合理。在后台处理程 序和应用逻辑的设计中,采用面向对象的设计方法和分层设计思想,将抽象和实现相分离, 具有很好的可扩展性好。 为了提高系统性能,采用了多线程技术和连接池技术,系统执行效率高。系统支持自定义简单的过滤规则、邮件类别、分类规则,并能很容易的进行扩展以支持复杂的自动化分类技术。3.5系统具体设计登陆界面功能目录

24、pGp.qqxom工了专右5 5 0立些dq qrc oiriPOP3服穷器:超篇名秤:强码:C登录挣送09003502M主通:文件(F)邮件(M)电子邮件系统,发件夹 收件夹 已发送邮件 f已删除邮件发送邮件邮件已发送收件人killes527 kino4型Abadi MT匚阿虫旺閔Extra Bold TI 宇号 T 甸鱼:_* 3* * L 一了4 X 、Z區系人匸)D9GD35O2Qkille&527163AQm0900350206cia=7邮件已发送底功!(好)0900350206对方收到邮件并回复邮件后刷新收信箱发件人:379655929 379655929: 晦间:2012年03月11冃20;4 (早匪R 临保人:killess27163.cam ;收信箱列表,收到对方回复的新邮件小c厂I收件箱正在查收邮件,请稍后a C C收杵絹发件人主題接收尉间肘件读取邮件内容killess

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论