On Wed, 25 Sep 2002 22:18:02 +0200, Simon Josefsson wrote: > Except possibly this new UIDNEXT thing. Cyrus IMAP for one doesn't do > this.
Cyrus in your example is fine. It returned an error when using * to access a message sequence number in an empty message: > . FETCH * UID > . NO No matching messages The draft says: ; The server should respond with a tagged BAD ; response to a command that uses a message ; sequence number greater than the number of ; messages in the selected mailbox. This ; includes "*" if the selected mailbox is empty. I would prefer a tagged BAD, but that is just reason not to change the "should" (as opposed to SHOULD) to a MUST. > . UID FETCH * UID > . OK Completed This is also fine, since the description of * for UIDs is: ; In the case of unique identifiers, it is the ; unique identifier of the last message in the ; mailbox or, if the mailbox is empty, the ; UIDNEXT value. > In this case I think it is better to have * mean a non-existing > article instead of UIDNEXT. In effect, "non-existing message" and "UIDNEXT" are one and the same. The difference is that the latter is a usable definition. So, with the possible exception of changing that NO to a BAD (and I don't think that it is that important), Cyrus is fine.