我正在使用JavaMail从IMAP帐户获取邮件数据。例如,我使用以下命令来检索使用uid 1到4的消息正文:
UID FETCH 1:4 BODY[]
有没有办法为特定邮件获取特定的正文部分?例如,我想使用类似的内容:
UID FETCH (1 BODY[1.3]) (2 BODY[1.1]) (3 BODY[2.1]) (4 BODY[1.4])
PS:我知道我也可以发送4个不同的命令,但出于性能原因,我无法为每条消息单独发出请求。
答案 0 :(得分:2)
您必须为每条消息检索相同的bodypart。也就是说,如果你想要消息2和4的第1部分和消息3的第2部分,你不能发送少于两个命令:
a uid fetch 2,4 (body[1])
b uid fetch 3 (body[3])
好消息是你可以同时发送它们。只要命令不冲突,您就可以发送第二个命令而无需等待第一个命令的结果。如果您可以通过Javamail找到一种方法。
(或者也许是body.peek [1],它与body []相同,只是它没有设置\ seen标志。)