基于JavaMailAPI的Web邮件系统开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第28卷 第6期
2006年6月武 汉 理 工 大 学 学 报JOURNAL OF WUHAN UNIVERSITY OF TECHNOLOGY Vol.28 No.6 Jun.2006
基于JavaMail API 的Web 邮件系统开发
钟 珞,刘 玲,夏红霞
(武汉理工大学计算机科学与技术学院,武汉430070)
摘 要: E mail 通信在Java 服务器编程中占有非常重要的地位。阐述了Web 邮件系统所涉及的几个协议,对J2EE JavaM ail A PI 的结构框架和核心类进行了介绍,描述了系统架构,并给出了其中发送邮件功能的详细设计过程。Java M ail 结合JSP 的结构化特性,易于实现灵活高效、方便移植的Web 邮件应用程序。
关键词: JavaM ail AP I; 电子邮件; 邮件发送
中图分类号: T N 915.04文献标志码: A 文章编号:1671 4431(2006)06 0084 03
Development Research of Web Mail System Based on JavaMail API
Z H ON G L uo ,LI U L ing,XIA H ong x ia
(School o f Computer Science and T echnology ,Wuhan U niv ersity of T echno logy,Wuhan 430070,China)
Abstract: E mail is the most important and ex tensive applicat ion of I nternet,it stands a v er y important position in Java server pr ogramming.T his paper first ex patiated on some protocols come down to the Web mail system,and then introduced the architecture and core classes of J2EE JavaM ail A PI.After that,the article presented the system framew ork and t he detailed de sign pr ocess of mail sending.In co nclusion,it can easily implement flexible,high effective and transplantable W eb mail applica tions with JavaM ail and structured JSP.
Key words: JavaM ail API ; E mail; mail sending
收稿日期:2006 03 23.
基金项目:教育部高校行动计划智能科学与技术(2004XD 03).作者简介:钟 珞(1957 ),男,教授,博士生导师.E mail:liuling com
随着互联网的发展,人们使用最多的服务之一就是电子邮件,用户最初只能通过Outlook 、Foxm ail 等客户端软件来收发自己的邮件。随着Web 邮箱的面世,其快捷、方便的优点吸引了众多的网络用户。
对一般的电子邮件使用者来说,E mail 非常简单地执行邮件传输,但是对于编程人员来讲E mail 的打包、传输、发送和接收是很复杂的。这要涉及到很多协议,主要有发送电子邮件的SMT P 协议、用来接收电子邮件的POP3协议和Internet 邮件访问协议IMAP 以及多用途Internet 邮件扩充协议M IM E 。JavaM ail 就是Sun 发布的用来处理这些问题的统一的API,JavaMail 是J2EE 的核心部分,它定义一组抽象类和接口,通过Java 应用程序支持邮件系统。它封装了电子邮件的基本协议,编程人员可以不用自己去处理那些复杂的协议了。JavaMail API 可以使用在客户端也可以使用在服务器端。
1 相关邮件协议
简单邮件传输协议(SMT P)是为了保证电子邮件的可靠和高效传送,它通过TCP/IP 网络把消息从一个邮件服务器移动到其它邮件服务器(见图1)。SM TP 是Internet 电子邮件服务的基础,在TCP 上,它使用端口25进行传输,但是个简单的子协议,除传输邮件外不能完成诸如差错检测等其它功能,这些功能由POP 和IMAP 等高级邮件协议负责完成。邮局协议(POP)是个地位牢固的开放邮件标准。它依靠SMTP
向用户提供电子邮件的集中式存放。POP 不允许用户阅读邮件之后
在服务器上保存副本,也不支持用户在邮件服务器创建文件夹。该协
议最新版本为POP3。Internet 邮件访问协议(IMAP)是邮件存储和操
作的协议,也是基于SM TP 的传输系统。IMAP 被设计成POP 的超
集[1],当前最新版本是IMAP4。与POP 协议相比,IMAP 最大的优点是用户可以在邮件服务器上存储邮件而不必下载。尽管在日常使用中,IM AP 的特性及对它的支持还没有压倒POP3,但是它的发展趋势是显而易见的,主要的群件产品厂商都计划支持IMAP4。JavaM ail 提供2部分API,一部分独立于邮件协议,用于邮件操作;另一部分与协议相关,用于封装SM TP 、POP 、IMAP 等协议。这种设计方法目的在于开发独立于协议的邮件程序。
2 JavaMail API 结构框架
Sun 公司提供的JavaMail API 是Java 的标准扩展,它提供
一个独立于平台和协议的收发邮件框架[2],带有Sun 实现的
SM TP 、IMAP4和POP3协议提供程序。另外JavaM ail API 还
需要Jav aBeans Activation Framew ork (JAF,JavaBeans 激活框
架),JavaBeans 激活框架提供M IM E 邮件消息的处理支持。主
要用于处理附件,与JavaM ail API 一起,可以实现构造、传输及
管理邮件的应用程序,是开发邮件程序必不可少的部分。使用
JavaMail API 编程时,应将mail.jar 和activation.jar 文件添加到类路径环境变量CLASSPATH 中。JavaM ail API 结构框架如图2所示[3]。
JavaMail API 提供基本的邮件系统的对象,比如消息、地址和头文件等。主要包括javax.m ail 包及其子包:l)javax.mail 提供邮件处理的基本的类。2)jav ax.mail.event 定义和邮件客户有关的事件。3)javax.m ail.internet 提供处理邮件头有关的类和接口,支持当前绝大多数的主流邮件协议,包括上述的SM TP 、POP3、IMAP4等协议。4)javax.mail.search 提供邮件查找有关的类。构成JavaM ail API 的核心类包括:会话(Session 类)、消息(Message 类)、地址(Address 类)、认证(Authenticator 类)、传输(T ransport 类)、存储(Store 类)和文件夹(Folder 类)。所有这些类都可以在JavaM ail API 即javax.mail 的顶层包中找到,使用的子类可在javax.mail.internet 包中找到,由它们可以组成多种典型的邮件系统。
3 Web 邮件系统架构
早期系统设计的模型是基于C/S(Client/Server)2
层结构的。它的结构简单,开发和运行的环境也较简
单。在这种结构下,系统拓展性和安装维护性差,同时
大量代码驻留在客户机上,系统存在很大的安全性问
题。B/S(Brow ser/Server)结构是由早期的C/S 结构
发展而来的3层C/S 结构在Web 上的应用。它将数
据处理过程分为3层:第1层是表示层(用户界面,又
可细分为表示层和表示逻辑层),提供用户与系统的友
好访问,各种Web 引擎(如ASP 、PH P 、JSP 等)都属于这一层;第2层是应用逻辑层,又称中间层,负责处理表示层的应用请求,完成商务逻辑的计算任务,并将处理结果返回给用户;第3层是数据服务层,为应用提供数据来源,保证数据的低冗余、结构性、完整性和一致性[4]
。
系统采用了JavaMail API 和JSP 相结合的方法,构成了系统的1个3层B/S 结构。用户接收和发送邮件只需通过浏览网页就可实现。后台Java 应用程序介于一个邮件服务器和交互的Web 应用服务器之间,负责邮件的发送和接收以及邮件的管理,属于应用逻辑层。用户可以访问在JSP 引擎中的JSP 页面产生的Web 页面。属于数据服务层的邮件服务器存储用户所有的邮件和相关的资料,后台的数据库主要存储用户的有关资料和地址簿等(见图3)。85第28卷 第6期 钟 珞,等:基于JavaM ail A PI 的Web 邮件系统开发