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以及其他若幹檔案:
看一下lib檔案夾中的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包:
提示:如果使用JDK6以上的編譯環境,則不需要單獨下載下傳JAF開發包。
我們的API簡單介紹和環境準備都已經完成,下一步我們要着手進行開發了。
轉載請注明出處:http://blog.csdn.net/acmman/article/details/71104658