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

时间:2011-05-03 22:15:26

标签: java imap javamail

有没有办法通过使用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协议是否仅支持此操作?

1 个答案:

答案 0 :(得分:4)

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

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