如何获取不早于 X 秒的电子邮件?

How to get email messages not older than X seconds?

我使用此代码搜索我的 Gmail 收件箱:

Session session = Session.getDefaultInstance(new Properties());
Store store = session.getStore("imaps");
store.connect("imap.googlemail.com", 993, EMAIL, PASSWORD);
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_WRITE);
Message[] messages = emailFolder.search(new AndTerm(new SearchTerm[] { new SubjectTerm(subject), new FromTerm(new InternetAddress(sender)), new YoungerTerm((int)TimeUnit.MINUTES.toSeconds(3)) }));

但是我得到这个错误:

javax.mail.MessagingException: A4 BAD Could not parse command;

如果我删除 YoungerTerm 搜索词,搜索调用会成功并显示 returns 消息,但我需要通过添加 YoungerTerm 过滤器来减少结果。

YoungerTerm class depends on an IMAP extension gmail does not support, RFC 5032。做你想做的唯一方法是在客户端检索 INTERNALDATE 和过滤器。

有点奇怪,javamail 会让你创建和发送一个使用 YoungerTerm 的命令;它应该知道服务器会拒绝它吧?