当我运行fetch命令UID FETCH 170930:170930 BODY[]
时,我得到了响应88924 FETCH (UID 170920 FLAGS (\Seen))
。我不希望检索UID超出指定范围的消息。这是正常的IMAP行为吗? 170930 UID来自于仅在片刻之前使用IdleManager观看文件夹,因此我没有理由相信服务器上不存在具有该UID的消息。
我在这里发布的获取请求是基于我用来执行它的Java代码的猜测。它至少应该只请求该范围内的消息:
Argument args = new Argument();
args.writeString(Long.toString(start) + ":" + Long.toString(end));
args.writeString("BODY[]");
Response[] r = protocol.command("UID FETCH", args);
Response response = r[r.length - 1];
答案 0 :(得分:2)
在某些情况下,IMAP服务器需要向您发送ExtractDecodeEditEncodeMuxTest
个响应。有时服务器需要等待响应,但它从不需要不向您发送任何内容。
如果您发送的命令需要两个响应,而其他人做了需要一个响应的事情,那么您会得到三个响应。有些事情可能会改变邮件上的标记(虽然没有提示要求,但需要FETCH
)或向您发送一些邮件(需要FETCH ... FLAGS ...
)。