[英]how javamail imap fetch mail order by receive date desc
javamail imap 如何通过接收日期 desc 获取邮购? folder.getMessage()
没有日期参数。 我想在 imap 中获取邮件时按日期排序。 感谢提前!
通常,邮件按接收顺序存储在收件箱中,因此,消息编号顺序是接收日期顺序。 但是请注意,如果在文件夹之间移动邮件,这可能是错误的。
通常,如果您希望消息按特定顺序排列,则需要对其进行排序。 如果您的IMAP服务器支持SORT扩展,则可以使用com.sun.mail.imap.IMAPFolder.getSortedMessages方法要求服务器进行排序。
@DefaultValue("REVERSE,ARRIVAL") MailSortTerms sortTerms
/**/
if (imapStore.hasCapability("SORT*")) {
Message[] messages = ((IMAPFolder) inbox).getSortedMessages(
sortTerms.getTerms());
for (int i = skip;
i < Math.min(skip + size, inbox.getMessageCount());
i++) {
resultList.add(messages[i]);
}
} else {
Message[] messages = inbox.getMessages();
for (int i = inbox.getMessageCount() - skip - 1;
i >= Math.max(inbox.getMessageCount() - skip - size - 1, 0);
i--) {
resultList.add(messages[i]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.