JavaMail技术完成邮件功能的设计与开发.docx
- 文档编号:4005422
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:26
- 大小:239.41KB
JavaMail技术完成邮件功能的设计与开发.docx
《JavaMail技术完成邮件功能的设计与开发.docx》由会员分享,可在线阅读,更多相关《JavaMail技术完成邮件功能的设计与开发.docx(26页珍藏版)》请在冰点文库上搜索。
JavaMail技术完成邮件功能的设计与开发
邢台学院
本科学年论文(设计)
题目JavaMail技术完成邮件功能的设计与开发
计算机科学学院计算机科学与技术专业09级计本二班
学号:
姓名:
王伟
指导教师:
成绩:
_____________
完成时间:
2013年4月
目录
一、绪论1
(一)电子邮件介绍1
(二)基于javamail的邮件收发系统的开发背景和开发意义2
1、开发背景2
2、开发意义2
二、E-Mail相关协议和JavamailAPI介绍2
(一)E-Mail相关协议介绍2
1、SMTP协议简介3
2、POP协议简介3
3、IMAP协议简介3
(二)JavaMailAPI3
1、JavaMailAPI简介3
2、JavaMailAPI核心类4
三、系统分析5
(一)系统设计的基本原理5
1、电子邮件工作原理5
2、mail工作流程5
(二)系统设计的目的与原则6
(三)系统功能分析6
四、系统设计7
(一)功能结构设计7
(二)系统工作流程简图7
五、系统功能与实现8
(一)系统开发语言及工具简介8
1、系统开发语言介绍8
2、系统开发工具介绍8
(二)系统开发软件安装8
1、JAVA环境的安装与配置8
2、Javamail的安装9
(三)用户登录设计及实现9
(四)邮件发送设计及实现10
(五)邮件接收设计及实现12
(六)JavaMail邮件系统的测试运行15
六、结论15
七、参考文献16
JavaMail功能分析及设计
作者:
王伟
【摘要】随着互联网技术及网络办公化的发展,电子邮件成为人们主要的通信方式之一,越来越多的人开始使用它,而且用它的人数势必会继续增加。
基于JavaMail的邮件收发系统就利用Javamail开发包的高级应用和E-Mail的相关协议开发的。
它集邮件的撰写、发送和接收功能与一体。
并且支持附件的发送和接收以及其它一些附加功能的实现,它容易掌握和使用。
整个系统功能流畅,操作简便、界面友好、实用灵活,保证了用户之间的交流能够更加地方便和快捷。
论文首先对电子邮件的意义做了一个总体的介绍,接着论述了系统的开发背景和开发意义,并对系统的研究内容及设计目标进行分析。
然后对系统设计的基本原理进行了详细介绍。
最后,通过对系统需要完成的功能和可行性进行分析,确定了系统的功能模块,详述了各模块的实现方法并对方法做了完整的实现。
【关键字】JavaMail;SMTP;POP3;收发邮件
TitleTheFunctionalAnalysisandImplementationofJavaMail
AbstractWiththedevelopmentofInternettechnologyandnetwork-orientedoffice,E-mailbecomeoneofthemainmeansofcommunication.Moreandmorepeoplestartusingit,andthenumberofpeopleusingitisboundtocontinuetoincrease.Therefore,basedonJavaMailsendingandreceivinge-mailsystemontheuseofadvanceddevelopmentkitJavamailapplicationsandE-Mailrelatedtoprotocolisdeveloped.Itcombinese-mailtowrite,sendandreceivefunctionsandintegration.Andsupportforsendingandreceivingattachments,aswellasotheradditionalfeaturesimplementation.Itiseasytograspanduse.Theentiresystemfunctionsaresmoothly,simple,friendlyandflexible,guaranteecommunicationbetweenuserstobemoreconvenientandexpedient.Inthispaper,TheE-mailsignificanceisintroducedgenerally,thedevelopmentbackgroundandmeaningisdicussedindetial.andsystematicresearchcontentanddesigngoalsisanalysed.Thenthebasicprinciplesofsystemdesignwereintroducedminutely.Finally,basedontheanalysisofthefunctionandfeasibilityofthesystemisdeteminded,anddetailsthemethodofeachmoduleofimplementationandcompleteimplementsit.
Key wordsJavaMail;SMTP;POP3;Sendandreceivee-mail
一、绪论
(一)电子邮件介绍
电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式,是全球多种网络上使用最普遍的一项服务。
这种非交互式的通信,加速了信息的交流及数据传送。
通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。
E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。
电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。
这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。
即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。
接收者可在他认为方便的时候读取信件,不受时空限制。
因为电子邮件是通过邮件服务器(mai1server)来传递档的。
通常mailserver是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向mailserver管理人员申请—个信箱账号,就可使用这项快速的邮件服务。
(二)基于javamail的邮件收发系统的开发背景和开发意义
1、开发背景
随着网络的逐渐普及现在的人们对于电子邮件已经不再陌生了,自从电子邮件进入人们的生活以来,人们对传统的信件已经不再依赖,它的可靠、快速、方便、灵活、廉价、内容丰富等特点都在使我们更加喜欢和接受它。
从实际应用上讲,目前全球网页访问量中有66%以上与电子邮件相关。
通过电子邮件,用户可以与远地用户进行迅速、方便的联系,而且费用低廉。
同时,电子邮件可以以嵌入方式传送多种类型的信息,如文本、图像、声音、视频等。
还可以利用数字签名与认证、PGP加密等技术来保证电子邮件传递的安全性与可靠性。
正是由于电子邮件系统的这些良好特性,越来越多的用户采用基于电子邮件系统的应用,诸如电子杂志订阅系统、客户订货系统、新产品发布系统等等。
在商务界,电子邮件已经或正在取代信件、文件以至电话而成为最常用的通信联络方式。
现在,电子邮件已经成为学术界、商业界最为流行的一种通信方式,和国外进行学术交流更少不了电子邮件。
近年来,电子邮件飞速发展,可以看到在比较专业、服务比较全面周到的网站基本上都有免费电子邮件服务。
他们大部分都是通过各种软件进行开发的。
而在当今很流行的Java技术中就包含有JavaMailAPI,它提供了大量的类和接口来与网络邮件传输。
因此,本次毕业设计就是利用Java技术来实现简单的邮件发送和接收的功能。
2、开发意义
随着当今信息技术的飞速发展,计算机的应用日渐普及,各种邮件系统已经成为人与人之间传递信息必不可少的工具。
但是当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其是对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。
有鉴于此,在了解了E-mail相关协议以及JavaMail编程技术的基础上,开发了这个各种功能相对简单而且实用的基于JavaMail的邮件收发系统,简化了很多复杂的和不必要的功能。
所以整个系统功能流畅,从操作简便、界面友好、灵活实用的要求出发,使用户之间的交流能够更加的方便和快捷。
二、E-Mail相关协议和JavamailAPI介绍
(一)E-Mail相关协议介绍
1、SMTP协议简介
SMTP是一种提供可靠且有效电子邮件传输的协议。
SMTP是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。
SMTP重要特性之一是其能跨越网络传输邮件,即SMTP邮件中继。
通常,一个网络可以由公用互联网上TCP可相互访问的主机、防火墙分隔的TCP/IP网络上TCP可相互访问的主机,及其它LAN/WAN中的主机利用非TCP传输层协议组成。
使用SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
2、POP协议简介
POP是一种邮局协议,目前为第3个版本,即众所周知的POP3。
POP定义了一种用户如何获得邮件的机制。
它规定了每个用户使用一个单独的邮箱。
大多数人在使用POP时所熟悉的功能并非都被支持。
例如查看邮箱中的新邮件数量,而这个功能是微软的Outlook内建的,那么就说明微软Outlook之类的邮件客户端软件是通过查询最近收到的邮件来计算新邮件的数量来实现前面所说的功能。
因此在我们使用JavaMailAPI时需要注意,当需要获得如前面所讲的新邮件数量之类的信息时,我们不得不自己进行计算。
3、IMAP协议简介
IMAP使用在接收信息的高级协议,目前版本为第4版,所以也被称为IMAP4。
需要注意的是在使用IMAP时,邮件服务器必须支持该协议。
假如邮件服务器支持IMAP,那么邮件程序将能够具有以下被IMAP所支持的特性:
每个用户在服务器上可具有多个目录,这些目录能在多个用户之间共享。
其与POP相比高级之处显而易见,但是在尝试采取IMAP时,认识到它并不是十分完美的:
由于IMAP需要从其它服务器上接收新信息,将这些信息递送给用户,维护每个用户的多个目录,这都为邮件服务器带来了高负载。
并且IMAP与POP的一个不同之处是POP用户在接收邮件时将从邮件服务器上下载邮件,而IMAP允许用户直接访问邮件目录,所以在邮件服务器进行备份作业时,由于每个长期使用此邮件系统的用户所用的邮件目录会占有很大的空间,这将直接导致邮件服务器上磁盘空间暴涨。
(二)JavaMailAPI
1、JavaMailAPI简介
JavaMailAPI是一种可选的、能用于读取、编写和发送电子消息的包(标准扩展)。
可使用这种包创建邮件用户代理(MailUserAgent,MUA)类型的程序。
要使用JavaMail组件来收发邮件,要先了解JavaMail组件的API的,如图1-1所示,图中显示了JavaMail组件包中主要的接口和类,以及它们之间的关系。
通过JavaMail组件包,开发人员主要可以完成如下的客户端的开发功能:
◆创建一份邮件。
JavaMail组件使用Part接口和Message类来定义一封邮件,使用JAF中的DataHandler来将邮件打包处理;
◆创建一个Session对象,以进行用户鉴别,控制对邮箱的存取、发送操作;
◆向一个收件箱列表中的邮箱发送邮件。
◆从某个邮箱中收取邮件。
图1-1JavaMail组件包中主要的接口和类
2、JavaMailAPI核心类
JavaMailAPI的核心类主要包括:
◆Session类,用户要收发邮件必须先建立邮件会话Session类的对象,这个对象可用来创建邮件对象、实现邮件对象中数据的封装,还可指定邮件服务器认证的客户端属性,它的主要方法有:
getDefaultInstance()、getInstance()、getProperties()、getStore()、getTransport();
◆InternetAddress类,这个类代表邮件地址对象,声明如下:
publicclassInternetAddressextendsAddressimplementsjava.lang.Cloneable,它是继承自抽象类javax.mail.Address,其构造函数用来建立InternetAddress类的对象,调用方法:
InternetAddresss(Stringaddress),其中,参数address是构造对象的E-mail地址,如yanxia5849@,yanxia5849是笔者在的邮箱用户名,@是邮件分隔符,是邮件服务器;getAddress()用来得到E-mail地址;
◆MineMessage类,这个类代表MIME风格的邮件,它实现了Message抽象类和MinePart接口,其声明为:
publicclassMineMessageextendsMessageimplementsMinePart,它的构造函数为:
MineMessage(Sessionsession),主要方法有:
getAllPecipients()、getContent()、getContentType()、getFrom()、getSubject()、isMimeType();
◆Transport类,Transport是邮件发送类,类的层次结构为javax.mail.Transport,可有Session类对象的getTransport()方法生成。
其主要方法有:
connect()、sendMessage();
◆Store类,Store类可用来从邮件服务器上接收邮件,其类的层次结构为javax.mail.Store,Store类最常用的方法就是getFolder(),此方法得到指定名称的邮件服务器文件夹中的文件,调用方法StoreObjectName.getFolder(Stringname);
◆Folder类,Folder类是邮件文件夹类,类的层次结构为javax.mail.Folder,其主要方法有:
exists()、fetch()、getMessage()。
三、系统分析
(一)系统设计的基本原理
1、电子邮件工作原理
本系统实现的是电子邮件的收发,其系统设计的基本原理就是电子邮件的工作原理。
电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。
电子邮件的传输是通过电子邮件简单传输协议(SimpleMailTransferProtocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。
电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。
系统的硬件是一个高性能、大容量的计算机。
硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的—个电子信箱。
并确定—个用户名和用户可以自己随意修改的口令。
存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。
系统功能主要由软件实现。
电子邮件的通信是在信箱之间进行的。
用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。
邮件在信箱之间进行传递和交换,也可以与另—个邮件系统进行传递和交换。
收方在取信时,使用特定账号从信箱提取。
2、mail工作流程
电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中。
下面以126和sina这两个电子邮局为例来说明电子邮件的传输过程和工作原理。
它们之间的邮件收发过程即mail工作流程原理图如图1-2所示。
图1-2mail工作流程原理图
邮件在传输的过程中是要遵守一定的规则-----协议。
POP3/IMAP协议是用来从自己邮箱服务器里接收自己的邮件;SMTP 协议是用来发送邮件的。
在客户端中用Javamail.jar包来编写客户端程序。
服务器端根据协议的需求来实现功能。
从上图中可以看到邮件的转发的一个过程,当两个邮箱地址属于不同的服务器的时候,邮件服务器会根据@后面的域名来转发邮件。
(二)系统设计的目的与原则
本次学年论文设计所要完成的,是一个通过代理服务器实现邮件收发功能的系统,该系统功能类似于OUTLOOK,但是由于水平和时间的关系,只是实现了OUTLOOK的部分功能。
只需要在任意的客户端上访问代理服务器就可以实现邮件收发功能。
通过本次课题的学习和研究掌握了基本的Java编程技能,更实践了自我的动手能力。
同时认识到在信息化高速发展的今天,高效、快速、方便的邮件收发系统将得到越来越多的人关注和使用,它将给人们带来更方便快捷的生活。
(三)系统功能分析
邮件客户端必须具有以下功能:
◆用户信息的配置功能。
完成用户身份的登陆认证和邮件服务器的设置;
◆简单邮件发送功能。
在邮件发送界面完成无附件邮件的发送;
◆有附件邮件发送功能。
在邮件发送界面完成带有附件邮件的发送;
◆邮件保存功能。
完成邮件的编辑以后在发送邮件之前点击保存按钮就可以实现邮件的保存功能;
◆邮件接收功能。
在邮件的接收界面完成邮件接收功能,可以接收无附件邮件的邮件。
件和带有附件;
◆邮件查阅功能。
在邮件接收界面点击界面树型控件中需要查看的邮件在界面右边就可以显示所查看邮件的内容。
为实现以上五种邮件客户端功能,需要建立以下八个类:
Ø应用程序类(Application类)是整个工程的入口类,它定义了全局唯一的main()函数,JavaVM会从main()函数开始执行。
在Application类的构造函数中,创建主框架类的对象,并对主框架类的对象的尺寸和位置进行调整,最后将主框架居中显示;
Ø邮件客户端主框架类,命名为MainFrame。
该类提供邮件客户端的人机交互界面。
在MainFrame类的构造函数中,完成主框架添加控件的操作,并设置主框架的大小,以及布局管理器等。
除界面相关的工作外,主框架类还需完成对用户配置的初始化工作和用户配置的保存工作;
Ø自定义标签类,命名为TabbedPane,其父类为JtabbedPane。
该类为用户配置、邮件发送和邮件接收3个操作界面提供模板;
Ø属性配置类,命名为ConfigPanel,其父类为Jpanel,该类提供用户信息的加载、保存、序列化等操作。
ConfigPanel类作为TabbedPane类的页面,被添加在主框架上,完成人机交互工作。
在ConfigPanel类中,当用户单击Confirm按钮时,将用户设置的信息保存在ConfigPanel类中,当用户单击Clear按钮时,则清除用户输入;
Ø属性结构类,该类用来保存用户的属性。
由于在整个工程的各个模块,比如邮件的发送,邮件的接收等,都需要对使用用户的帐户和密码进行身份验证,并且根据用户设定的SMTP服务器和POP3服务器进行邮件的发送和接收,因此,必须定义一个数据结构来保存用户的设置;
Ø邮件处理类,命名为MessageProcess,该类必须实现Serializable接口。
MessageProcess类是非常重要的类,该类用于邮件接收过程。
四、系统设计
(一)功能结构设计
邮件客户端具有以下功能:
●用户信息的配置功能;
●简单邮件发送功能;
●带附件邮件发送功能;
●邮件保存功能;
●邮件接收功能;
●邮件查阅功能。
系统功能结构设计图如图1-3所示:
图1-3系统功能结构设计图
(二)系统工作流程简图
本JavaMail工程有六个JSP和一个JavaBean,其系统工作流程图如图1-4所示:
图1-4系统工作流程图
五、系统功能与实现
(一)系统开发语言及工具简介
1、系统开发语言介绍
本系统运用了Java开发语言,Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
有跨平台、面向对象、体系结构中立、健全、小巧、多线程、安全、可扩展、快速等特点。
2、系统开发工具介绍
开发工具使用了Eclipse,Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成--EclipsePlatform、JDT、CDT和PDE。
(二)系统开发软件安装
1、JAVA环境的安装与配置
本次开发环境为:
JDK1.6+Tomcat6.0+Eclipse3.3,JDK是从事java开发的基础开发工具与开发环境;Tomcat是做javaweb开发时常用的一款轻量级web服务中间件软件;Eclipse是一种被java程序员广泛使用的集成开发工具。
下载Java的JDK开发包,然后安装,安装完成后,配置环境变量,右击我的电脑--属性--高级--环境变量,先新建一个变量名:
java_home,变量值是JDK安装的路径;一般都是C:
\ProgramFiles\Java\jdk1.6.0_07,然后再建个变量名字:
classpath变量值是:
java_home\lib\tools.jar,然后在变量名中双击Path,在变量值前面加上:
%java_home%\bin;然后点击确定及配置完成,然后进入开始--命令--输入cmd--接着输入javac然后就出现了配置的信息;安装tomcat,安装版的tomcat安装完之后tomcat的服务就能够启动的了,需要配置TOMCAT_HOME,还需要查看一下安装程序是不是把tomcat服务注册成为windows的启动服务,需要到“服务”里查看,如果有这个选项就把它设置为手动启动,并且先停止这个服务;最后进行Eclipse的安装,安装完后整个开发环境就配置完毕了。
2、Javamail的安装
JavaMail对SMTP、POP3、IMAP提供了支持,封装了电子邮件功能中的邮件对象、发送功能、身份认证、接收等。
JavaMailAPI1.3.2Release版本可从在Sun公司的网站上可以免费下载,下载后用解压缩软件解压后可得到mail.jar文件,把这个文件拷贝到Tomcat安装目录下的lib子目录中则所有Web应用均可用;如果只需要当前web应用可用则可拷贝到当前web应用的“WEB-INF/lib”目录中,如果没有此目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaMail 技术 完成 邮件 功能 设计 开发