javamail und filterung bekannter nachrichten

S

shift42

Gast
kann ich javamail dazu anweisen nur bestimmte nachrichten herunterzuladen (z.b. alle die nach einem bestimmten zeitpunkt empfangen wurden). oder nur die header runterzuladen und diese filterung ggf selbst durchzuführen?

ich möchte vermeiden, daß bereits heruntergeladene emails nicht noch einmal heruntergeladen werden (wenn die mails auf dem server bleiben und dort nicht gelöscht werden).

bisher mache ich das so:

Java:
class MailAuthenticator extends Authenticator {

    @Override
    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("USER", "PASSWORD");
    }

	public static void main(String[] args) {
        try {
            Properties properties = new Properties();

            properties.put("mail.pop3.starttls.enable", "true");

            Session session = Session.getInstance(properties, new MailAuthenticator());
            Store store = session.getStore("pop3");
            store.connect("SERVER", null, null);

            Folder inbox = store.getFolder("INBOX");

            inbox.open(Folder.READ_ONLY);

            Message[] messages = inbox.getMessages();

            for (Message message : messages) {
                // header und content auslesen
            }

            inbox.close(true);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
}
 
H

homedom

Gast
Hallo shift42,
bei POP3 besteht die Möglichkeit alle UIDs der auf dem Server befindlichen Mails abzurufen ohne dass die Mails komplett abgerufen werden. Hier ein Auszug aus der JavaMail Api Documentation:
The POP3 provider supports the POP3 UIDL command, see POP3Folder.getUID(). You can use it as follows:

if (folder instanceof com.sun.mail.pop3.POP3Folder) {
com.sun.mail.pop3.POP3Folder pf =
(com.sun.mail.pop3.POP3Folder)folder;
String uid = pf.getUID(msg);
if (uid != null)
... // use it
}
You can also pre-fetch all the UIDs for all messages like this:

FetchProfile fp = new FetchProfile();
fp.add(UIDFolder.FetchProfileItem.UID);
folder.fetch(folder.getMessages(), fp);
Then use the technique above to get the UID for each message. This is similar to the technique used with the UIDFolder interface supported by IMAP, but note that POP3 UIDs are strings, not integers like IMAP UIDs. See the POP3 spec for details.
 

stone71

Mitglied
Also die angezeigten Sourcen holen noch keine Nachrichten. Hier sind bisher nur Referenzen vorhanden. Die Daten, die Du zu jeder Mail holst, die holst Du erst durch die einzelnen get-Methoden.
Das Problem ist, dass Du zuerst am Besten ein fetch auf die Daten machst, die Du anzeigen möchtest.

Dafür solltest Du die Klasse FetchProfile nutzen.
FetchProfile (JavaMail API documentation)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Javamail with authentication Netzwerkprogrammierung 9
D JavaMail: HTML Code einer Mail Netzwerkprogrammierung 9
D JavaMail - Mailsabrufen Problem (imap) Netzwerkprogrammierung 12
H JavaMail STARTTLS Netzwerkprogrammierung 6
T JavaMail POP Zugriff zeigt nicht alle Emails Netzwerkprogrammierung 2
S Mehrere Attachments mit JavaMail API auslesen Netzwerkprogrammierung 3
R JavaMail: Wie bekommt man rückgabecodes vom Server? Netzwerkprogrammierung 3
F Mehrere Attachments mit JavaMail API Netzwerkprogrammierung 2
H HTML-Mails mit JavaMail API Netzwerkprogrammierung 3
A JavaMail Problem - Nachricht wird nicht versendet ? Netzwerkprogrammierung 9
G JavaMail subFolders Netzwerkprogrammierung 6
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
D JavaMail Kontaktformular Umlaute Problem Netzwerkprogrammierung 2
conan2 JavaMail Netzwerkprogrammierung 10
R Problem beim Senden von Emails (Javamail) Netzwerkprogrammierung 2
J JavaMail Exception bei senden an anderen Server. Netzwerkprogrammierung 8
J JavaMail-Problem Netzwerkprogrammierung 5
G Fragen/Probleme mit JavaMail Netzwerkprogrammierung 2
G JavaMail und Session/Message Problem Netzwerkprogrammierung 2
L JavaMail: Mail in Posteingang aber nicht in Versendet Netzwerkprogrammierung 2
L JavaMail: Automatisches Email Versand (mehrere Empfänger) Netzwerkprogrammierung 4
L JavaMail: Versenden von mails funktioniert nicht Netzwerkprogrammierung 7
V JavaMail API Problem Netzwerkprogrammierung 10
P mit javamail gmx postfach prüfen Netzwerkprogrammierung 8
T Mit JavaMail API Faxe versenden? Netzwerkprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben