Unterhalb des Codes, der zum Herstellen und Ausführen von Vorgängen in einem IMAP-Ordner verwendet wird. Also meine Frage ist über die javax.mail.Session
, die in diesem Fall jede Sekunde neu erstellt würde (abhängig von der Ruhezeit und Laufzeit von checkInbox()).Java-Mail: Sitzung
Ich bin mir sicher, dass dies keine gute Lösung ist, vor allem die Abfrage auf IMAP ist ein bisschen dumm, aber ich konnte nicht die IMAP listener
läuft.
Das Erstellen der Sitzung nicht jeder Lauf könnte eine bessere Lösung sein, aber woher weiß ich, wann eine session is closed
oder kann ich es absichtlich schließen? Aber es gibt nichts wie Session.close()
oder ist die Sitzung als NULL? Oder gibt es eine definierte Timeout auf einer 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, gute Beispiele und Dokumentation für javax.mail zu finden (neben der API und der FAQ)
Vielen Dank. Siehe die Änderungen in der Quelle oben. Hoffe, es ist jetzt viel besser und die Session und die Verbindung werden so behandelt, wie sie sollten. Wenn ich etwas Zeit habe, sollte ich einen IMAP-Listener bauen, um das Polling loszuwerden. Hast du eine Idee, wo ich anständige und aktuelle Beispiele oder Anleitungen dafür finden kann? – Kuchi
Ich denke, in der /javamail-samples/monitorint.java habe ich gefunden, wonach ich suche. Es scheint, als ob ich nicht genug Aufmerksamkeit geschenkt habe, als ich das letzte Mal durchging. – Kuchi
Ja, das sollte dich beginnen. –