Ich schreibe einen Code, um E-Mails von Google Mail zu lesen. Beim ersten Start liest es also neue E-Mails. Das ist gut. Aber ich möchte, wenn ich es ein zweites Mal starte, es bekommt nicht dieselben E-Mails, die es zuvor bekommen hat.Java erhalten ungelesene E-Mails
Zum Beispiel, wenn es 3 ungelesene E-Mails gibt, wenn ich zum ersten Mal starte, bekommt es die 3. Aber wenn ich wieder starte, bekommt es nichts (weil es schon 3 hat). Und wenn es eine neue E-Mail gibt und ich sie erneut starte, sollte sie nur die letzte und nicht die ersten 3 bekommen.
Ich hoffe, ich bin klar genug.
Ich verwende den Code aus http://alvinalexander.com/java/javamail-search-unseen-unread-messages-mailbox-pop3
package javamailtests;
import java.io.InputStream;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.search.*;
public class JavaMailSearchInbox {
public static void main(String args[]) throws Exception {
// mail server info
String host = "pop.gmail.com";
String user = "USER";
String password = "PASS";
// connect to my pop3 inbox in read-only mode
Properties properties = System.getProperties();
Session session = Session.getDefaultInstance(properties);
Store store = session.getStore("pop3");
store.connect(host, user, password);
Folder inbox = store.getFolder("inbox");
inbox.open(Folder.READ_ONLY);
// search for all "unseen" messages
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
Message messages[] = inbox.search(unseenFlagTerm);
if (messages.length == 0) System.out.println("No messages found.");
for (int i = 0; i < messages.length; i++) {
// stop after listing ten messages
if (i > 10) {
System.exit(0);
inbox.close(true);
store.close();
}
System.out.println("Message " + (i + 1));
System.out.println("From : " + messages[i].getFrom()[0]);
System.out.println("Subject : " + messages[i].getSubject());
System.out.println("Sent Date : " + messages[i].getSentDate());
System.out.println();
}
inbox.close(true);
store.close();
}
}
@CarlPalsson Nein. Das ist eine Client-Option. Dies ist kein wesentliches Merkmal von POP3. Sie können auswählen, ob Nachrichten auf dem Server verbleiben oder gelöscht werden. Was wirklich passiert, ist, dass der Client zusätzliche Probleme hat, die Nachrichten zu löschen, wenn Sie diese Option auswählen. – EJP
@EJP Ahhh danke für die Klärung! – 8bitcat
Das Abrufen von Gmail-E-Mails von diesem Host wird knifflig sein – Behe