This makes a lot of sense... but I think the basic problem here is one we cannot fix any more: COPYUID cannot be parsed without knowledge of the command that caused it.

So, I think that a client which issues MOVE has to add an extra reference to the cached message(s) when it issues MOVE, and when it parses the COPYUID it looks at the reference(s) held by the command.

MOVE makes this much more acute, but I note that the problem exists with copystoreexpunge too:

C: a COPY 1000:1999 foo
S: * 1000 EXPUNGE
S: * 1500 EXPUNGE
S: a OK [COPYUID 4132 1000:1499,1501:1999 1000:1998] done

(One of the two messages had been copied by the time it was expunged, the other was expunged before it could be copied.)

Arnt
_______________________________________________
imap5 mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/imap5

Reply via email to