论文部分内容阅读
摘要:J2EE是目前流行且成熟的分布式应用开发模型,结合J2EE在开发分布式应用方面的优势,设计了一种基于J2EE平台的电子邮件系统,并利用JavaMail强大的邮件处理功能,对系统进行了实现。
关键词:电子邮件;J2EE;JavaMail
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11647-02
1 引言
电子邮件是Internet上应用最广泛的服务之一,给人们的生产、生活带来了很大的方便。传统的邮件系统采用C/S(Client/Server)模式,结构简单,开发和运行环境也不复杂,但系统的拓展性、可维护性及安全性较差。随着分布式应用的发展, B/S(Browser/Server)模式的邮件系统逐渐取代了C/S模式的邮件系统,它完善了系统的管理,增强了系统的安全性,但是,它自身存在的诸如应用程序缺乏可移植性、提供厂商不兼容等问题也不容回避。J2EE(Java2 platform Enterprise Edition)是SUN公司近年来推出的企业级分布式应用程序开发平台,提出了多层结构的应用程序开发模型,对解决企业级的应用程序开发有着得天独厚的优势。
2 J2EE概述
J2EE是目前非常流行且成熟的技术架构,它提供了多层的分布式应用模型、一致化的安全模型以及企业计算所必须的多种服务,以基于组件的方法来设计、开发、装配及部署企业级应用程序,具有灵活的事务控制能力。基于J2EE平台的应用程序具有较强的安全性、可扩展性和可靠性。概括来讲,J2EE具有以下优点:
(1)平台无关性
采用J2EE技术,用户不必拘泥于某一种硬件或操作系统,可以根据应用的需要选择合适的硬件、操作系统和数据库。
(2)支持组件技术
利用J2EE设计、实现的各种组件,可以方便地进行组合、重构以满足用户更多的需求。
(3)强大的中间件功能
开发人员只需考虑分布式应用业务逻辑的实现,不必过多考虑复杂的底层实现,有助于节约开发成本,提高开发效率。
(4)丰富的应用接口
J2EE提供了一组能够满足多种应用要求的API(应用程序接口),所有这些API构成了J2EE平台,或者说构成了标准的企业级服务。
3 系统的总体设计
3.1系统的结构
基于J2EE平台的电子邮件系统由客户层、表示层、业务逻辑层和数据层等四部分组成,系统结构如图1所示。
图1 基于J2EE平台电子邮件系统的结构
3.2 客户层
客户层是Web浏览器,可以单独设计,也可以采用诸如IE、Netscape等流行的浏览器软件。用户通过浏览器提交对系统的请求,而系统的处理结果也通过浏览器展示给用户。客户层是表示层内容的显示窗口。
3.3 表示层
表示层是系统的对外接口,是系统的前台,是用户和系统交互的媒介。系统的表示层由诸多页面组成,按功能可分为用户注册页面、用户认证页面、邮件起草界面、邮件发送界面、邮件接收界面、邮件管理界面、出错处理界面等等。表示层接收客户层的请求,但并不处理请求,而是把请求提交给业务逻辑层,并从业务逻辑层得到处理结果。
3.4 业务逻辑层
业务逻辑层是系统的后台,是系统的核心,实现系统的各种功能。业务逻辑层与邮件服务器相联系,为表示层提供相应的信息。业务逻辑层提供用户注册、用户认证、邮件发送、邮件接收、邮件查询、邮件删除等基本功能。业务逻辑层接收表示层的请求,在数据层的配合下,完成请求处理,并把处理结果反馈给表示层。
3.5 数据层
数据层为系统功能的实现提供数据支持,系统的数据层就是邮件服务器。邮件服务器提供邮件转发和邮件接收功能,是邮件存放的地方,另外,它还存放用户的注册信息等相关数据。
基于J2EE的电子邮件系统相对于B/S模式的电子邮件系统,实现了表示层和业务逻辑层的分离,这种分离的优势主要体现在两个方面:一方面提高了系统的灵活性,系统在表示层上的修改一般不会影响到业务逻辑层的功能,反之亦然;另一方面增强了系统的安全性,J2EE平台提供对业务逻辑层完善的安全保护。
4 系统的实现
4.1 关键技术与JavaMail
系统的客户层和数据层可以分别采用通用的Web浏览器和邮件服务器,系统的表示层和业务逻辑层是实现系统功能的关键,表示层采用HTML、JSP和Serverlet等技术实现,业务逻辑层采用EJB技术实现,JSP、Serverlet和EJB之间联系通过JavaBean技术实现。JSP、Serverlet、JavaBean和EJB是J2EE平台的重要组成部分,这些技术可以非常方便地实现系统的用户接口(表示层)和系统的核心功能(业务逻辑层)。HTML、JSP、Serverlet、JavaBean和EJB之间的联系如图2所示。
图2 系统关键技术之间的联系
JavaMail是SUN公司提出的一组基于Java的与协议无关的收发邮件接口。它支持SMTP(Simple Mail Transfer Protocol version 3)协议、POP3(Post Office Protocol version 3)协议及IMAP4(Internet Message Access Protocol version 4)协议,提供SMTP服务器认证功能。另外,JavaMail除支持普通的文本邮件外,还支持HTML和MIME(Multipurpose Internet Mail Extensions)格式的邮件,并且能对MIME格式的邮件进行base64、quoted-printable、ASCII 7bit、ASCII 8bit和binary编码。JavaMail API中包括的组件类型丰富、功能强大,利用JavaMail API能够非常方便地实现邮件系统。
4.2 邮件发送和邮件接收
邮件发送和邮件接收是邮件系统的主要模块,它们在表示层的功能比较简单,体现功能的Web页面也不复杂,这里不再赘述,它们的主要功能集中在业务逻辑层,依托EJB实现,下面就邮件发送和邮件接收在EJB中的实现进行分析。
假设邮件发送和邮件接收前已通过用户认证,并且已获取用户的请求信息。邮件的发送过程可以这样描述,首先选定所用的邮件服务器和传输协议,并设置邮件内容类型,然后设置邮件的属性,包括发信人地址、收信人地址、邮件主题、邮件内容、发信时间等,如果有必要,还需添加邮件附件,最后发送至邮件服务器,由邮件服务器确定是否转发。邮件接收的过程同邮件发送的过程相反,首先建立和邮件服务器的连接,然后读取邮件文件夹,获得邮件的全部信息,包括发信人地址、邮件主题、邮件内容、邮件发送日期等,如果邮件带有附件,还需要获取相应的附件,将获得的附件保存到系统的当前目录,最后将服务器端保留的邮件删除。邮件发送过程如图3(a)所示,邮件接收过程如图3(b)所示。
图3
下面给出利用JavaMail组件实现邮件发送的参考代码。
//选定所用的邮件服务器和传输协议
java.util.Properties props = System.getProperties( );
props.put(“mail.smtp.host”,host);
props.put(“mail.smtp.auth”, “true”);//产生新的Session服务
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
Message msg = new MimeMessage(mailSession);
//设置邮件属性、邮件内容类型、发送邮件等
msg.setFrom(new InternetAddress(From));
//From为已经获取的发信人地址
……
msg.setText(messageText);
//messageText为已经获取的邮件内容类型
Transport.send(msg);//邮件发送
4.3 系统的开发和测试环境
笔者采用的系统开发和测试环境是IBM公司的WebSphere Studio Application Developer 5.0(WSAD 5.0)。WSAD 5.0 作为J2EE的集成开发环境之一,包含丰富的Web应用程序开发工具集,支持HTML、JavaScript、JSP、Serverlet、JavaBean、EJB等技术。更为重要的是,它的测试环境功能强大、使用方便,提供支持动态Web页面(JSP、Serverlet)、EJB运行的Web容器和EJB容器。笔者采用的邮件服务器是Microsoft公司的MS Exchange服务器,它配置简单,功能强大。
5 结束语
基于J2EE架构的电子邮件系统具有移植性好、通用性强、安全性高、易于维护和升级的特点。系统在局域网中进行的测试表明,系统可操作性、稳定性均达到了预期的目标。但是,系统的功能还存在一些不完善的地方,需要进一步的改进。
参考文献:
[1]飞思科技产品研发中心.精通Jbuilder 9[M].电子工业出版社,2005.
[2]刘玲.基于java mail API的Web邮件系统开发[J].武汉理工大学学报,2006,06.
[3]候兴超.关于电子邮件安全策略[J].计算机安全,2006,04.
[4]吴鹏.基于PKI/PMI的Web应用安全解决方案[J].计算机工程与应用,2006,06.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:电子邮件;J2EE;JavaMail
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11647-02
1 引言
电子邮件是Internet上应用最广泛的服务之一,给人们的生产、生活带来了很大的方便。传统的邮件系统采用C/S(Client/Server)模式,结构简单,开发和运行环境也不复杂,但系统的拓展性、可维护性及安全性较差。随着分布式应用的发展, B/S(Browser/Server)模式的邮件系统逐渐取代了C/S模式的邮件系统,它完善了系统的管理,增强了系统的安全性,但是,它自身存在的诸如应用程序缺乏可移植性、提供厂商不兼容等问题也不容回避。J2EE(Java2 platform Enterprise Edition)是SUN公司近年来推出的企业级分布式应用程序开发平台,提出了多层结构的应用程序开发模型,对解决企业级的应用程序开发有着得天独厚的优势。
2 J2EE概述
J2EE是目前非常流行且成熟的技术架构,它提供了多层的分布式应用模型、一致化的安全模型以及企业计算所必须的多种服务,以基于组件的方法来设计、开发、装配及部署企业级应用程序,具有灵活的事务控制能力。基于J2EE平台的应用程序具有较强的安全性、可扩展性和可靠性。概括来讲,J2EE具有以下优点:
(1)平台无关性
采用J2EE技术,用户不必拘泥于某一种硬件或操作系统,可以根据应用的需要选择合适的硬件、操作系统和数据库。
(2)支持组件技术
利用J2EE设计、实现的各种组件,可以方便地进行组合、重构以满足用户更多的需求。
(3)强大的中间件功能
开发人员只需考虑分布式应用业务逻辑的实现,不必过多考虑复杂的底层实现,有助于节约开发成本,提高开发效率。
(4)丰富的应用接口
J2EE提供了一组能够满足多种应用要求的API(应用程序接口),所有这些API构成了J2EE平台,或者说构成了标准的企业级服务。
3 系统的总体设计
3.1系统的结构
基于J2EE平台的电子邮件系统由客户层、表示层、业务逻辑层和数据层等四部分组成,系统结构如图1所示。
图1 基于J2EE平台电子邮件系统的结构
3.2 客户层
客户层是Web浏览器,可以单独设计,也可以采用诸如IE、Netscape等流行的浏览器软件。用户通过浏览器提交对系统的请求,而系统的处理结果也通过浏览器展示给用户。客户层是表示层内容的显示窗口。
3.3 表示层
表示层是系统的对外接口,是系统的前台,是用户和系统交互的媒介。系统的表示层由诸多页面组成,按功能可分为用户注册页面、用户认证页面、邮件起草界面、邮件发送界面、邮件接收界面、邮件管理界面、出错处理界面等等。表示层接收客户层的请求,但并不处理请求,而是把请求提交给业务逻辑层,并从业务逻辑层得到处理结果。
3.4 业务逻辑层
业务逻辑层是系统的后台,是系统的核心,实现系统的各种功能。业务逻辑层与邮件服务器相联系,为表示层提供相应的信息。业务逻辑层提供用户注册、用户认证、邮件发送、邮件接收、邮件查询、邮件删除等基本功能。业务逻辑层接收表示层的请求,在数据层的配合下,完成请求处理,并把处理结果反馈给表示层。
3.5 数据层
数据层为系统功能的实现提供数据支持,系统的数据层就是邮件服务器。邮件服务器提供邮件转发和邮件接收功能,是邮件存放的地方,另外,它还存放用户的注册信息等相关数据。
基于J2EE的电子邮件系统相对于B/S模式的电子邮件系统,实现了表示层和业务逻辑层的分离,这种分离的优势主要体现在两个方面:一方面提高了系统的灵活性,系统在表示层上的修改一般不会影响到业务逻辑层的功能,反之亦然;另一方面增强了系统的安全性,J2EE平台提供对业务逻辑层完善的安全保护。
4 系统的实现
4.1 关键技术与JavaMail
系统的客户层和数据层可以分别采用通用的Web浏览器和邮件服务器,系统的表示层和业务逻辑层是实现系统功能的关键,表示层采用HTML、JSP和Serverlet等技术实现,业务逻辑层采用EJB技术实现,JSP、Serverlet和EJB之间联系通过JavaBean技术实现。JSP、Serverlet、JavaBean和EJB是J2EE平台的重要组成部分,这些技术可以非常方便地实现系统的用户接口(表示层)和系统的核心功能(业务逻辑层)。HTML、JSP、Serverlet、JavaBean和EJB之间的联系如图2所示。
图2 系统关键技术之间的联系
JavaMail是SUN公司提出的一组基于Java的与协议无关的收发邮件接口。它支持SMTP(Simple Mail Transfer Protocol version 3)协议、POP3(Post Office Protocol version 3)协议及IMAP4(Internet Message Access Protocol version 4)协议,提供SMTP服务器认证功能。另外,JavaMail除支持普通的文本邮件外,还支持HTML和MIME(Multipurpose Internet Mail Extensions)格式的邮件,并且能对MIME格式的邮件进行base64、quoted-printable、ASCII 7bit、ASCII 8bit和binary编码。JavaMail API中包括的组件类型丰富、功能强大,利用JavaMail API能够非常方便地实现邮件系统。
4.2 邮件发送和邮件接收
邮件发送和邮件接收是邮件系统的主要模块,它们在表示层的功能比较简单,体现功能的Web页面也不复杂,这里不再赘述,它们的主要功能集中在业务逻辑层,依托EJB实现,下面就邮件发送和邮件接收在EJB中的实现进行分析。
假设邮件发送和邮件接收前已通过用户认证,并且已获取用户的请求信息。邮件的发送过程可以这样描述,首先选定所用的邮件服务器和传输协议,并设置邮件内容类型,然后设置邮件的属性,包括发信人地址、收信人地址、邮件主题、邮件内容、发信时间等,如果有必要,还需添加邮件附件,最后发送至邮件服务器,由邮件服务器确定是否转发。邮件接收的过程同邮件发送的过程相反,首先建立和邮件服务器的连接,然后读取邮件文件夹,获得邮件的全部信息,包括发信人地址、邮件主题、邮件内容、邮件发送日期等,如果邮件带有附件,还需要获取相应的附件,将获得的附件保存到系统的当前目录,最后将服务器端保留的邮件删除。邮件发送过程如图3(a)所示,邮件接收过程如图3(b)所示。
图3
下面给出利用JavaMail组件实现邮件发送的参考代码。
//选定所用的邮件服务器和传输协议
java.util.Properties props = System.getProperties( );
props.put(“mail.smtp.host”,host);
props.put(“mail.smtp.auth”, “true”);//产生新的Session服务
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
Message msg = new MimeMessage(mailSession);
//设置邮件属性、邮件内容类型、发送邮件等
msg.setFrom(new InternetAddress(From));
//From为已经获取的发信人地址
……
msg.setText(messageText);
//messageText为已经获取的邮件内容类型
Transport.send(msg);//邮件发送
4.3 系统的开发和测试环境
笔者采用的系统开发和测试环境是IBM公司的WebSphere Studio Application Developer 5.0(WSAD 5.0)。WSAD 5.0 作为J2EE的集成开发环境之一,包含丰富的Web应用程序开发工具集,支持HTML、JavaScript、JSP、Serverlet、JavaBean、EJB等技术。更为重要的是,它的测试环境功能强大、使用方便,提供支持动态Web页面(JSP、Serverlet)、EJB运行的Web容器和EJB容器。笔者采用的邮件服务器是Microsoft公司的MS Exchange服务器,它配置简单,功能强大。
5 结束语
基于J2EE架构的电子邮件系统具有移植性好、通用性强、安全性高、易于维护和升级的特点。系统在局域网中进行的测试表明,系统可操作性、稳定性均达到了预期的目标。但是,系统的功能还存在一些不完善的地方,需要进一步的改进。
参考文献:
[1]飞思科技产品研发中心.精通Jbuilder 9[M].电子工业出版社,2005.
[2]刘玲.基于java mail API的Web邮件系统开发[J].武汉理工大学学报,2006,06.
[3]候兴超.关于电子邮件安全策略[J].计算机安全,2006,04.
[4]吴鹏.基于PKI/PMI的Web应用安全解决方案[J].计算机工程与应用,2006,06.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。