JavaMail API 概述

JavaMail API提供了一種與平臺無關和協議獨立的框架來構建郵件和消息應用程序。 JavaMail API提供了一組抽象類定義構成一個郵件系統的對象。它是閱讀,撰寫和發送電子信息的可選包(標準擴展)。

JavaMail 規定,用於構造一個接口,一個消息傳送系統中的元素,包括系統的部件和接口。雖然本規範沒有定義任何特定的實現,JavaMail是否包括實現RFC822和MIME Internet郵件標準幾類。這些類都作爲JavaMail的類包的一部分。

以下是一些在 JavaMail API 支持的協議:

  • SMTP:縮寫爲簡單郵件傳輸協議。它提供傳送郵件的機制。

  • POP: 縮寫爲郵局協議。 POP是大多數人在互聯網上使用,以獲得他們的郵件的機制。它定義了一個單個郵箱的支持爲每個用戶。 RFC 1939定義了該協議。

  • IMAP: 縮寫爲Internet郵件訪問協議。它是一種先進的協議,用於接收消息。它提供了多個郵箱的支持爲每個用戶,除了郵箱可以被多個用戶共享。它是在RFC2060中定義。

  • MIME: 縮寫爲多用途Internet郵件擴展。 。這不是一個郵件傳輸協議。相反,它定義了什麼是傳輸的內容:郵件,附件,等等的格式。有許多不同的文檔生效這裏:RFC822,RFC2045,RFC2046和RFC2047。作爲 JavaMail API 用戶,您通常不需要擔心這些格式。然而,這些格式確實存在,並且由程序使用。

  • NNTP 其它: 有由第三方供應商提供的許多協議。其中有些是網絡新聞傳輸協議(NNTP),安全多用途Internet郵件擴展(S / MIME)等。

這些細節將包括在後續章節。

體系結構

正如上面的 java 應用程序表示用戶使用 JavaMail API 來編寫,發送和接收電子郵件。下圖說明了JavaMail 的體系結構:

JavaMail

JavaMail API 的抽象機制類似於其他的J2EE API,如JDBC,JNDI和JMS。如上面看到的體系結構圖,JavaMail API 被分爲兩個主要部分:

  • 與應用程序無關的部分:應用程序編程接口(API)是由應用程序使用的組件來發送和接收郵件,獨立於底層的供應商或協議中使用的。

  • 一個服務相關的部分:一個服務提供商接口(SPI)說,協議特定的語言,如SMTP,POP,IMAP和網絡新聞傳輸協議(NNTP)。它是用來插在一封郵件服務到J2EE平臺的供應商。