传智播客-邮件开发(3)-Java Mail简介

来源:互联网 发布:centos mpeg4 aac插件 编辑:程序博客网 时间:2024/05/17 01:41

如果想自己写程序发送和接收邮件,可以直接采用socket编程连接上远程的邮件服务器,然后按照邮件协议与邮件服务器进行交互,但是涉及较多细节;另外,要想自己编程创建出复杂的MIME格式的邮件,是一件非常困难和麻烦的事。而JavaMail就是sun公司为了方便java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用邮件协议,例如SMTP,POP3,IMAP等;也提供了能够创建出复杂MIME格式的邮件内容的相关API。

 

当然,先要从网上下载java mail包,毕竟这不是标准jdk里的内容。读java mail包中的readme.txt,了解到mail jar中的类分为java mail API和service Provider,这就类似JDBC API和数据库驱动程序一样,不要Provider的包,编译程序也不会有任何问题。在写程序时,可以先故意不导入Provider包,编译完全正常,等运行时才会出现错误。

 

JavaMail API按其功能划分通常可分为如下三类:
1、创建和解析邮件内容的API:Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件;
2、发送邮件的API:Transport类是发送邮件的核心API,它的实例对象代表了某个邮件发送协议的邮件发送对象,例如SMTP协议;
3、接收邮件的API:Store类是接收邮件的核心API,它的实例对象代表了某个邮件接收协议的邮件发送对象,例如POP3协议。

 

需要特别提出Session类和Authenticator类:
Session类用于定义整个应用程序所需的环境信息,以及收集客户端和邮件服务器建立连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等;Session根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。Session是通过生成实例对象时注入Properties对象来获取这些相关环境信息的;
Authenticator类封装了需要验证的用户名和密码信息,以便应用程序在连接SMTP邮件服务器收发邮件时实现用户信息验证。

 

JAF(JavaBeans Activation Framework,JavaBeans激活框架,属于第三方框架)是一个专门用于数据处理的框架,用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用在于让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
访问数据源中的数据;
获知数据源的数据类型;
获知可对数据进行的各种操作;
用户对数据进行某种操作时,自动创建执行该操作的软件部件的实例对象。

 

Java Mail API里利用了JAF从某种数据源中读取数据(例如生成邮件里的附件)和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型,所以虽然我们开发邮件系统时并没有涉及到编写与JAF相关的代码,但是仍然需要导入JAF jar包,不过使用jdk6的话就不必手动导入该jar包了,因为jdk6已经自带了JAF包。

 

总之,由于Java Mail API封装了邮件开发的很多底层细节并抽象成一个一个的对象,大大方便和简化了我们的开发过程,因此用java开发一个普通的收发邮件系统变得简单易行了。

原创粉丝点击