> [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.

Reply via email to