I'm pleased to see that dovecot-2.2 includes support for RFCs 4467 and 4469
(URLAUTH and CATENATE). I have begun testing these features (in dovecot-2.2.1)
and comparing their functionality against Apple's implementation. So far I
have discovered a few inconsistencies. I will report each of these, and any
more that I may find, in separate threads.
The first issue is that using CATENATE with no message parts works but, IMO,
shouldn't:
a2 append inbox catenate ()
a2 OK [APPENDUID 1366726248 9] Append completed.
For comparison this is how Apple's enhanced dovecot in OS X Server handles
this request:
a2 append inbox catenate ()
a2 BAD Invalid arguments.
According to RFC 4469 section 3 CATENATE requires "one or more message
parts." This is formalized in section 5:
append-data =/ "CATENATE" SP "(" cat-part *(SP cat-part)
")"
and in RFC 3501 section 9 which states that "[ABNF] rules MUST be followed
strictly."
I believe that permitting zero cat-parts is contrary to the RFC, although I can
understand permitting it under the general doctrine of "servers should be
liberal in what they accept, and clients strict in what they send."
Is accepting zero cat-parts an intentional exception to the RFC or an oversight?