根据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 ??
还有其他办法吗?
提前多多感谢。
答案 0 :(得分:3)
我不相信你可以。
在这里,JavaMail镜像底层的IMAP命令 - 首先你找出你感兴趣的消息集,然后通过一个单独的命令获取这些消息的数据。没有办法强制IMAP服务器从SEARCH命令返回FetchProfile样式的数据,JavaMail只是符合IMAP对什么时候返回的限制。