Javamail Api 简明教程

JavaMail API - Overview

JavaMail API 提供了一个与平台无关且与协议无关的框架,用于构建邮件和消息传递应用程序。JavaMail API 提供了一组抽象类,定义了构成邮件系统的对象。它是一个用于读取、撰写和发送电子邮件的可选包(标准扩展)。

JavaMail 提供了用于构建到消息传递系统的接口的元素,包括系统组件和界面。虽然此规范未定义任何特定实现,但 JavaMail 确实包含了几个实现 RFC822 和 MIME Internet 消息传递标准的类。这些类作为 JavaMail 类包的一部分进行交付。

以下是 JavaMail API 中支持的一些协议:

  1. SMTPSimple Mail Transfer Protocol 的缩写。它提供了一种传递电子邮件的机制。

  2. POPPost Office Protocol 的缩写。POP 是互联网上大多数人用来获取邮件的机制。它定义了对每个用户单个邮箱的支持。RFC 1939 定义了此协议。

  3. IMAPInternet Message Access Protocol 的缩写。它是一种用于接收邮件的高级协议。它除了对每个用户的多个邮箱提供支持以外,还提供对多个用户共享邮箱的支持。它在 RFC 2060 中定义。

  4. MIMEMultipurpose Internet Mail Extensions 的缩写。它不是邮件传输协议。相反,它定义了所传输内容的内容:邮件的格式、附件等等。这里有多个不同的文件生效:RFC 822、RFC 2045、RFC 2046 和 RFC 2047。作为 JavaMail API 的用户,你通常不必担心这些格式。但是,这些格式确实存在并且你的程序正在使用它们。

  5. NNTP and Others :第三方提供商提供了许多协议。其中一些是网络新闻传输协议 (NNTP)、安全多用途互联网邮件扩展 (S/MIME) 等。

这些详细信息将在后续章节中涉及。

Architecture

如上所述,Java 应用程序使用 JavaMail API 来编写、发送和接收电子邮件。下图说明了 JavaMail 的架构:

architecture

JavaMail API 的抽象机制类似于其他 J2EE API,如 JDBC、JNDI 和 JMS。如上架构图所示,JavaMail API 分为两个主要部分:

  1. 与应用程序无关的部分:应用程序组件使用应用程序编程接口 (API) 来发送和接收邮件消息,而与所使用的底层提供者或协议无关。

  2. 与服务相关的部分:服务提供程序接口 (SPI) 讲特定于协议的语言,例如 SMTP、POP、IMAP 和网络新闻传输协议 (NNTP)。它用于将电子邮件服务的提供者插入到 J2EE 平台中。