2

imapFolder.getSortedMessages(SortTerm[] term);メソッドを使用してメールを取得し、送信日でソートしたいと考えています。

public List<MailMessage> load(SortTerm[] term,)
        throws MessagingException, UnsupportedEncodingException {
    List<MailMessage> mailMessages = new ArrayList<MailMessage>();
    term[0] = SortTerm.DATE;

    Store store = getStore();
    Folder folder = store.getFolder("INBOX");
    if (folder != null) {
        IMAPFolder imapFolder = (IMAPFolder) folder;
        imapFolder.open(Folder.READ_WRITE);
        Message[] messages = imapFolder.getSortedMessages(term);
        FetchProfile fp = new FetchProfile();
        fp.add(UIDFolder.FetchProfileItem.UID);
        fp.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(messages, fp);
        UIDFolder uidFolder = (UIDFolder) folder;

        for (Message message : messages) {
            Long uid = uidFolder.getUID(message);
            MimeMessage msg = (MimeMessage) message;
            MailMessage mailMessage = new MailMessage(msg, uid);
            mailMessages.add(mailMessage);
        }
    }

    return mailMessages;
}

しかし、それは私にとってはうまくいきません。送信日でソートされません。私のプログラムに対する提案。

4

0 に答える 0