我使用此代码搜索我的 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
搜索词,搜索调用会成功并返回消息,但我需要通过添加 YoungerTerm
过滤器来减少结果。
最佳答案
YoungerTerm类取决于 gmail 不支持的 IMAP 扩展,RFC 5032 。执行您想要的操作的唯一方法是检索 INTERNALDATE
并在客户端中进行过滤。
有点奇怪的是,javamail 允许您创建并发送使用 YoungerTerm 的命令;它肯定应该知道服务器会拒绝它吗?
关于java - 如何获取不早于 X 秒的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486011/