计算机科学与技术学院课程设计(论文)报告姓名:学号:专业:班级:设计题目:电子邮件管理软件2011年6月25 日1 绪论电子邮件翻译自英文的E-mail,它表示通过电子通讯系统进行信件的书写、发送和接收。
30多年前,人们发明了电子邮件这种的便捷的信息传递方式,这是人类通信史上的一次革命。
电子邮件的兴起是在20世纪80年代,70年代的沉寂主要是因为当时使用Arpanet网络的人太少,网络的速度也仅为目前56Kbps标准速度的二十分之一。
受网络速度的限制,那是的用户只能发送些简单的信息,根本无法像现在这样发送大量照片;到80年代中期,个人电脑兴起。
电子邮件开始在电脑迷以及大学生中广泛传播起来;到90年代中期,随着计算机技术的发展,出现了功能强大的Internet。
在Internet众多的服务功能中,电子邮件E-mail就是其强大功能中的一个。
自此,电子邮件被广泛使用。
今天使用最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。
通过电子邮件系统,您可以用非常低廉的价格,已非常快捷的方式,与世界上任何一个角落的用户联系,这些电子邮件可以是文字、图像、声音等各种方式。
同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。
这是任何传统的方式所无法相比的、正是由于电子邮件的使用简易、投递迅速、收费低廉、易于保存、全球畅通无阻,是的电子邮件被广泛使用。
它使人们的交流方式得到了极大地改变。
21 世纪是网络飞速发展的时代,电子邮件已经成为热门话题。
随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。
作为网络世界信息传输的支撑点的电子邮件,更是人们关注的焦点。
通过电子邮件无论朋友在何方,都可以通过电子邮件方便的联系交流,电子邮件开辟网络世界里的一片天地。
电脑的日益普及,大大改变了各行各业的工作方式和人们的生活方式,越来越多的人开始进入到电脑的世界。
电脑的普及化,进而促进了互联网的进一步的发展和完善,而作为互联网上基本的存在电子邮件系统给予了上网的电脑用户另一个别样的世界2 工具技术介绍本软件设计开发是采用Java语言实现的一个Email客户端,主要用到Java GUI和Java mail工具包。
邮件管理所采用的协议SMTP、POP3、IMAP。
在这里主要介绍Java mail 及其各个协议。
2.1 JavaMail图1 基于JavaMail API 的应用程序体系结构图JavaMail 是Sun 公司为J ava 开发人员提供的公共应用程序接口框架,提供了一个与平台无关、协议独立的框架,预置了一些最常用的邮件传送协议的实现方法,通过一组API 来模拟邮件系统,提供E-Mail的发送和接收服务. 它采用接口与实现相分离,支持存取方式,消息格式、消息传送协议不同的邮件消息系统,可以简便地为应用程序增加E2mail 支持,广泛应用于构建邮件和消息应用系统[1 ] .JavaMail API 提供了几个抽象类,这些抽象类定义了组成邮件系统对象.同时这些API 能够被扩展来提供新的协议和增加功能(见图1) . 此外API 还提供了具体的子类用于应用程序的开发. 最新的JavaMail已经能够完全支持POP3 、IMAP 和STMP 等协议。
2.2 SMTP 协议SMTP:简单邮件传输协议,是用于传送电子邮件的机制。
在JavaMail API 环境中。
基于JavaMail的程序将与公司或Internet服务提供商(ISP)的SMTP服务器通信。
该SMTP服务器将会把消息转发给用作接收消息的SMTP服务器.最后用户可通过POP或IMAP协议获取该消息。
由于支持身份验证,所以不需要SMTP服务器是一种开放的转发器.但需要确保SMTP服务器配置正确。
Java_Mail API中没有集成用于处理诸如配置服务器以转发消息或添加,删除电子邮件帐户这一类任务的功能 .SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。
响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。
SMTP要经过建立连接、传送邮件和释放连接3个阶段。
具体为:(1)建立TCP连接。
(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。
(3)服务器端以OK作为响应,表示准备接收。
(4)客户端发送RCPT命令。
(5)服务器端表示是否愿意为收件人接收邮件。
(6)协商结束,发送邮件,用命令DATA发送输入内容。
(7)结束此次发送,用QUIT命令退出。
SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。
电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。
SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。
2.3 POP协议POP:邮局协议。
当前的版本为3,也称作POP3。
POP是Internet上的大多数人用来接收邮件的机制。
它为每个用户的每个邮箱定义支持,这是它所做的全部工作,也是大多数问题的根源。
在使用POP协议时,人们熟悉的很多功能,如:查看收到了多少新邮件消息的功能,POP根本不支持。
这些功能都内置到诸如Eudora或Microsoft Outlook之类的邮件程序中.能为用户记住接收的上一封邮件,以及计算有多少新邮件这类信息。
因此.使用JavaMail API时,如果想获取这类信息。
将需要由自己进行计算。
2.4 IMAP协议IMAP:用于接收消息的更加高级的协议。
它是在RFC206o中定义的。
IMAP 的含义是”Internet消息访问协议”.当前版本是第4版,也称作IMAP4。
使用IM.M~时。
您的邮件服务器必须支持该协议。
不能只是简单地把程序转变为支持IMAP.而不是支持POP,就指望能支持IMAP中的一切。
假定您的邮件服务器支持IMAP。
那么基于Javaldail的程序就可利用在服务器上拥有多个文件夹的用户.并且这些文件夹可以被多个用户共享的功能。
3 需求分析3.1 系统功能需求分析电子邮件系统实现的功能包括新建用户账号,接收简单邮件或带附件的邮件,发送简单邮件或带附件的邮件,电子邮件的编写,电子邮件的管理(查看邮件信息、转发邮件、存储邮件、删除邮件等),通讯薄管理。
为了使用通讯薄,于是添加了对用户资料的增加、修改、取消操作。
3.1.1 软件的总体架构3.1.2 系统功能系统功能图3.1.3 系统总体用例图系统总体用例图3.2 数据库数据分析在对系统进行系统需求分析的基础上,可以得到系统在处理数据时会用到下面所示的数据线和数据结构1、用户信息;账号名称、用户名、密码、电子邮箱地址、SMIP服务器、SMPT端口号、POP3服务器、POP 3端口号。
2、通讯薄信息;姓名、邮箱地址、电话号码、QQ号、手机号、通信地址。
3.3 性能需求分析3.3.1 稳定性在一个电子邮件系统中,系统在接收、发送数据时都要对数据进行处理。
因此系统故障有可能给用户带来一定的损失,这就要求系统具有高度的稳定性。
而针对本系统软件,对于我们来说提高稳定性就要熟练的掌握邮件协议的使用,提高自己的编程能力,加强对JavaMail的学习。
以此保证系统的稳定运行。
3.3.2 安全性电子邮件的安全性十分关键,必须保证邮件信息不会遭受来自非法访问和恶意破坏。
电子邮件安全系统应当保证邮件信息在发送与存储时的保密。
允许指定用户访问自己的邮件。
3.3.3 兼容性软件的兼容性是衡量软件好坏的一个重要指标,兼容性指软件可从一环境转移到另一环境的能力相关的属性。
针对本系统软件的设计,要求软件能够兼容Windows2000/XP/2007等系统,保证本软件系统能够顺利运行。
3.3.3 可靠性软件的可靠性是软件质量的一个重要指标,也是用户需求中一项重要内容。
针对本软件,要求对可能发生的失效进行分析,采取必要的措施避免将引起失效的缺陷引入软件,为失效纠正措施制定提供依据,同时为避免类似问题的发生提供借鉴。
在软件设计中应用各种方法和技术,使程序设计在兼顾用户的各种需求时,全面满足软件的可靠性要求。
4 系统的分析与设计4.1 系统流程设计邮件客户端最重要的两个功能就是接收邮件和发送邮件爱你,其中接收邮件的流程图如图1所示,从流程图可以看出,接收邮件时首先创建一个TCP连接到POP3服务器。
如果连接不成功就退出执行,连接成功后再发送用户名和密码命令进行身份认证。
身份验证通过后检查接收的邮件,当邮件数大于0,逐个接收邮件。
接收邮件完毕后,检查账号中是否保留服务器上邮件的设置,如果是,就不做任何处理,否则从服务器上删除已接收的邮件。
最后关闭连接。
完成邮件接收。
图表1接收邮件流程图发送邮件流程图,先检查“发件箱”目录中是否有待发邮件,如果有就逐个发送这些邮件,流程图如图2所示。
其发送过程,首先需要创建一个TCP连接,连接到SMTP服务器,如果连接不成功就退出程序。
连接成功后发送USER和PASS 命令进行身份验证。
身份验证通过后发送邮件,如果发送成功,关闭与服务器的连接,更新数据库,完成邮件发送任务。
4.2 系统模块设计从模拟用户的角度进行分析,对于一个邮件的客户端,首先要确定其功能是什么,也就是用户想要系统做什么工作。
有以上需求分析可确定需要建立的模块有;用户登录、邮件管理等(将收邮件和发送邮件归入此模块)。
根据以上分析描述,基本确定了邮件客户段应该要包括的模块,下面详细地来分析每一个模块所要实现的功能。
1.用户登录模块该模块的界面就是登录界面了,该模块是已注册用户进入邮件客户端的唯一入口。
在这里要求用户输入登录ID和密码,输入完成后直接按回车键或点击“登录“按钮来提交登录信息。
对提交来的用户名进行校验,如果校验不通过,则弹出对话框提示用户输入的用户名或者密码有误;如果校验通过,则在会话中保存用户的登录ID,进入邮件客户端的主界面,并在主界面上提供退出系统的入口。
2.邮件管理模块该模块主要包括以下几个功能:1.提供撰写并发送邮件的邮件编辑页面,在改界面上,用户需要填写收件人的邮件地址、邮件主题及内容,可以填写要抄送或者密送的邮件地址,也可以上传一个或者多个邮件附件,可以进行发送邮件或者保存邮件为草稿的操作,可以在发送邮件的同时把邮件保存为已发送邮件。
2.提供一个收件箱列表,该列表以粗体字体显示未读邮件,可以让用户选择只列出所有邮件、未读邮件或者已读邮件。
在该列表上用户可以选择多个邮件,可以进行删除多个邮件的操作,在列表上对于每个邮件提供查看邮件详细内容的连接。
3.提供查看邮件详细内容的界面,在该界面上显示邮件的发件人、主题、邮件的正文及附件文件名、文件大小并提供下载连接。
在该界面上户可以进行删除邮件,写回复邮件或者返回收件箱邮件列表的操作。