天天看點

第三講: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)方法進行設定,其取值包括 :

第三講:JavaMail中Session類

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();

繼續閱讀