天天看點

【Java郵件開發】4.JavaMail API的簡單介紹和jar包準備

1.前言

我們之前通過使用指令行手工敲SMTP和POP3的指令,進行了郵件收發。

我們接下來使用Java來實作郵件的收發。

如果我們不依賴Java的郵件API,而是使用原生模拟SMTP和POP3指令去收發郵件的話,

我們可以選擇的技術就是Socket網絡程式設計,連接配接上遠端的郵件伺服器,然後按照郵件協定與

郵件伺服器進行互動,這裡要涉及到很多細節問題,而且,想要自己程式設計實作複雜的MIME

格式的郵件,是一件非常困難和麻煩的事。

是以,Sun公司提供了一個專門用來收發郵件的API。即是“JavaMail”。

2.JavaMail介紹

JavaMail是Sun公司為友善Java開發人員在應用程式中實作郵件發送和接受功能的一套

标準開發包,它支援一些常用的郵件協定,如SMTP、POP3、IMAP。

開發人員使用JavaMail API編寫郵件處理軟體時,無需考慮郵件協定的底層實施細節,隻要

調用JavaMail開發包中相應的API類就可以了。

JavaMail也提供了能夠建立各種複雜MIME格式的郵件内容的相關API。

3.JavaMail的體系結構與API分類

JavaMail的API按其功能劃分通常可以分為如下三大類:

(1)建立和解析郵件内容的API:Message類是建立和解析郵件的核心API,它的執行個體對象

代表一封電子郵件。

(2)發送郵件的API:Transport類是發送郵件的核心API類,它的執行個體對象實作了某個郵件

發送協定的郵件發送對象,例如SMTP協定。

(3)接收郵件的API:Store類是接收郵件的核心API類,它的執行個體對象代表實作了某個郵件

接受協定的和郵件接收對象,例如POP3協定。

(4)Session類

    Session類用于定義整個應用服務所需的環境資訊,以及收集用戶端與郵件伺服器建立網絡連接配接

的會話資訊,如郵件伺服器的主機名、端口号、采用的郵件發送協定和接受協定等。Session對象根

據這些資訊建構用于郵件收發的Transport和Store對象,以及為用戶端建立Message對象時提供資訊

支援。

4.下載下傳JavaMail的開發包

我們在網上可以下載下傳JavaMail的開發包,我們下載下傳的版本是javamail-1.4.7。

下載下傳下來之後,是一個壓縮檔案,我們解壓之後,可以看到裡面有demo執行個體檔案夾、

docs開發文檔檔案夾、以及核心jar包lib檔案夾和mail.jar以及其他若幹檔案:

【Java郵件開發】4.JavaMail API的簡單介紹和jar包準備

看一下lib檔案夾中的jar:

【Java郵件開發】4.JavaMail API的簡單介紹和jar包準備

其中mailapi.jar是核心的jar包,它提供的郵件的發送與接收的總架構和接口,是郵件發送API

與接收的龍骨。郵件發送的實作需要引入smtp.jar,郵件接收的實作需要引入pop3.jar、imap.jar

或gimap.jar。而dsn.jar是發郵件用到的jar包,用來解析dsn。

mail.jar中的内容包含了lib中的所有jar包的功能。提供lib的原因是因為有些開發人員隻需要

其中的一些功能,可以根據需要選擇引入。

5.JAF簡介

在我們生成一封郵件的時候,生成郵件API的内部,又調用了其他API。JavaMail内部調用了一個

第三方Jar包,叫JAF。

JAF(JavaBeans Activation Framework)即JavaBeans激活架構,是一個專用的資料處理架構,它

用于封裝資料,并為應用程式提供通路和操作資料的接口。

JAF的主要作用在于讓Java應用程式知道如何對一個資料源進行檢視、編輯和列印等操作。對于通過

JAF封裝的資料,應用程式通過JAF提供的接口可以完成如下功能:

(1)通路資料源中的資料

(2)獲知資料源的資料類型

(3)獲知可對資料進行的各種操作

(4)使用者對象資料執行某種操作時,自動建立執行該操作的軟體部件的執行個體對象。

JavaMail的API可以利用JAF從某種資料源中讀取資料和獲知資料的MIME類型,并用這些資料生成

MIME消息中的消息體和消息類型。

6.下載下傳JAF的開發包

既然我們的JavaMail需要引用JAF的API,是以我們這裡也需要下載下傳JAF。

我們在網上下載下傳JAF的開發包,我們這裡下載下傳的是JAF1.1的開發包。解壓之後可以獲得相關的文檔

和jar包:

【Java郵件開發】4.JavaMail API的簡單介紹和jar包準備

提示:如果使用JDK6以上的編譯環境,則不需要單獨下載下傳JAF開發包。

我們的API簡單介紹和環境準備都已經完成,下一步我們要着手進行開發了。

轉載請注明出處:http://blog.csdn.net/acmman/article/details/71104658