Java-E-Mail: Session

Unter dem code verwendet, um zu verbinden und Operationen auf einen IMAP-Ordner.
Also meine Frage ist, über die javax.mail.Session was wäre in diesem Fall neu jeden zweiten (je nach Schlaf-und Laufzeit von checkInbox()).

Ich bin mir sicher, dass dies nicht eine gute Lösung, vor allem den Abruf von IMAP ist, ist ein bisschen dumm, aber ich konnte nicht die IMAP listener läuft.

Neuerstellung der Sitzung nicht jeder ausführen, möglicherweise die bessere Lösung, aber wie weiß ich, Wann ein session is closed oder kann ich es schließen, auf Zweck? Aber es gibt nichts wie Session.close() oder ist die Session als NULL? Oder gibt es eine definierte timeout auf eine Sitzung...

Quelle:

final String port = "993";

Properties prop = new Properties();

//I assume there is some redundancy here but this didn't cause any problems so far
prop.setProperty("mail.imaps.starttls.enable", "true");
prop.setProperty("mail.imaps.port", port);

/** This part can be removed
 * prop.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
 * prop.setProperty("mail.imaps.socketFactory.port", port); 
 * prop.setProperty("mail.imaps.socketFactory.fallback", "false"); 
 */
prop.setProperty("mail.imap.ssl.enable", "true");
prop.setProperty("mail.debug", "false");

//Create a session before you loop since the configuration doesn't change
Session session = Session.getInstance(prop);

//Nearly loop forever in Prod
while(true){

    //Check the INBOX and do some other stuff
    Store store = session.getStore("imaps");
    store.connect(host, user, pw);

    //... the operations on the session ... 

    store.close();

//Sleep a bit try & catch removed
Thread.sleep(1000);
}

Alles in allem muss ich sagen, es ist wirklich schwer zu finden, gute Beispiele und Dokumentation für javax.E-mail (neben den API und die FAQ)

InformationsquelleAutor Kuchi | 2013-07-25
Schreibe einen Kommentar