2013-01-23 62 views
0

我想知道JavaMail API中的消息編號如何工作。 他們總是按時間排序嗎?郵件編號與Javamail API

我想要做的是避免在gmail文件夾中重新獲取標題。 假設我有一個包含20,000條消息的文件夾,我今天處理。 明天,有100條新消息,我不想再次獲取所有的 20,000頭。我可以只要求msg nums。 20,001 - 20,100? 我認爲這將在正常情況下工作,其中以後的消息被添加到文件夾 。但是如果用戶手動插入 從較早的時間段到使用諸如Thunderbird這樣的客戶端的文件夾中的情況呢?

[S]

回答

2

它是如何控制消息編號的服務器。在基本上所有情況下,消息編號都與消息添加到郵箱的順序相對應。

在收件箱中,例如,這是在其中消息是接收的順序。您的電子郵件客戶端可能會按照發送順序顯示這些消息,這可能會有很大的不同。

消息可能會從列表中刪除,但消息不會在現有消息之前插入。如果您正在尋找新消息,則必須處理現有消息被刪除的情況,並更改消息編號。

請參閱JavaMail UIDFolder接口以及它所基於的IMAP規範。如果你跟蹤你所看到的最後一個UID,你只需要查看UID大於那個的消息。還有更多的細節,但這是一個開始。閱讀文檔並讓我知道你是否有問題。

+0

謝謝,比爾。這樣可行。此外,我發現該文件夾的郵件編號也會增加(即,即使具有較早時間戳的郵件被添加到Gmail文件夾,它稍後會出現在folder.getMessages())中。但我會依賴於UID。 – user1001630

+0

如果您有10條消息並添加另一條,它將成爲#11。如果您然後刪除前5條消息並添加5條新消息,則消息#11是完全不同的消息。這就是爲什麼你需要使用UID。 –