Java Mail API
綜述:Java Mail API的開發是SUN為Java開發者提供公用API框架的持續努力的良好例證。提倡公用框架,反對受限于供應商的解決方案,充分預示著一個日益開放的開發環境的建立。
Java Mail API的結構本身證明了它的開發者的基本目標之一--軟件開發的工作量應該取決于應用程序本身的復雜程度以及開發者所要求的控制程度。換句話說,Java Mail API盡可能地保持簡單。乍看起來,Java Mail API所擁有的類總數以及類之間的關系可能讓人誤解為要花費漫長的學習時間。實際上,一旦正式開始使用,你就會發現該API不失為在應用程序中加入健壯的 郵件/通訊支持的簡單工具。
建立JavaMail使用環境,需要哪些軟件
首先,需要安裝 JavaMail API。現在有兩種常用的 JavaMail API 版本:1.2 和 1.1.3。雖然版本 1.2 是最新版,但版本 1.1.3 包含了Java 2 平臺企業版(Java 2 Platform, Enterprise Edition,J2EE)的版本 1.2.1,所以仍然有很多人使用它。
·JavaMail 1.2 的安裝
要使用 JavaMail 1.2 API,請下載 JavaMail 1.2 實現,解開Javamail-1_2.zip 文件,并將 mail.jar 文件添加到 CLASSPATH 中。除了核心類,隨版本 1.2 實現一起提供的還有 SMTP、IMAP4 和 POP3 供應商。
· JavaMail 1.1.3 的安裝
要使用 JavaMail 1.1.3 API,請下載 JavaMail 1.1.3 實現,解開Javamail1_1_3.zip文件,并將 mail.jar 文件添加到您的 CLASSPATH 中。除了核心類,隨版本 1.1.3 實現一起提供的還有 SMTP 和 IMAP4 供應商。
如果您用 JavaMail 1.1.3 訪問一個 POP 服務器,請下載并安裝一個 POP3 供應商。Sun 就有一個獨立于 JavaMail 實現。下載并解開 pop31_1_1.zip 文件后,將 pop3.jar 也添加到您的 CLASSPATH 中。
其次是JavaBeans Activation Framework 的安裝。JavaMail API 的所有版本都需要 JavaBeans Activation Framework 來支持任意數據塊的輸入及相應處理。功能似乎不多,但目前許多瀏覽器和郵件工具中都能找到這種基本的 MIME 型支持。下載完框架后,解開 jaf1_0_1.zip 文件,并將 activation.jar 文件添加到 CLASSPATH 中。
對于 JavaMail 1.2 用戶來說,現在您應該已將 mail.jar 和 activation.jar 文件添加到 CLASSPATH 中了。
而對于 JavaMail 1.1.3 用戶,現在您應該已將 mail.jar、pop3.jar和 activation.jar文件添加到 CLASSPATH 中了。如果不打算用 POP3,就不必將 pop3.jar 添加到 CLASSPATH 中去。
如果您不想更改 CLASSPATH 環境變量,將 jar 文件復制到您 Java 運行時環境(Java Runtime Environment,JRE)目錄下的 lib/ext 目錄中去。例如,J2SE 1.3 發行版的缺省目錄在 Windows 平臺的 C:"jdk1.3"jre"lib"ext。
Java Mail API有哪些核心類
·Javax.mail.Session:Session 類定義了一個基本郵件會話(session),是Java Mail API最高層入口類。所有其它類都是經由這個session 才得以生效。Session 對象用 Java.util.Properties 對象獲取信息,如郵件服務器、用戶名、密碼及整個應用程序中共享的其它信息。
·Javax.mail.Message:一旦獲得 Session 對象,就可以繼續創建要發送的消息。這由 Message 類來完成。因為 Message 是個抽象類,必需用一個子類,多數情況下為 Javax.mail.internet.MimeMessage。MimeMessage 是個能理解 MIME 類型和頭的電子郵件消息,正如不同 RFC 中所定義的。雖然在某些頭部域非 ASCII 字符也能被譯碼,但 Message 頭只能被限制為用 US-ASCII 字符。
·Javax.mail.Address:一旦您創建了 Session 和 Message,并將內容填入消息后,就可以用 Address 確定信件地址了。和 Message 一樣,Address 也是個抽象類。您用的是 Javax.mail.internet.InternetAddress 類。
·Javax.mail. Authenticator:與 Java.net 類一樣,JavaMail API 也可以利用 Authenticator 通過用戶名和密碼訪問受保護的資源。對于JavaMail API 來說,這些資源就是郵件服務器。JavaMail Authenticator 在 Javax.mail 包中,而且它和 Java.net 中同名的類 Authenticator 不同。兩者并不共享同一個 Authenticator,因為JavaMail API 用于 Java 1.1,它沒有 Java.net 類別。
要使用 Authenticator,先創建一個抽象類的子類,并從 getPasswordAuthentication() 方法中返回 PasswordAuthentication 實例。創建完成后,您必需向 session 注冊 Authenticator。然后,在需要認證的時候,就會通知 Authenticator。您可以彈出窗口,也可以從配置文件中(雖然沒有加密是不安全的)讀取用戶名和密碼,將它們作為 PasswordAuthentication 對象返回給調用程序。
·Javax.mail.Transport:消息發送的最后一部分是使用 Transport 類。這個類用協議指定的語言發送消息(通常是 SMTP)。它是抽象類,它的工作方式與 Session 有些類似。僅調用靜態 send() 方法,就能使用類的 缺省 版本:Transport.send(message);或者,讀者也可以從針對自己的協議的會話中獲得一個特定的實例,傳遞用戶名和密碼(如果不必要就 不傳),發送消息,然后關閉連接。
·Javax.mail.Store:Store類實現特定郵件協議上的讀、寫、監視、查找等操作。通過Javax.mail.Store類可以訪問Javax.mail.Folder類。
·Javax.mail.Folder:Folder類用于分級組織郵件,并提供照Javax.mail.Message格式訪問email的能力。
posted on 2009-05-09 23:09 彭偉 閱讀(205) 評論(0) 編輯 收藏 所屬分類: 新聞轉載分區