2016-06-30 19 views
1

Mein Maven istWie erhalten Sie nützliche Mail-Informationen mit Commons ImapClient? Nicht nur boolescher Status, sondern echte Information?

<dependency> 
    <groupId>commons-net</groupId> 
    <artifactId>commons-net</artifactId> 
    <version>3.3</version> 
</dependency> 

Mein Code der

finden
IMAPClient client = new IMAPClient(); 
client.connect("localhost"); 
for(50K users){ 
    client.login(login + emailSuffix, password); 
    for (int i = 0; i < folders.length; i++) { 
     System.out.println(client.select("INOX"); //prints true, it's ok 
    } 
} 

Wie kann ich Nachrichten mit Apache Commons Client greifen? Alle Methoden geben boolean oder void zurück, also sieht es so aus, als ob nur die Serverbibliothek überprüft wird. Kann man irgendwie nützliche Informationen von imapclient bekommen? Ich meine Anzahl der ungelesenen Nachrichten, Message-Objekte (Inhalt + Header + Sibject) von einem Begriff und so weiter.

P.S. Java Mail API hat natürlich alle Funktionen, die ich brauche, aber es ist sehr langsam für die Verwendung in 50K-Schleife (Meine Bemühungen auf Java Mail API other SO question beschrieben. Commons ist viel schneller in der Verbindung, konnte aber keine nützlichen Informationen geben (

Antwort

0

Schließlich löste ich mein Problem durch einfaches Iterieren über Dateisystem (Ich habe maildir Format). Ich denke, Java Mail API macht neue dovecot auth für jeden Benutzer in store.connect während es nur einmal verbinden sollte (konsumieren dovecot auth) und danach für jeden Benutzer anmelden (dovecot imap-login) Deshalb habe ich 1 Minute für jede Iteration gewartet - es ist std Idle für Auth-Prozess in dovecot config.Ich bin mir nicht sicher, aber so aussieht.

Apache lib arbeitet schnell, aber es ist nur Testen der Bibliothek für den Ping-Server, Überprüfung der Verbindung und andere IMAP-Operationen. Es gibt boolesche Ergebnisse über Operationen, aber keine nützlichen Informationen zurück (