JavaMail学习笔记(二)、JavaMail API简介和配置开发环境
一、JavaMail API 简介
JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP和MIME等。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。JavaMail API封装在一个名mail.jar的文件中,它是开发JavaMail应用程序时所必须使用的核心jar包。
二、配置 JavaMail 开发环境
到Oracle官网下载mail.jar开发包,目前最新版本是1.4.5。下载成功后,会得到一个javamail1_4_5.zip的文件,然后解压。
解压后的目录结构如下图所示:
demo子目录:示例程序。
lib子目录:该目录下包含5个独立的邮件开发包:smtp.jar、pop3.jar、imap.jar和mailapi.jar,这5个jar文件是对mail.jar文件的分类包装。其中mailapi.jar封装了创建邮件内容和面向普通开发人员调用邮件发送和接收的API类,其它三个jar文件则是封装了它们名称相对应协议的服务实现程序。mailapi.jar与其它三个jar文件的关系,犹如JDBC API与各个数据库所实现jdbc驱动程序之间的关系一样。在编译Java邮件程序时,只需要mailapi.jar文件即可,但是,在运行时必须要有相应邮件协议的底层服务实现程序。如果应用程序中只需要使用到邮件发送功能,则可以只安装smtp.jar和mailapi.jar这两个文件,如果应用程序只需要使用邮件的接收功能,则可以只安装pop3.jar或imap.jar和mailapi.jar这两个jar文件,而不用安装整个mail.jar文件。
doc子目录:javamail API文档
安装javamail将mail.jar文件添加到系统环境变量CLASSPATH中,如下图所示:将mail.jar文件拷贝到%JAVA_HOME%\jre\lib\ext目录下上两种方式选其中任意一种方式即可完成javamail的安装。
三、JavaMail API的分类及体系结构
JavaMail API按其功能可以划分为以下三大类:
创建和解析邮件内容的API
发送邮件的API
接收邮件的API
以上三种类型的功能由多个API类组成,但每个功能所设及到的核心API并不多,其它API类都是这些核心API的辅助类,了解这些核心API的功能及作用,掌握它们之间的工作关系和调用流程,就很容易编写出javamail程序了,对于核心API类所用到辅助类,可以在使用这些核心API的过程中顺藤摸瓜,边查文档边了解这些辅助类的用法即可。具我了解,JavaMail中的核心AIP类包含Message、Session、Transport、Store4个类,它们之间的工作关系,如下图所示:
核心API介绍:
Message类
javax.mail.Message 类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。客户端程序发送邮件时,首先使用创建邮件的API,将要创建邮件的数据封装到Message对象中,然后把这个对象传递给邮件发送API发送出去。客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message类的实例对象中,客户端程序再使用邮件解析API,从这个对象中解析出接收到的邮件数据。
Session类
javax.mail.Session 类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些会话信息构建邮件收发的Store和Transport对象,以及为客户端创建Message对象提供信息支持。
Transport类
javax.mail.Transport 类是发送邮件的核心API类,它的实例对象,代表实现了某个邮件发送协议的邮件发送对象,例如SMTP 协议。客户端程序创建好Message对象后,只需要使用邮件发送API得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。
Store类
javax.mail.Store 类是接收邮件的核心API类,它的实例对象代表实现某个邮件接收协议的邮件接收对象,例如POP3和IMAP协议。客户端程序接收邮件时,只需要使用邮件接收API得到Store对象,然后调用Store对象的接收方法,就可以从指定的 POP3服务器中获得邮件数据,并把这些邮件数据封装到表示邮件的Message对象中。
四、JAF 简介
JAF(JavaBeans Activation Framework,JavaBeans 激活框架)是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型。
JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。大家知道,在MS Word程序中可以打开一篇Word文档中嵌套的Visio图片,JAF就是让Java程序能够完成类似的技术应用,让应用程序知道数据源支持哪些操作,每个操作分别调用哪个处理模块。对于通过JAF 封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
访问数据源中的数据
获知数据源的数据类型
获知可对数据进行的各种操作www.2cto.com
用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象
例如,如果使用JAF处理一个图片文件,那么应用程序通过JAF提供的接口就可以得到对图片文件进行操作的输入输出流,图片文件的MIME类型,JAF为图片文件提供的操作方法(如查看、编辑或打印图片等),应用程序调用这些操作时,JAF就会调用相应的处理模块对数据进行处理。
在Oracle官网可以下载 到JAF的jar包,下载后得到的是一个名为activation.jar文件,现在最新版本是1.1。
注意:JDK1.6集成了JAF框架,如果使用的是JDK1.6以上版本,则可以不用单独下载JAF框架。
作者:xyang81