Reputation: 8550
When I run a fetch command UID FETCH 170930:170930 BODY[]
I get the response 88924 FETCH (UID 170920 FLAGS (\Seen))
. I wasn't expecting to retrieve a message with a UID out of the range specified. Is this normal IMAP behaviour? The 170930 UID came from watching the folder with an IdleManager only moments earlier, so I have no reason to believe that a message with that UID doesn't exist on the server.
The fetch request I've posted here is a guess based on the Java code I'm using to execute it. At the very least it should still be requesting only messages within that range:
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];
Upvotes: 0
Views: 253
Reputation: 9685
An IMAP server is required to send you FETCH
responses in certain cases. Sometimes the server is required to wait with responses, but it's never required not to send you any.
If you send a command that requires two response, and someone else does something that requires one response to you, then you get three responses. That something might be to change the flag on a message (requires FETCH ... FLAGS ...
to you, although there's no promptness requirement) or send you some mail (requires EXISTS
to you).
Upvotes: 2