Ich schreibe / lerne E-Mails mit Java aus einem IMAP-Ordner mit dem Paket javax.mail abzurufen. Ich konnte die letzten n Nachrichten in einem Ordner erfolgreich abrufen. Ich möchte jedoch ein Beispiel erstellen, um Nachrichten seit einem bestimmten Datum abzurufen. Irgendwelche Beispiele?
Sie können auch die SearchTerm-Klassen im Java-Mail-Paket verwenden.
%Vor%Eine Kombination der oben genannten sollte sich als eine bessere Möglichkeit erweisen, Daten innerhalb eines bestimmten Bereichs zu erhalten.
Anstatt alle Nachrichten abzurufen, sollten Sie versuchen, die serverseitige Suche zu nutzen. Dies funktioniert mit der Methode search von javax.mail.Folder . Wahrscheinlich müssen Sie Ihre eigene SearchTerm basierend auf einem Kriterium in Message.getReceivedDate () schreiben.
Wenn die serverseitige Suche nicht funktioniert, können Sie versuchen, ein Abrufprofil zu verwenden, d. h. anstelle von inbox.getMessages () verwenden Sie inbox.fetch (Message [] msgs, FetchProfile fp). Das Javadoc zum Abrufen lautet: Clients verwenden diese Methode, um anzugeben, dass die angegebenen Elemente für den angegebenen Nachrichtenbereich en masse benötigt werden. Es wird erwartet, dass Implementierungen diese Elemente für den gegebenen Nachrichtenbereich auf effiziente Weise abrufen. Beachten Sie, dass diese Methode nur ein Hinweis auf die Implementierung ist, um die gewünschten Elemente vorab abzurufen.