JavaMail 教程

  • 简述

    JavaMail API 提供了一个独立于平台和协议的框架来构建邮件和消息传递应用程序。JavaMail API 提供了一组抽象类,定义了组成邮件系统的对象。它是用于阅读、撰写和发送电子消息的可选包(标准扩展)。
    本教程是为初学者准备的,以帮助他们了解基本的 JavaMail 编程。完成本教程后,您会发现自己在 JavaMail 编程方面处于中等专业水平,您可以在此基础上更上一层楼。
    JavaMail 编程基于Java 编程语言,因此如果您对Java 编程有基本的了解,那么学习在应用程序开发中使用JavaMail 会很有趣。
    JavaMail API 提供了一个独立于平台和协议的框架来构建邮件和消息传递应用程序。JavaMail API 提供了一组抽象类,定义了组成邮件系统的对象。它是用于阅读、撰写和发送电子消息的可选包(标准扩展)。
    JavaMail 提供了用于构造消息系统接口的元素,包括系统组件和接口。虽然本规范没有定义任何特定的实现,但 JavaMail 确实包含了几个实现 RFC822 和 MIME Internet 消息传递标准的类。这些类是作为 JavaMail 类包的一部分提供的。
    以下是 JavaMail API 支持的一些协议:
    • SMTP: 缩写 Simple Mail Transfer Protocol. 它提供了一种发送电子邮件的机制。
    • POP: 缩写 Post Office Protocol. POP 是 Internet 上大多数人用来获取邮件的机制。它定义了对每个用户的单个邮箱的支持。RFC 1939 定义了该协议。
    • IMAP: 缩写 Internet Message Access Protocol. 它是一种用于接收消息的高级协议。为每个用户提供多个邮箱的支持,此外,邮箱可以被多个用户共享。它在 RFC 2060 中定义。
    • MIME: 缩写 Multipurpose Internet Mail Extensions. . 它不是邮件传输协议。相反,它定义了传输的内容:消息的格式、附件等。有许多不同的文档在这里生效:RFC 822、RFC 2045、RFC 2046 和 RFC 2047。作为 JavaMail API 的用户,您通常不需要担心这些格式。但是,这些格式确实存在并且被您的程序使用。
    • NNTP and Others:第三方提供商提供了许多协议。其中一些是网络新闻传输协议 (NNTP)、安全多用途 Internet 邮件扩展 (S/MIME) 等。
    这些细节将在后续章节中介绍。
  • 架构

    如上所述,Java 应用程序使用 JavaMail API 来撰写、发送和接收电子邮件。下图说明了 JavaMail 的架构:
    JavaMail API 架构
    JavaMail API 的抽象机制类似于其他 J2EE API,例如 JDBC、JNDI 和 JMS。从上面的架构图可以看出,JavaMail API 分为两个主要部分:
    • 独立于应用程序的部分:应用程序组件使用应用程序编程接口 (API) 来发送和接收邮件消息,与使用的底层提供程序或协议无关。
    • 服务相关部分:服务提供者接口 (SPI) 使用特定于协议的语言,例如 SMTP、POP、IMAP 和网络新闻传输协议 (NNTP)。它用于将电子邮件服务的提供者插入 J2EE 平台。