2013-09-23 57 views
0

我正在使用Javamail庫通過IMAP從多個服務器獲取電子郵件。 我只關心未讀郵件,我只想下載最後收到的5封未讀郵件。如何限制javamail搜索方法中的答案大小?

對於文件夾中過濾所述消息我使用的Folder.search(FlagTerm ft)方法,使用通過該標誌SEEN值爲假,就如以下代碼所示:

FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
Message[] messages = folder.search(ft); 

我需要減少帶寬使用和上述方法可返回任意數量的消息。我只對最後5個感興趣,有沒有辦法讓IMAP服務器返回有限數量的消息?

回答

0

您可以對消息的子集進行搜索,從而有效地設置返回消息數量的上限,但可能需要執行多次搜索。如果您搜索所有消息,則沒有直接的方法來限制返回結果的數量。

請注意,搜索結果相對比較緊湊(實際上只是消息號碼),所以除非您搜索大量的消息,否則帶寬將不會成爲獲取消息內容的問題。