JavaMail學習筆記(二)JavaMail API簡介和配置開發環境

 

一、JavaMail API 簡介

       JavaMail API是Sun公司爲方便Java開發人員在應用程序中實現郵件發送和接收功能而提供的一套標準開發包,它支持一些常用的郵件協議,如:SMTP、POP3、IMAP和MIME等。開發人員使用JavaMail API編寫郵件處理軟件時,無須考慮郵件協議底層的實現細節,只要調用JavaMail開發包中相應的API類就可以了。JavaMail API封裝在一個名mail.jar的文件中,它是開發JavaMail應用程序時所必須使用的核心jar包。

二、配置 JavaMail 開發環境

 
  1. 到Oracle官網下載mail.jar開發包,目前最新版本是1.4.5。下載成功後,會得到一個javamail1_4_5.zip的文件,然後解壓。
  2. 解壓後的目錄結構如下圖所示:
    • mail.jar:就是開發javamail程序所必須要用到的核心開發包。
    • demo子目錄:示例程序。
    • lib子目錄:該目錄下包含5個獨立的郵件開發包:smtp.jar、pop3.jar、imap.jar和mailapi.jar,這5個jar文件是對mail.jar文件的分類包裝。其中mailapi.jar封裝了創建郵件內容和麪向普通開發人員調用郵件發送和接收的API類,其它三個jar文件則是封裝了它們名稱相對應協議的服務實現程序。mailapi.jar與其它三個jar文件的關係,猶如JDBC API與各個數據庫所實現jdbc驅動程序之間的關係一樣。在編譯Java郵件程序時,只需要mailapi.jar文件即可,但是,在運行時必須要有相應郵件協議的底層服務實現程序。如果應用程序中只需要使用到郵件發送功能,則可以只安裝smtp.jar和mailapi.jar這兩個文件,如果應用程序只需要使用郵件的接收功能,則可以只安裝pop3.jar或imap.jar和mailapi.jar這兩個jar文件,而不用安裝整個mail.jar文件。
    • doc子目錄:javamail API文檔
  3. 安裝javamail
  • 將mail.jar文件添加到系統環境變量CLASSPATH中,如下圖所示:
  • 將mail.jar文件拷貝到%JAVA_HOME%\jre\lib\ext目錄下
以上兩種方式選其中任意一種方式即可完成javamail的安裝。


三、JavaMail API的分類及體系結構


     JavaMail API按其功能可以劃分爲以下三大類:
  1. 創建和解析郵件內容的API
  2. 發送郵件的API
  3. 接收郵件的API
   以上三種類型的功能由多個API類組成,但每個功能所設及到的核心API並不多,其它API類都是這些核心API的輔助類,瞭解這些核心API的功能及作用,掌握它們之間的工作關係和調用流程,就很容易編寫出javamail程序了,對於核心API類所用到輔助類,可以在使用這些核心API的過程中順藤摸瓜,邊查文檔邊瞭解這些輔助類的用法即可。具我瞭解,JavaMail中的核心AIP類包含Message、Session、Transport、Store4個類,它們之間的工作關係,如下圖所示:

核心API介紹:
  • Message類
    javax.mail.Message 類是創建和解析郵件的核心API,它的實例對象代表一封電子郵件。客戶端程序發送郵件時,首先使用創建郵件的API,將要創建郵件的數據封裝到Message對象中,然後把這個對象傳遞給郵件發送API發送出去。客戶端程序接收郵件時,郵件接收API把接收到的郵件數據封裝在Message類的實例對象中,客戶端程序再使用郵件解析API,從這個對象中解析出接收到的郵件數據。
  • Session類
    javax.mail.Session 類用於定義整個應用程序所需的環境信息,以及收集客戶端與郵件服務器建立網絡連接的會話信息,如郵件服務器的主機名、端口號、採用的郵件發送和接收協議等。Session對象根據這些會話信息構建郵件收發的Store和Transport對象,以及爲客戶端創建Message對象提供信息支持。
  • Transport類
    javax.mail.Transport 類是發送郵件的核心API類,它的實例對象,代表實現了某個郵件發送協議的郵件發送對象,例如SMTP 協議。客戶端程序創建好Message對象後,只需要使用郵件發送API得到 Transport 對象,然後把 Message 對象傳遞給 Transport 對象,並調用它的發送方法,就可以把郵件發送給指定的SMTP服務器。
  • Store類
    javax.mail.Store 類是接收郵件的核心API類,它的實例對象代表實現某個郵件接收協議的郵件接收對象,例如POP3和IMAP協議。客戶端程序接收郵件時,只需要使用郵件接收API得到Store對象,然後調用Store對象的接收方法,就可以從指定的 POP3服務器中獲得郵件數據,並把這些郵件數據封裝到表示郵件的Message對象中。

四、JAF 簡介


        JAF(JavaBeans Activation Framework,JavaBeans 激活框架)是一個專用的數據處理框架,它用於封裝數據,併爲應用程序提供訪問和操作數據的接口。JavaMail API可以利用JAF從某種數據源中讀取數據和獲知數據的MIME類型,並用這些數據生成MIME消息中的消息體和消息類型。
    JAF的主要作用在於讓Java應用程序知道如何對一個數據源進行查看、編輯和打印等操作。大家知道,在MS Word程序中可以打開一篇Word文檔中嵌套的Visio圖片,JAF就是讓Java程序能夠完成類似的技術應用,讓應用程序知道數據源支持哪些操作,每個操作分別調用哪個處理模塊。對於通過JAF 封裝的數據,應用程序通過JAF提供的接口可以完成如下功能:
  1. 訪問數據源中的數據
  2. 獲知數據源的數據類型
  3. 獲知可對數據進行的各種操作
  4. 用戶對數據執行某種操作時,自動創建執行該操作的軟件部件的實例對象
    例如,如果使用JAF處理一個圖片文件,那麼應用程序通過JAF提供的接口就可以得到對圖片文件進行操作的輸入輸出流,圖片文件的MIME類型,JAF爲圖片文件提供的操作方法(如查看、編輯或打印圖片等),應用程序調用這些操作時,JAF就會調用相應的處理模塊對數據進行處理。
    在Oracle官網可以下載到JAF的jar包,下載後得到的是一個名爲activation.jar文件,現在最新版本是1.1。
    注意:JDK1.6集成了JAF框架,如果使用的是JDK1.6以上版本,則可以不用單獨下載JAF框架。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章