邮件收发编程(二)--javax.mail包介绍及原理分析

135 阅读2分钟

简介

javax.mail是javaee的一部分,是java针对邮件收发编程提供的实现,分为API和自身实现两部分。

主体类结构图

  • JavaMail分层架构

分层架构

1. 抽象层定义了为支持所有邮件系统所支持的基类、接口和抽象方法。
2. 因特网实现层使用因特网标准-RFC822和MIME实现了抽象层
3. JavaMail使用JAF封装消息数据,并处理数据交互。
  • JavaMail类层次结构

JavaMail类层次结构

  • JavaMail框架

消息处理过程

一个典型JavaMail框架邮件处理过程:

1.创建一个mail消息
2.创建一个Session对象,使用它进行用户认证及进行消息的接收和发送。
3.发送消息到接收者
4.从一个消息仓库接收消息
5.执行高级命令取回消息

JavaMail API主要组件

  • Message类

    Message类由一组属性和一个内容体构成一个mail Message.它定义了地址信息并且定义了内容体结构并包含内容数据类型。

    • Message存储和检索

      Message是存储在一个Folder对象中,一个Folder对象包含子folder和message,它提你工作了一个树状的folder层次。Folder类定义了读取,你们追加,拷贝和删除消息的方法。Folder对象也能发送事件到注册的事件监听器。

    • Message构成和传输

      客户端通过Message子类创建一个新的Message,并通过Transport.send把它发送到它的目标地址。

  • Store类 它定义了一数据库,保存folder层次结构以及和它包含的messages。并且它规定了访问folder和检索存储在foldder中的message的访问协议。它也提供了提交到数据库,检索folders以及关闭连接的方法。

  • Service类

  • Session类

    定义了全局以及和每个用户相关的属性。提供了转义的认证session。

    做为Store和Transport的对象工作实现。

  • Event模型

    JavaMail事件模型使用JDK1.1 event-model规范。

    所有事件都是MailEvent的子类,JavaMail Store,Folder,Transport是事件源。