某企业的邮件服务系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某企业的邮件服务系统设计与实现
摘要:电子邮件(E-mail)在如今社会有着举足轻重的地位。
随着人们使用
次数的增多,通过发送邮件、收集客户资料的移动商务方式受到众多企业的青睐。
本文叙述了电子邮件的定义,分析了Java Mail API和相关协议,开发设计基于Java mail某企业的邮件服务系统。
关键词:SMTP; POP; Javamail; 邮件收发
1引言
电子信箱、电子邮政,它主要是指个人利用各种电子邮件方式将个人信息通
过邮件进行交换的一种通信方式及其手段,在国际互联网中已经得到广泛的普及
和应用。
在Internet网络资源中,电子邮箱系统并不是端对端的服务,其核心
是存储和发送的服务。
利用收发存储的功能可以实现无连接通信,称作是一种异
步通信[1]。
随着技术人员的能力逐渐提高,进一步开发了基于JavaMail邮件系统。
技术人员采用多线程的设计手段,基于JavaMail邮件系统的通信效率得到了提高,大大降低了电子邮件系统使用成本,邮件系统采用新的MVC设计模式的也大
大降低了系统的维护难度。
2国内外研究现状
从安全的角度考虑:过去传统的邮件系统保护措施不足,到今天为止,仍然
有许多网络用户使用安全版本低的邮件系统,缺少安全保护能力。
全球的木马邮
件和垃圾邮件问题逐渐恶化,也使得电子邮件系统发展过程中变得举步维艰。
许
多用户和企业希望电子邮件系统能进一步加强加密、防木马、杜绝垃圾邮件的措施,解决电子邮件安全性问题。
针对电子邮件存在的漏洞,国内外的技术人员深
入分析电子邮件系统,在系统每个层次面上作大量开发研究。
多进程/多线程的
技术能大大提高邮件系统处理任务的效率,高速缓存使得电子邮件在服务器中高
速数据交换,快速队列机制能够实现用户之间邮件快速收发。
3邮件协议和JavaMail API
3.1邮件协议
(1)SMTP:全称“Simple Mail Transfer Protocol”顾名思义叫简单邮件
传输协协议。
一般人们统称SMTP。
SMTP是安全稳定文本传输的协议。
SMTP是建
立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,
并提供有关来信的通知[2]。
(2)POP3:“Post Office Pcotocol-Version 3”,在本质上一种用来处
理接收和发送简单电子邮件的相关消息。
3.2 JavaMail API
JavaMail API工作原理是靠POP3和SMTP两种邮件协议进行设计,然后JavaMail API就会处理邮件,作出判断收到的电子邮件可以拒绝与电子邮局协议
内容无关的电子邮件访问权限。
JavaMail API核心类有以下几个内容:
(1)Session:Session类界说了一个原始的邮件会话。
就像Http会话一样,我们可以发送和接收电子邮件的所有内容都基于该会话。
(2)Message :有了会话对象之后,就可以继续创建要发送的消息。
因为
消息是一个抽象类,所以在大多数情况下,我们使用javax.mail。
(3)Address:进行到这一步,我们已经创建了Session和Message,如同Message相似,Address类是一个抽象类,因此我们要写入邮件InternetAddress
这个子类。
(4)Authenticator:JavaMail API也可以使用Authenticator通过用户名
和密码访问受保护的资源。
(5)Transport:与类一样,JavaMail API使用Authenticator 类根据用户名和密码访问受保护的资源,在本例中是邮件服务器。
JavaMail的Authenticator类可以在javax中找到邮件包。
JavaMail API的应用分为阅读电子邮件,发送邮件以及转发邮件。
阅读
4操作JavaMail系统
Javamail API功能简单,使得发送和接收邮件变得简单。
本论文是在Eclipse客户端程序建立工程进行开发电子邮件系统。
其主要基本功能如下:
(1) 接收POP3邮件服务器发送过来的邮件并显示邮件出来;
(2) 发送邮件通过STMP邮件服务器;
(3) 编写邮件能添加附件,并且发送,也能接收;
(4) 系统客户端可以删除邮件;
邮件客户端的图形界面如下图4-1所示
图4-1 系统
界面
4.1环境配置与界面搭建
在Eclipse中创建工程后,第一步在工程中添加javamail和javabeans ActivationFrame Work开发包,然后使用swing图形工具设计程序界面,导入相关的API包.
4.2设置邮件服务器参数
用户在收发邮件时,需要设置邮件服务器主机、账户和收发邮件的密码。
因
此系统提供了上述信息设置和存储功能,在这里我们使用存储为SMTP和POP3邮
件服务器属性设置属性文件的信息。
可使用java.uitl. Properties 类的setProperty()方法和getProperty() 方法对属性文件中的属性内容进行存取。
4.3实现创建与发送邮件功能
发送电子邮件的基本过程为:点击主界面中的“创建邮件”按钮后,弹出新邮
件编辑窗口,在该窗体口编辑新邮件,选择邮件附件后,点击“发送”按钮,程序可
以根据数据输入的邮件进行信息构造邮件,并将其发送。
4.4接收邮件功能
点击“接收邮件”后,邮件客户端会刷新邮件列表,用户就可以看到新邮件
并阅读邮件。
在这情景中,客户端系统程序马上指定在一个邮件服务器,发送者、主题和日期信息的电子邮件接收邮件被显示在列表中。
4.5删除邮件功能的实现
当用户点击窗口上的“删除邮件”按钮后,系统将删除用户选中的邮件,并且
系统会自动刷新邮件消息列表。
其代码如下:
message[deleIndex].setFlag(Flags.Flag.DELETED,true);
folder.close(true);
folder.open(Folder.READ_WRITE);
message = folder.getMessage();
fireTableDataChanged(); //刷新邮件显示表格数据
其中deleteIndex是程序收到邮件的时间,用户在列表选择邮件的序号。
上面使用javamail API所实现的邮件客户端系统程序具备了发送和接收邮
件的功能,在这系统层次,可以进一步开发其它的功能,例如用户账号密码登录、添加联系人、回复邮件等等等,开发出功能丰富的电子邮件客户端系统。
5结语
本文首先介绍了电子邮件的工作原理,开发背景以及研究现状,然后介绍了JavaMail邮件系统的开发过程中所运用协议,并说明了JavaMail API中重要的
类和JavaMail开发环境,介绍了Java语言简单易懂等特点。
在邮件系统的设计
过程中,由浅入深的实现了E-mail邮件系统的发送、接收功能。
最终实现了各
个子模块的整合,形成了简单的基于JavaMail的邮件收发系统。
参考文献
[1]贺文,顾训穰。
基于Web的客户端电子邮件系统的实现[J]。
计算机工程
与应用,2019,(8):56—58.
[2]胡学网总主编;周鸣争主编;朱程,刘斌,侯加兵副主编.计算机网络:安徽大学出版社,2014.05:193。
[3] Java高级程序设计。
王路群主编。
中国水利水电出版社, 2018 .
3。