我用
receiveEmailAndMarkSeen(EmailFilter.filter().flag(Flags.Flag.SEEN,true));
过滤我没有阅读的消息,但该函数返回空数组。如果我设置false
它会返回所有消息。
试了很多次,不知道怎么回事
有人可以帮助我吗?
这可能取决于目标服务器。您使用的是 IMAP 还是 POP 服务器?IMAP 通常更适合您的用例。
这是一个对我有用的例子:
ImapServer imapServer = MailServer.create()
.host("imap.gmail.com")
.ssl(true)
.auth("user", "password")
.buildImapMailServer();
ReceiveMailSession session = imapServer.createSession();
session.open();
ReceivedEmail[] mails =
session.receiveEmailAndMarkSeen(
EmailFilter.filter().flag(Flags.Flag.SEEN, false));
Arrays.stream(mails).map(CommonEmail::subject).forEach(System.out::println);
session.close();
我的邮箱:
程序输出:
ps 尝试下载所有电子邮件并检查Flag
收到的电子邮件。另外,使用 IMAP。