【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“基于Java的电子邮件系统 - 毕业设计”一文,供大家参考学习
基于
Java 的电子邮件系统 DESIGN AND IMPLEMENTATION OF THE
JAVA-BASED ELECTRONIC MAIL SYSTEM 湖南长沙 提交日期:2012 年 5 月 本人郑重声明:所呈交的本科毕业
论文是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。
除文中已经注明引用的内容外,本
论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。
同时,本
论文的著作权由本人与湖南农业大学东方科技学院、指导教师共同拥有。
本人完全意识到本声明的法律结果由本人承担。
毕业论文(设计)作者签名: 年 月 日 目 录摘 要...............................................................1关键词..............................................................11. 概述.............................................................1 1.1 电子邮件的发展背景.........................................1 1.2 电子邮件的工作原理.........................................2 1.3 电子邮件的发展趋势.........................................32. 系统分析及解决方案...............................................4 2.1 需求分析...................................................4 2.2 解决方案...................................................5 2.2.1 JavaMail API 核心类....................................6 2.2.2 简单邮件传送协议 SMTP ...............................7 2.2.3 POP3 协议 ............................................7 2.2.4 IMAP 协议............................................8 2.2.5 MIME 协议 ...........................................83. 详细
设计.........................................................9 3.1 用户登录与用户配置.........................................9 3.1.1 实现用户登录 ........................................10 3.1.2 实现用户信息配置 ....................................11 3.2 发送邮件 ...................................................12 3.2.1 实现发送邮件的功能 ..................................12 3.2.2 界面封装 Mail 对象进行发送 ...........................15 3.2.3 处理邮件附件 ........................................17 3.3 邮件接收 ...................................................18 3.3.1 转换 XML 文件为 Mail 对象 ............................18 3.3.2 Message 封装为 Mail ..................................19 3.3.3 对邮件进行排序 ......................................20 3.3.4 Mail 对象转换成 XML 文件 ............................21 3.4 邮件操作模块 ...............................................21 3.4.1 查看邮件 ............................................22 3.4.2 删除邮件 ............................................244. 系统运行结果....................................................245. 结论............................................................28参考文献...........................................................28致 谢.............................................................29 基于
Java 的电子邮件系统 摘 要:本文介绍了电子邮件系统的基本原理,对 Internet 邮件服务系统进行了深入研究,分析了简单邮件传输协议SMTP、邮局协议POP3和交互式邮件存取协议(IMAP),然后重点介绍了基于
Java 语言的邮件系统的客户端设计与实现。
该客户端基于 c/s 模式,能连接公共邮件服务器,把公共服务器上的邮件下载到本地,对邮件进行简单的操作,包括邮件收发,邮件删除等基本功能。
通过对客户端的开发,可以熟悉 JavaMail API 的核心类,加深对面向对象编程思想的理解。
关键词:JavaMail API;邮件服务器;c/s 模式 Design And Implementation Of The
Java-based E-mail system Student: Qin Wang Tutor:Zhang Yinqiong Oriental Science &Technology College of Hunan Agricultural University Changsha 410128 Abstract: This paper discussed basic theories of E-mail system and make deep research of mailservice system based on Internet. Analyzed Simple Mail Transfer ProtocolSMTP , Post OfficeProtocol—Version 3POP3 and Interactive Mail Access Protocol IMAP And then focused on thedesign and implementation of
Java technology-based mail system. The client is based on the c/s mode themail server can connect to the public server and download messages to the local. It has simple operationof the e-mail such as sending receiving and deleting messages. Through the study of the client you canbe familiar with the the core class of
JavaMail API and deepen the understanding of object-orientedprogramming ideas. Key words:JavaMail API;Mail server;client/server mode1. 概述1.1 电子邮件的发展背景 电子邮件存在 30 多年了,最初主要应用于学术界。
在 20 世纪 90 年代得到了广泛的使用,它一下子变得普及起来,以至于现在每天发送的电子邮件数量远远超过了传 1统信函的数量。
当今使用得最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。
通过电子邮件系统,可以以非常低廉的价格,不管发送到那里都只需负担电话费和网费,即可以非常快速的方式几秒钟之内能发送到世界上任何目的地与世界上任何一个角落的网络用户联系。
这些电子邮件可以是文字、图像、声音等各种方式。
电子邮件不仅使用方便,而且具有传递迅速和费用低廉的特点。
它使得人们的交流方式得到了极大的改变。
另外,电子邮件可以进行一对多的邮件传递同一邮件可以一次发送给许多人。
最重要的是,电子邮件是整个网间网以致所有其它网络系统中直接面向人与人之间信息交流的系统,它的发送方和接收方都是人,所以极大地满足了大量存在的人与人通信的需求。
经过了漫长的过程,它现在已经演变成为一个更加复杂并且功能丰富的系统,可以传送声音、图像、图片、
文档等多媒体信息,以至于如数据库或账目
报告等更加专业化的文件都可以通过电子邮件进行传送。
现在,电子邮件已成为许多商家和组织机构的生命血脉。
用户可以通过电子邮件的讨论会来进行项目管理,并且有时要根据快速或洲际的电子邮件信息交换进行重要的决策和行动。
但毫无疑问的是,互联网扩展了其应用的范围。
过去只能在局域网进行交谈的公司现在可以通过网络与他们的客户、竞争伙伴和世界上的任何人进行通信和交流。
只要某个组织的电子邮件系统运行在支持 TCP/IP 协议的网络上或具有支持两个互联网邮件服务协议。
SMTP 和 POP 之一的互联网网关,它的邮件用户就能连接到任何具有相似连接的电子邮件地址上了,并且不论其电子邮件帐户在何处。
电子邮件综合了电话通信和邮政信件的特点,传送信息的速度和电话一样快,又能像信件一样使收信者在接收端收到文字记录。
它又称为基于计算机的邮件报文系统,它承担从邮件进入系统到邮件到达目的地为止的全部处理过程。
电子邮件不仅可以利用电话网络,而且可以利用任何通信网传送。
在利用电话网络时,还可以利用其非高峰期传送信息,这对于商业邮件有特殊价值。
1.2 电子邮件的工作原理 电子邮件系统是一种新型的信息系统是通信技术和计算机技术结合的产物。
电子邮件的传输是通过 SMTP1这一系统协议来实现的,它是 Internet 下的一种电子邮件
通信协议。
电子邮件的基本原理,是在通信网上建立“电子信箱系统”它实际上是一个计算机
系统。
系统的硬件是一台高性能、大容量的计算机。
硬盘作为信箱的存储介质,在硬盘上为用户分配一定的存储空间作为用户的“信箱” 每位用户都有属于自己的“信 2 。
箱” 并确定一个用户名和用户自己可以随意修改的口令。
存储空间包括存放所收邮件、编辑信件以及信件存档三部分空间。
用户使用口令打开自己的信箱,并进行发信、读信、编辑、转发、存档等操作。
系统功能主要用软件实现。
电子邮件之间的通信是在信箱之间完成的。
用户首先开启自己的信箱,然后通过键入命令的方式将要发送的邮件发送到对方的信箱中。
邮件在信箱之间进行传递和交换,也可以与另一个邮件系统进行传递和交换。
收方在取信时,使用特定帐号从信箱提取。
电子邮件的
工作过程遵循客户-服务器方式。
每份电子邮件的发送都要涉及发送方和接收方,发送方构成客户端而接收方构成服务器,服务器含有众多用户的电子信箱。
发送方通过邮件客户程序将编辑好的电子邮件向邮局服务器发送。
邮件服务器识别接收者的地址,并向管理该地址的邮件服务器,POP31服务器发送信息。
邮件服务器将消息存放在接收者的电子信箱中,并告诉接收者有新邮件到来。
接收者通过客户程序连接到服务器后会看到服务器的通知,进而打开自己的电子信箱来查收邮件。
电子邮件在发送和接收过程都要遵循 SMTP、POP3 等协议,这些协议确保了在不同系统之间的传输。
其中,SMTP 协议负责邮件的发送,而 POP3 则用于接收 Internet上的电子邮件。
1.3 电子邮件的发展趋势 电子邮件经过几十年的发展已经形成了完善的技术体系。
邮件服务系统在保留了电子邮件系统最初的收发邮件、邮件存储等基本功能的同时融入了最新的
计算机与网络技术,使电子邮件系统有了全新的改观。
(1 Web 邮件技术 : 随着 Internet 应用的日益普及和逐步深入,这些数字仍在不断增长。
但是对于电子邮件系统来说,单纯使用邮件客户端程序进行邮件收发已经不能满足用户移动办公的需要。
Web 技术的出现,彻底解决了用户移动办公的需要,使得用户可以在任何地方使用浏览器
登陆邮件服务器收发邮件,而不用配置邮件客户端
程序。
(2 多域邮件服务2 : 多域邮件服务,即一台物理服务器为多个独立注册 Internet 域名的企业或单位提供电子邮件的服务。
在逻辑上,这些企业和单位有自己独立的邮件服务器,也可以称为虚拟邮件服务器技术。
对于 ISP 提供商和企业集团公司来说,多域邮件服务器的支持能力是选择邮件服务的一个重要因素。
它可以方便地扩展其横向服务能力。
(3)Linux 邮件服务器 : 3 Linux 操作系统作为目前应用最广泛的
开源操作系统,具有性能稳定,可靠性高和价格低廉的特点。
使用 Linux 作为邮件服务器,主要是可以与 SendmailMySql 等
开源软件共同使用,在满足用户的需求上降低了系统价格。
(4)安全防护 : 现在的邮件服务器在安全防护技术上有了较大的提高,包括数据身份验证、传输加密、垃圾邮件过滤、邮件病毒过滤、安全审计等的多项安全措施在邮件服务器上得到了广泛的应用。
(5)无限的扩展能力: 电子邮件系统应具备无限的扩展能力,Internet 网络的一个特性是变化无常,因此需要电子邮件具有无限的扩展能力。
这个能力主要体现在邮件的处理能力和邮件的存储能力上。
为了使邮件处理能力可以无限扩展,就需要引入集群和负载均衡技术,使应用平台可以在需要的时候进行扩充,满足长期或临时的需要。
为了便于邮件存储,需要高性能的邮件存储解决
方案,最为理想的应该是 SAN 技术在邮件服务器中的应用。
(6)远程监控和性能调整: 由于目前很多邮件服务器属于电信托管方式,不可能经常进行本地操作,因此目前邮件服务器均提供了远程邮件监控的功能。
可以通过 Web 方式,监控邮件服务器的工作状态,包括在线用户数,邮件处理数量和速度,存储空间使用率等。
并且可以随时对出现的发信高峰和网络攻击进行远程处理。
电子邮件是一项系统工程、需要
网络、数据存储、数据库、操作系统等技术的支持。
电子邮件的每一次技术革新都是建立在其它技术发展的基础上的。
2. 系统分析及解决方案 该邮件
管理系统基于 c/s 模式,没有另外搭建服务器,通过已有账号连接公共邮件服务器进行邮件相关操作。
2.1 需求分析下面是文本需求说明:(1) 用户登录:选择相应服务器进行登录,然后进行相关操作。
(2) 发件管理:进入可进行信件基本编辑。
(3) 发件箱管理:显示用户发送的所有邮件列表,可以查看邮件的详细内容,可以选 中所要删除的邮件进行删除或者删除所有已发邮件。
(4) 垃圾箱管理:显示用户从收件箱中删除的所有邮件
列表,可以查看邮件的详细内 容,可以选中所要删除的邮件进行删除或者删除垃圾箱中所有邮件,所删除的邮件 4 则被彻底删除。
系统基本模块如图 1 所示: 客户端 登 录 发 阅 删 接 送 读 除 收 邮 邮 邮 邮 件 件 件 件 图 1 基本模块 Fig1 The basic module2.2 解决方案 整个电子邮件系统的工作过程及一些涉及的协议如下图 2 所示: 客户端 1 客户端 2 POP3/IMAP SMTP POP3/IMAP SMTP SMTP POP3 服务 SMTP 服 SMTP 服 POP3 服务 器 务器 SMTP 务器 器 存储设备 存储设备 邮件服务器 1 邮件服务器 2 图 2 电子邮件传输过程 Fig2 E-mail trans
mission 电子邮件系统包含:电子邮件服务器端和电子邮件客户端。
SUN 公司制定 JavaMail14API,它封装了按照各种邮件通信协议,如 IMAP3、POP3 和 SMTP 与邮件服务器通信的细节,为
Java 应用程序提供了收发电子邮件的公共接口,参见下图 3: SMTP IMAP POP3 Server Mail store 5 Mail store SMTP 协议 IMAP 协议 POP3 协议 客户端实现 客户端实现 客户端实现 JavaMail API 图 3 JavaMail API 功能示意图 Fig 3 JavaMail API function diagram2.2.1 JavaMail API 核心类(1) Session: Session 类定义了一个基本邮件会话(session),是 JavaMail API 最高层入口类。
所有其他类都是经由这个 Session 才得以生效。
Session 对象用
java.util.Properties5对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其他信息。
(2) Message : 一旦获得 Session 对象,就可以继续创建要发送的消息。
这由 Message 类来完成。
因为 Message 是个抽象类,必需由一个子类来实现其具体功能,多数情况下为javax.mail.internet.MimeMessage6。
MimeMessage 是个能识别 MIME 类型和头的电子邮件消息,正如不同 RFC 中所定义的。
虽然在某些头部或非 ASCII 字符也能被译码,但Message 头只能被限制为用 US-ASCII 字符。
(3) Address: 一旦创建了 Session 和 Message,并将内容填入消息后,就可以用 Address 确定信件 地 址 了 。
和 Meseege 一 样 , Address 也 是 个 抽 象 类 。
用 户 使 用 的 是javax.mail.internet.InternetAddress7类,它是 Address 的一个子类。
(4) Authenticator: JavaMail API 也可以利用 Authenticator 通过用户名和密码访问受保护的资源。
对于JavaMail API 来说,这些资源就是邮件服务器。
JavaMail Authenticator 在 javax.mail 包中,要使用 Authenticator8,先创建一个抽象类的子类,并从 getPass
wordAuthentication方法中返回 PassaordAuthentication 实例。
必须向 Session
注册 Authenticator。
创建完成后,然后,在需要认证的时候,就会通知 Authenticator。
(5) Transport: 消息发送的最后一部分是使用 Transport9类。
这个类用协议指定的语言发送消息 6(通常是 SMTP)。
它是抽象类,它的工作方式与 Session 有些类似。
仅调用静态 send方法,就能使用类的缺省版本:Transport.sendmessage发送消息,然后关闭连接。
(6) Store : Store 类实现特定邮件协议上的读、写、监视、查找等操作。
通过 javax.mail.Store类可以访问 javax.mail.Folder 类。
(7) Folder: Folder10类用于分级组织邮件,并提供照 javax.mail.Message 格式访问 e-mail 的能力。
2.2.2 简单邮件传送协议 SMTP SMTP:Simple Mail Transfer Protocol.即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
SMTP 协议属于 TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过 SMTP 协议所指定的服务器就可以把 E-mail 寄到收信人的服务器上了,整个过程只要几分钟。
SMTP 是一种提供可靠且有效电子邮件传输的协议。
SMTP 是建模在 FTP 文件传输服务上的一种邮件服务主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP 独立于特定的传输子系统且只需要可靠有序的数据流信道支持。
SMTP 重要特性之一是其能跨越网络传输邮件即“SMTP 邮件中继”。
一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP 传输层协议组成。
使用 SMTP 可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
使用 SMTP 时收信人和发信人可以是连在同一个网络上的用户,也可以是因特网其他网络的用户或者是与因特网相连但不是 TCP/IP 网络上的用户。
SMTP 不使用中间的邮件服务器。
不管发送端和接收端的邮件服务器相隔有多远不管在邮件的传输过程中要经过多少个路由器TCP 连接总在发送端和接收端这两个邮件服务器之间直接建立。
2.2.3 POP3 协议 POP3Post Office Protocol 3即邮局协议的第 3 个版本它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。
它是因特网电子邮件的第一个离线协议标准 POP3 协议允许用户从服务器上把邮件存储到本地主机即自己的计算机上。
同时根据客户端的操作删除或保存在邮件服务器上的邮件,而 POP3 服务器则是遵循 7POP3 协议的接收邮件服务器用来接收电子邮件的。
POP3 协议是 TCP/IP 协议族中的一员。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
POP .