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 的抽象機制類似於其他的J2EE API,如JDBC,JNDI和JMS。如上面看到的體系結構圖,JavaMail API 被分為兩個主要部分:
-
與應用程式無關的部分:應用程式編程介面(API)是由應用程式使用的組件來發送和接收郵件,獨立於底層的供應商或協議中使用的。
-
一個服務相關的部分:一個服務提供商介面(SPI)說,協議特定的語言,如SMTP,POP,IMAP和網路新聞傳輸協議(NNTP)。它是用來插在一封郵件服務到J2EE平臺的供應商。