1.前言
我们之前通过使用命令行手工敲SMTP和POP3的指令,进行了邮件收发。
我们接下来使用Java来实现邮件的收发。
如果我们不依赖Java的邮件API,而是使用原生模拟SMTP和POP3指令去收发邮件的话,
我们可以选择的技术就是Socket网络编程,连接上远程的邮件服务器,然后按照邮件协议与
邮件服务器进行交互,这里要涉及到很多细节问题,而且,想要自己编程实现复杂的MIME
格式的邮件,是一件非常困难和麻烦的事。
所以,Sun公司提供了一个专门用来收发邮件的API。即是“JavaMail”。
2.JavaMail介绍
JavaMail是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接受功能的一套
标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP。
开发人员使用JavaMail API编写邮件处理软件时,无需考虑邮件协议的底层实施细节,只要
调用JavaMail开发包中相应的API类就可以了。
JavaMail也提供了能够创建各种复杂MIME格式的邮件内容的相关API。
3.JavaMail的体系结构与API分类
JavaMail的API按其功能划分通常可以分为如下三大类:
(1)创建和解析邮件内容的API:Message类是创建和解析邮件的核心API,它的实例对象
代表一封电子邮件。
(2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象实现了某个邮件
发送协议的邮件发送对象,例如SMTP协议。
(3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件
接受协议的和邮件接收对象,例如POP3协议。
(4)Session类
Session类用于定义整个应用服务所需的环境信息,以及收集客户端与邮件服务器建立网络连接
的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送协议和接受协议等。Session对象根
据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息
支持。
4.下载JavaMail的开发包
我们在网上可以下载JavaMail的开发包,我们下载的版本是javamail-1.4.7。
下载下来之后,是一个压缩文件,我们解压之后,可以看到里面有demo实例文件夹、
docs开发文档文件夹、以及核心jar包lib文件夹和mail.jar以及其他若干文件:
看一下lib文件夹中的jar:
其中mailapi.jar是核心的jar包,它提供的邮件的发送与接收的总框架和接口,是邮件发送API
与接收的龙骨。邮件发送的实现需要引入smtp.jar,邮件接收的实现需要引入pop3.jar、imap.jar
或gimap.jar。而dsn.jar是发邮件用到的jar包,用来解析dsn。
mail.jar中的内容包含了lib中的所有jar包的功能。提供lib的原因是因为有些开发人员只需要
其中的一些功能,可以根据需要选择引入。
5.JAF简介
在我们生成一封邮件的时候,生成邮件API的内部,又调用了其他API。JavaMail内部调用了一个
第三方Jar包,叫JAF。
JAF(JavaBeans Activation Framework)即JavaBeans激活框架,是一个专用的数据处理框架,它
用于封装数据,并为应用程序提供访问和操作数据的接口。
JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过
JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
(1)访问数据源中的数据
(2)获知数据源的数据类型
(3)获知可对数据进行的各种操作
(4)用户对象数据执行某种操作时,自动创建执行该操作的软件部件的实例对象。
JavaMail的API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成
MIME消息中的消息体和消息类型。
6.下载JAF的开发包
既然我们的JavaMail需要引用JAF的API,所以我们这里也需要下载JAF。
我们在网上下载JAF的开发包,我们这里下载的是JAF1.1的开发包。解压之后可以获得相关的文档
和jar包:
提示:如果使用JDK6以上的编译环境,则不需要单独下载JAF开发包。
我们的API简单介绍和环境准备都已经完成,下一步我们要着手进行开发了。
标签:Java,jar,API,JavaMail,JAF,邮件,开发包 From: https://blog.51cto.com/u_16012040/6131019