第三講:JavaMail中Session類

第三講:JavaMail中Session類

    mail.jar架包中的javax.mail.Session類用於定義整個JavaMail應用程序所需要的環境信息,以及收集客戶端與郵件服務器建立網絡連接的會話信息。例如郵件服務器的主機名、端口號、採用的郵件發送和接收協議等。同時Session對象根據這些信息構建用於郵件收發的Transport和Store對象,以及爲客戶端創建Message對象時提供信息支持。

一、Session常用函數
        下面的表格中列出了Session常用的方法。包括獲取Transport、Stored對象等
public static getInstance(java.util.Properties)
public static getInstance(java.util.Properties ,Authenticator)                                                                                                                                                                                  
獲取Session對象的方法,由於Session的構造方法是私有的因此只能通過靜態方法獲取
public static getDefalutInstance(java.util.Properties)
public static getDefaultInstance(Properties ,Authenticator)

getTransport()
getTransport(java.lang.String protocol)
默認根據mail.transport.protocol屬性中的協議創建。
返回實現了指定的具體郵件發送協議的Transport對象。Transport是抽象類,兩個方法返回的都是實現某種協議的Transport的子類
getStore()
getStore(java.lang.String protocol)
默認根據mail.store.protocol屬性中的協議創建接收郵件對象。
返回實現了指定具體郵件接收協議的Store對象。Store也是抽象類,兩個方法返回的都是實現某種協議的Store的子類
setDebug(boolean debug) 當設置爲true時,JavaMail AP就會將其運行過程和郵件服務器的交互命令信息輸出到運行窗口中,用於JavaMail的調試有用。
PS:getInstance和getDefaultInstance方法的區別在於:getDefaultInstance方法返回一個Session對象後,將這個Session對象安裝爲默認的Session對象,以後每次調用getDefaultInstance方法都將返回這個默認Session對象;而getInstance方法則是每次調用都返回一個新的Session對象。

1.1 參數Properties 
        對Properties類中可以通過setProperty(String key, String value)方法進行設置,其取值包括 :
1.2 參數Authenticator
       在JavaMail中除了可以通過Transport.connect(host, user, passqord)方法在連接SMTP服務器是直接傳遞用戶認證信息還可以藉助Authenticator類來獲取用戶認證信息
       當使用Session的getInstance(properties, Authenticator)來創建Session對象時,會將Authenticator對象註冊到該Session。以後這個Session對象的JavaMail客戶端程序要向郵件服務器提交認證信息時,將調用該Session對象中註冊的Authenticator對象,從中獲取用戶認證信息後傳遞給郵件服務器。
       Authenticator類最常用的一個方法是:
                                                         protected PasswordAuthentication getPasswordAuthentication();
     Authenticator類是抽象類,傳遞給getInstance方法的Authenticator對象只能是其子類的實例對象。Authenticator對定義的該方法的返回值爲null,因此其子類必           須覆蓋該方法,由郵件開發人來實現。
     PasswordAuthentication類中的方法有:
public PasswordAuthentication(String userName, String password)
public String getUserName();
public String getPassword();


發佈了32 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章