2013-09-23 33 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

您可以对消息的子集进行搜索,从而有效地设置返回消息数量的上限,但可能需要执行多次搜索。如果您搜索所有消息,则没有直接的方法来限制返回结果的数量。

请注意,搜索结果相对比较紧凑(实际上只是消息号码),所以除非您搜索大量的消息,否则带宽将不会成为获取消息内容的问题。