2

javamail imap如何通过接收日期desc获取邮件订单?folder.getMessage()没有日期 arg。我想在 imap 中获取邮件时按日期排序。感谢提前!

4

2 回答 2

5

通常,消息按接收顺序存储在收件箱中,因此消息编号顺序为接收日期顺序。但请注意,如果在文件夹之间移动邮件,这可能是错误的。

通常,如果您希望消息按特定顺序排列,则需要对它们进行排序。如果您的 IMAP 服务器支持 SORT 扩展,您可以使用com.sun.mail.imap.IMAPFolder.getSortedMessages 方法要求服务器进行排序。

于 2013-10-25T07:08:43.197 回答
0
    @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]);
                            }
                        }
于 2021-11-29T06:30:21.123 回答