I want to throw a few ideas (and some strong opinions!) into this discussion:

(1). There are IMAP servers that, in certain cases, do not assign new UIDs to messages that are changed. This is because the servers have no way of telling that a message has been changed. This makes the servers non-compliant and creates a regrettable situation. But it is a fact of life.

(2). I happen to be in the habit of editing messages that I receive. I don't do it often but I certainly do it. The most common case is with messages that have generic or non-descriptive subjects. I may add text to the subject field in order to help me identify a message more easily in case I need to go back later and look for it. Another case is when I read an encrypted message; I may choose to re-store it in plaintext form.

(3). Saying that people do not or should not edit received messages strikes me as rather irrelevant because whatever we are discussing here would presumably apply to all messages and there is one category of message that people inevitably do edit, drafts.

(4). Adding any capability to IMAP to allow messages to be changed in any piecemeal fashion would, in my opinion, make a nightmare of the protocol. (Not saying that anyone is suggesting that.) Providing a way to change a message by completely replacing it could be reasonable.

(5). IMAP could, in principle, be modified to allow a client to be notified that a message has been changed by using a per-message UIDVALIDITY. However I see no way to implement such a thing in a way that would be compatible for clients that don't support it. In other words, such a thing could not be an extension and therefore would be unacceptable.

(6). If we allow messages to be changed, how much do we allow them to be changed? Suppose a message is changed beyond all recognition? Suppose one message is essentially replaced by another? At what point do we insist that it be given a new UID -- assuming we must because at some point it essentially becomes a new message? To me, this seems such a morass that it is not worth discussing. My conclusion: messages SHOULD be immutable and that's that.

(7). The fact that messages are immutable should not be a big deal. You can change a message in any way at all as long as you retire its UID and give it a new one. If you need a link between the original and the changed version then that can be done outside of IMAP by using a thread id or something similar in the headers.

IMAP cannot be perfect, at least because it has to be used in conditions that are imperfect. But IMAP is awfully good and thinking about changing it often serves just to reinforce how good it is.

Pete

Reply via email to