Quoting Mike Abbott michael.abbott@apple.com:
It's the inconsistency that bothers me. Plain old APPEND doesn't
allow empty messages but CATENATE does?
I don't recall/see anything in RFC 3501 that prevents a zero-length message:
append = "APPEND" SP mailbox [SP flag-list] [SP date-time] SP literal
[...]
literal = "{" number "}" CRLF *CHAR8 ; Number represents the number of CHAR8s
[...]
number = 1*DIGIT ; Unsigned 32-bit integer ; (0 <= n < 4,294,967,296)
So this is legal under the ABNF:
APPEND mailboxname {0}CRLF[0 length *CHAR8]CRLF
Timo mentioned that MULTIAPPEND doesn't allow zero-length messages.
But looks like that was done solely as a way to provide a mechanism to
cancel a MULTIAPPEND rather than a statement that zero-length messages
are not ever intended to be processed by any kind of APPEND action
(i.e. a vanilla RFC 3501 non-MULTIAPPEND action).
michael