2013-01-16 84 views
0

我正在使用javamail api通過imap來閱讀我的Gmail郵箱,以索引所有郵件。我想讀取除默認文件夾以外的所有文件夾。下面的代碼段只給出gmail的默認文件夾。避免使用imap通過javamail讀取重複的gmail電子郵件

javax.mail.Folder[] folders = store.getDefaultFolder().list("*"); 
for (javax.mail.Folder fold : folders) { 
    if ((fold.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) { 
     System.out.println(fold.getFullName() + ": " + fold.getMessageCount()); 
    } 
} 

我有幾個標籤,當我使用上面的代碼時不顯示。有什麼辦法可以讓我可以獲得除gmail的默認文件夾之外的所有用戶定義的標籤。如果任何電子郵件有多於一個標籤並獲得該郵件的標籤,那麼還有什麼方法可以獲得。這是爲了避免兩次讀取相同的郵件。因爲如果任何郵件被標記爲important那麼它會在,ALL MAILSIMPORTANT文件夾中。所以根據上面的代碼,首先讀取郵件。如果我已經閱讀了該文件夾中的郵件,我希望避免閱讀其他文件夾中的同一郵件並獲取它的標籤,例如和IMPORTANT,而不管該郵件是標記爲已讀還是未讀。我對javamail和imap都是新手,無法確定如何使其工作。如果有任何可能的方法請幫助

+0

https://developers.google.com/google-apps/gmail/imap_extensions – Max

回答

0

它應該工作。嘗試turning on session debugging以查看服務器正在返回給您的信息。此外,請嘗試使用列表(「%」)僅列出文件夾層次結構的單個級別。

+0

oops我的糟糕之處在於它的工作早就打破了循環。是否有任何想法可以爲我的問題的第二部分做什麼,這對我來說更重要,即只讀取一次標籤郵件並獲取分配給該郵件的所有標籤,以便重複數據不會編入索引。 – user850234

相關問題