如何获取不早于 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 的命令;它应该知道服务器会拒绝它吧?
我使用此代码搜索我的 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 的命令;它应该知道服务器会拒绝它吧?