> [client issues an EXPUNGE when a new message 2, not yet seen by the client,
> has \Deleted set due to the action of another client.]
The behavior is implementation-dependent, as long as it complies with the
requirements of IMAP.
I think that the scenario SHOULD be:
S: * 1 EXISTS
. . .
C: tag EXPUNGE
S: * 2 EXISTS
S: * 2 EXPUNGE
S: tag OK EXPUNGE completed
The scenario MAY be:
S: * 1 EXISTS
. . .
C: tag EXPUNGE
S: tag OK EXPUNGE completed
but this strongly suggests that message 2 did not exist and that subsequently
we would see:
S: * 2 EXISTS
. . .
C: tag FETCH 2 FLAGS
S: * 2 FETCH (FLAGS (\Deleted))
S: tag OK FETCH completed
In any case, the scenario MUST NOT be:
S: * 1 EXISTS
. . .
C: tag EXPUNGE
S: * 2 EXPUNGE
S: tag OK EXPUNGE completed
because the client was never told about message 2.