Java获取未读电子邮件

use*_*594 6 java email pop3

我正在编写代码来阅读来自gmail的电子邮件.所以我第一次推出时会看到新的电子邮件.没关系.但是我希望当我第二次启动它时,它不会获得之前收到的相同电子邮件.

例如,如果有3个未读电子邮件,当我第一次启动时,它会得到3.但是当我再次启动时,它什么都没有(因为它已经有3个).如果有一个新的电子邮件,我再次启动它,它应该只获得最后一个而不是3个第一.

希望我足够清楚.

我使用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();
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 0

我可以建议将已读的旧消息返回到“标记为未读”吗?