2013-07-10 83 views
0

,我們通過使用Java郵件獲取從IMAP MS Exchange郵件交換IMAP JAVA SORT

一切都很好,如果沒有人不接觸任何東西......但是,如果用戶在Outlook中移動郵件弗朗另一個目錄中的收件箱目錄,這成爲它的實際到達日期的新的頂級郵件可能是幾年前

作爲一種解決方法,剛剛移動的舊郵件比剛到郵件的郵件ID更新)

我們正在使用此代碼嘗試

SortTerm std [] = {SortTerm.DATE};

try { 
     messages = folder.getSortedMessages(std); 
    } catch (Exception e) { 
     logger.error(e.toString()); 
    } 

但我們得到

javax.mail.MessagingException的:SORT不支持; 嵌套的例外是: com.sun.mail.iap.BadCommandException:SORT不支持

任何幫助將提前意識到感謝 問候

斯特凡諾buttarelli

+0

是否的了INTERNALDATE消息得到重置?如果不是(不是ID/UID),你應該按照INTERNALDATE排序,如果它重新設置,你應該按照Date:標題排序。 – Max

+0

您好,並感謝您的答案。 我們沒有INTERNALDATE進行排序,這裏是我們必須排序的: public static final com.sun.mail.imap.SortTerm ARRIVAL public static final com.sun.mail.imap.SortTerm CC public static final com.sun.mail.imap.SortTerm DATE public static final com.sun.mail.imap.SortTerm FROM public static final com.sun.mail.imap.SortTerm REVERSE public static final com.sun.mail.imap。 SortTerm SIZE public static final com.sun.mail.imap.SortTerm SUBJECT public static final com.sun.mail.imap.SortTerm TO 可能是我沒有打開你的意思嗎?再見 – ste

回答

0

看起來像Exchange不支持IMAP SORT擴展。您可能必須對客戶端中的消息進行排序。

(注意郵箱的自然順序是信息被添加到該郵箱,通常是到達次序,除了在情況下,像你看到的順序。)

+0

謝謝你的迴應,我們實際上在客戶端排序,但在上面的情況下這是錯誤的。我們無法獲取文件夾收件箱中的所有消息,然後顯示前30個(對不起,我忘了說我們正在開發Web郵件客戶端),它應該非常慢。 因此,我們得到最後30封郵件並對它們進行排序,但如果用戶從另一個文件夾中移出收件箱文件夾中的舊電子郵件,該文件夾中會有一個較新的ID,即使它很舊,我們也會在前30個郵件中找到它。 stefano – ste

+0

好吧,如果你沒有考慮所有的信息,那麼顯然你沒有正確地進行排序! :-)是的,這在客戶端更昂貴,這就是爲什麼發明IMAP SORT擴展的原因。太糟糕Exchange不支持它。 –