[Imap-protocol] IMAP MOVE extension
stujenerin at aol.com
Sat Jun 12 05:16:17 PDT 2010
Since the focus here seems to be on conveying the state following a
partially completed Move for those who can't implement an atomic move,
how about something like the following?
Example: C: A003 MOVE 3000:3002 Trash
S: * 3000 EXPUNGE
S: * 3001 COPIED
S: A003 NO MOVE Incomplete
Avoiding a Move command because it can't be atomic for *some*
implementations simply shifts the burden of atomicity back to the client
since nearly all clients I've seen offer a Move action. I wonder how
many clients actually graciously handle a partially successful Copy +
Store/Expunge vs. how many just punt and shift the cleanup burden to the
user who has no clue why they now have copies of their messages in both
Inbox and <pick-a-name>.
Mark Crispin wrote:
> A successful MOVE, on the other hand, is an unconditional guarantee that
> all the requested message(s) were moved. But it it? Similarly, a failed
> MOVE ought to be an unconditional guarantee that none of the requested
> messages(s) were moved. But, once again, is it?
> What happens when there is an error in the middle of the move? Is
> there a
> state in which some messages were moved and others were not? Is there a
> state in which some messages appear in both places (so it was a copy
> all)? Is there a state in which some messages vanished completely?
More information about the Imap-protocol