Javamail:在搜索邮件时可以使用FetchProfile而不是仅仅获取邮件吗?

根据http://java.sun.com/products/javamail/javadocs/javax/mail/FetchProfile.html ,

Message[] msgs = folder.getMessages(); FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); folder.fetch(msgs, fp); 

但是,如果我想通过search()只获取读取消息,我没有办法指定FetchProfile(因为search()不接受这样的参数)。

 Folder inbox = store.getFolder("Inbox"); inbox.open(Folder.READ_WRITE); FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); Message messages[] = inbox.search(ft); //how to specify a FetchProfile here ?? 

还有另一种方式吗?

非常感谢提前。

我不相信你可以。

在这里,JavaMail镜像底层的IMAP命令 – 首先你找出你感兴趣的消息集,然后通过单独的命令获取这些消息的数据。 没有办法强制IMAP服务器从SEARCH命令返回FetchProfile样式的数据,JavaMail只是符合IMAP对什么时候返回的约束。