使用Javamail API和IMAP批量获取邮件正文

有没有办法通过使用Javamail API一次调用IMAP服务器来获取多个电子邮件的邮件正文?

我知道我可以使用Message.getContent()调用到达给定消息的主体,但最终会为每个消息调用imap服务器。

是否可以使用FetchProfile和Folder.fetch调用批量获取主体? 该文档暗示FetchProfile仅用于头数据。 我尝试了下面这个,但是没有做到这一点:

FetchProfile fp = new FetchProfile(); fp.add("rfc822.text"); inbox.fetch(messages, fp); 

如果使用Javamail无法做到这一点,是由于Javamail API中的约束还是IMAP协议根本不支持这个?

JavaMail的局限性。 IMAP协议允许一次获取多个消息的主体:

 a1 fetch 1:* (rfc822.header rfc822.text)