[Imap-protocol] IMAP MOVE extension

Stu Brandt 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>.

- Stuart

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

> after

> all)? Is there a state in which some messages vanished completely?




More information about the Imap-protocol mailing list