我正在使用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 个不同的命令,但出于性能原因,我无法为每条消息发出单独的请求。
您必须为每封邮件检索相同的正文部分。也就是说,如果您希望消息 2 和 4 使用第 1 部分,消息 3 需要第 2 部分,则发送的命令不能少于两个:
a uid fetch 2,4 (body[1])
b uid fetch 3 (body[3])
好消息是您可以同时发送它们。只要命令不冲突,您就可以发送第二个命令,而无需等待第一个命令的结果。前提是你可以找到一种方法来使用Javamail来做到这一点。
(或者也许是body.peek[1],它与body[]相同,只是它没有设置\seen标志。