[Note: personal opinions; nothing to do with Sun. I do hardware design] |> One of the more common requests I get as a client vendor is for users to |> have the ability to delete attachments on the server. Obviously that can be |> done via FETCH/modify in client/APPEND/EXPUNGE, but an in-place solution |> would be preferred.
Strongly preferred because: * If you do the append/expunge solution then the modified message is now at the end of the mailbox with no obvious way to fix things so the user sees it in the original location. This seems like a big problem for me at least. * Append/expunge does not match IMAP's usual delete model with repect to being able to store a \Deleted flag and only have this really take effect on the next expunge. With the opportunity to undo the deletion before that. It would be better if deleting attachments would work the same way, not least because: * if I have a message with three attachments and want to delete 2 of them, I would prefer not to do two appends in sequence. I do agree with the outline of the solution you propose though, i.e. go ahead and nuke the data (with a "removed' or "deleted" header) but claim in the bodystructure that it's still there. And then on fetches either return "NO" for a fetch of that specific body part or fake out blank content for partial or whole-message fetches. And incidentally I am one of the people who definitely wants this feature. You'd want some way to fetch an appropriate annotation (or these headers) to allow showing the client that the attachment was not there. Ideally at least. Hugh.
