2010-03-09 2 views
7

Ich versuche eine Suche von meinem Google Mail mit Java durchzuführen. Mit JavaMail kann ich eine Nachricht per Nachrichtensuche wie folgt machen:Kann ich auf dem Mailserver in Java suchen?

Aber dies erfordert das Herunterladen jeder Nachricht. Natürlich kann ich alle Ergebnisse zwischenspeichern, aber dies wird zu einem Speicherproblem mit großen Gmail-Boxen und wäre auch sehr langsam (ich kann mir nur vorstellen, wie lange es dauern würde, Gigabytes Text zu durchsuchen ...).

Also meine Frage ist, gibt es eine Möglichkeit der Suche auf dem Server, ein la Gmail-Suchfeld? Vielleicht über Microsoft Exchange?

Stunden des Googelns hat nichts ergeben.

Antwort

0

Verbindung mit dem IMAP-Speicher Exchange und verwenden javax.mail.search.SearchTerm

3

Sie können die Server lassen für Sie die Suche, mit dem entsprechenden IMAP-Befehl. Der Befehl SUCHEN wird Sie nur soweit bringen, dass Sie wahrscheinlich den Befehl SORT benötigen. SORT ist nicht in Java Mail umgesetzt, aber die documentation zeigt, wie Sie es selbst umsetzen können:

http://java.sun.com/products/javamail/javadocs/com/sun/mail/imap/IMAPFolder.html#doCommand(com.sun.mail.imap.IMAPFolder.ProtocolCommand)

(ich kann nicht herausfinden, wie man mit Klammern zu einer URL verknüpfen)

+0

Dank. Ich kann eine Verbindung mit dem Server und IMAPFolder herstellen, aber wenn ich einen doCommand (wie im Beispiel in der Verknüpfung) ausstelle, ist response.isOK() falsch. Ich habe eine Ausnahme beim ersten Mal (was ich kann nicht neu erscheinen), aber jetzt ist es wieder nur: A5 BAD Unbekannter Befehl: SORT Mein Verbindungscode: IMAPStore store = new IMAPStore (Session , neuer URL-Name ("imap: // myusername: [email protected]/")); store.connect(); IMAPFolder-Ordner = (IMAPFolder) store.getFolder ("Posteingang"); Dann mache ich den gleichen folder.doCommand() Aufruf als Beispiel. Irgendwelche Ideen darüber, warum das nicht funktioniert? Entschuldigung für die Formatierung. – smurthas

+0

'BAD Unbekannter Befehl: SORT' würde bedeuten, dass der Server den' SORT' Befehl nicht unterstützt. Der IMAP-Server teilt Ihnen mit, welche Funktionen unterstützt werden, wenn Sie den Befehl 'CAPABILITY' ausführen (sollte das erste sein, was JavaMail sendet), damit Sie diese Antwort untersuchen können, um zu sehen, welche Funktionen verfügbar sind. – Martin

Verwandte Themen