第一讲:JavaMail概述


      有Sun公司为方便开发人员在应用程序中实现邮件的发送和接收功能而提供的一套标准开发包实现了SMTP、POP3、IMAP等底层协议的服务提供程序。开发人员只需要使用JavaMail 提供的mail.jar架包就能够实现在程序中收发邮件。
PS: 在Java EE开发包中封装了JavaMail API,所以在Java EE环境中不需要单独安装mail.jar文件




一、JavaMail API分类及体系结构


JavaMailSenderImpl自定义设置 javamail是一组_javamail






图1:核心类的工作关系(取自《JavaMail开发详解》)


JavaMail API按其功能划分通常可分为如下三大类:

  • 创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。 
  • 发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。 
  • 接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。

其中JavaMail的四个核心类:Message、Transport、Store、Session

1.1 Message

     javax.mail.Message类是创建和解析邮件的核心API。因此当要发送邮件时需要建立Message对象以便发送;当接收邮件时又需要建立Message用于保存邮件以便读取消息。

1.2 Transport类
      javax.mail.Transport类是发送邮件的核心API类。其实例对象实现了某个邮件发送协议的邮件发送对象。消息建立后就可以通过Transport对象将邮件发送出去。

1.3 Store类
      javax.mail.Store类是接收邮件的核心API类。其实实例对象实现了某个邮件接收协议的邮件接收对象。只需要获取到该Store对象就可以获取邮件对象,此时的邮件对象也是封装在Message对象中。


1.4 Session类
      javax.mail/Session类用于定义整个应用程序所需要的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。




二、JAF
      JAF(JavaBean Activation Framework, JavaBean激活架构)是一个专用的数据处理框架,它用于封装数据并且为应用程序提供访问和操作数据的接口。JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息头和消息类型。JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型。


PS:目前使用的版本(Java SE、Java EE)中JAF也已经包含了