2

どのようにjavamail imapは受信日descでメールオーダーを取得しますか? folder.getMessage()日付の引数はありません。imapでメールを取得するときに日付でソートしたい。ありがとうアドバンス!

4

2 に答える 2

5

通常、メッセージは受信順にINBOXに格納されるため、メッセージ番号順は受信日順となります。ただし、メッセージがフォルダー間で移動される場合、これは間違っている可能性があることに注意してください。

一般に、メッセージを特定の順序で並べたい場合は、メッセージを並べ替える必要があります。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 に答える