我使用
receiveEmailAndMarkSeen(EmailFilter.filter().flag(Flags.Flag.SEEN,true));来过滤我没有读取的消息,但是函数返回空数组。如果设置false,它将返回所有消息。
我测试了很多次,我不知道出了什么问题
有人能帮我吗?
发布于 2018-06-26 15:54:22
这可能取决于目标服务器。您是在使用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();我的邮箱:

程序输出:

附注:尝试下载所有电子邮件,并检查收到的电子邮件的Flag。另外,使用IMAP。
https://stackoverflow.com/questions/51040118
复制相似问题