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