概述
JavaMail API提供了一个独立于平台且与协议无关的框架来构建邮件和消息传递应用程序。 JavaMail API提供了一组抽象类,用于定义组成邮件系统的对象。 它是一个可选包(标准扩展名),用于阅读,撰写和发送电子邮件。
JavaMail提供了用于构建消息传递系统接口的元素,包括系统组件和接口。 虽然此规范没有定义任何特定的实现,但JavaMail确实包含几个实现RFC822和MIME Internet消息传递标准的类。 这些类作为JavaMail类包的一部分提供。
以下是JavaMail API支持的一些协议:
SMTP : Simple Mail Transfer Protocol缩写。 它提供了一种传递电子邮件的机制。
POP : Post Office Protocol缩写。 POP是大多数人用来获取邮件的机制。 它定义了对每个用户的单个邮箱的支持。 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)等。
这些细节将在随后的章节中介绍。
结构 (Architecture)
如上所述,java应用程序使用JavaMail API来编写,发送和接收电子邮件。下图说明了JavaMail的体系结构:
![JavaMail API架构](https://imgs.xnip.cn/cj/docimg/561/22c11890-14fb-4cb0-b064-d777dc8780ac.jpg)
JavaMail API的抽象机制类似于其他J2EE API,例如JDBC,JNDI和JMS。 如上面的架构图所示,JavaMail API分为两个主要部分:
独立于应用程序的部分:应用程序组件使用应用程序编程接口(API)来发送和接收邮件消息,而与所使用的基础提供程序或协议无关。
依赖于服务的部分:服务提供者接口(SPI)说特定于协议的语言,例如SMTP,POP,IMAP和网络新闻传输协议(NNTP)。 它用于将电子邮件服务的提供者插入J2EE平台。