If envelope data must be received from the agent which stores the message (client, MTA, whatever), then the PUT command should accept envelope data.

Is this too strict? Is envelope data required for every message stored on the server? Will NULL envelope data be allowed? My gut says requiring envelope data is necessary and good. Implement soonest, but at least these thoughts are now part of the record. - dave

Upon further thought, the envelope data should not be provided by the client, but should be extracted from the headers of the message or left unset (with the exception of the timestamp). For example, if the user uploads a message to send, there's no reason to set the envelope sender immediately, as that will be set when sending. The same applies to the envelope recipient(s). The internal timestamp is the one attribute I would prefer not to leave unset, but would instead use the current date/time (date/time of "delivery" to my mailbox) as the timestamp when PUTting a message which does not have a "Received:" trace field in the headers. That said, in a future iteration of this protocol it may be worth having set/get envelope commands to make it more flexible (I may implement while working on the server), but for now we'll just use setting the envelope during SEND. - dave

Issue done.