【发布时间】:2018-06-26 10:02:19
【问题描述】:
我用
receiveEmailAndMarkSeen(EmailFilter.filter().flag(Flags.Flag.SEEN,true));
过滤我没有阅读的消息,但该函数返回空数组。如果我设置 false 它会返回所有消息。
试了很多次,不知道怎么回事
有人可以帮我吗?
【问题讨论】:
我用
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();
我的邮箱:
程序输出:
附言尝试下载所有电子邮件并检查收到的电子邮件的Flag。另外,请使用 IMAP。
【讨论】: