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 API Architecture

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

  • 與應用程式無關的部分:應用程式程式設計介面(API)是由應用程式使用的元件來傳送和接收郵件,獨立於底層的供應商或協定中使用的。

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