我只是想知道,应该怎么做:
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
Message messages[] = imap.folder_.search(ft);
int nbTotalUnreadMessages = messages.length;
// make a loop over the messsages to make some procedure
对比:
Message[] messages = imap.folder_.getMessages();
for (int i = 0; i < messages.length; i++) {
Message msg = messages[i];
Flags flags = msg.getFlags();
if ( flags.contains(Flags.Flag.SEEN) )
continue;
// proceed on the unseen message
}
第一个版本快速点亮并且可以正常工作。第二个版本是1/慢2/不起作用。它很慢,因为它解析整个文件夹并且它不起作用,因为正如文档所说,自动获取消息的唯一事实假设它已被看到。
那么该死的,第一个版本应该在内部做什么?我只是出于好奇......可以在不获取消息本身的情况下获取消息的标志吗?