Stephen John Smoogen wrote:
On 7 September 2017 at 16:07, Alexander Dalloz ad+lists@uni-x.org wrote:
Am 07.09.2017 um 20:07 schrieb hw:
Gordon Messmer wrote:
On 09/07/2017 08:11 AM, Stephen John Smoogen wrote:
This was always problematic because DNS hostnames and email addresses in the RFC standards were case insensitive
Not quite. SMTP is required to treat the "local-part" of the RCPT argument as case-sensitive, and to preserve case when relaying mail. The destination is allowed to treat addresses according to local policy, but in general SMTP is case sensitive with regard to the user identifier.
Last time I checked, RFCs said that local parts *should not* be case sensitive, and cyrus defaulted to treat them case sensitive, which is a default that usually needs to be changed because senders of messages tend to not pay any attention to the case sensitiveness of recipient addresses at all, which then confuses them like any other error.
The relevant part from the RFC:
https://www.ietf.org/rfc/rfc5321.txt
2.4. General Syntax Principles and Transaction Model
Verbs and argument values (e.g., "TO:" or "to:" in the RCPT command and extension name keywords) are not case sensitive, with the sole exception in this specification of a mailbox local-part (SMTP Extensions may explicitly specify case-sensitive elements). That is, a command verb, an argument value other than a mailbox local-part, and free form text MAY be encoded in upper case, lower case, or any mixture of upper and lower case with no impact on its meaning. The local-part of a mailbox MUST BE treated as case sensitive. Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts. In particular, for some hosts, the user "smith" is different from the user "Smith". However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged. Mailbox domains follow normal DNS rules and are hence not case sensitive. for maximum interoperability, a host that expects to receive mail
SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case- sensitive.
Thanks for the clarification to my original email. I misremembered RFC821 and thought it was for the entire part..
Commands and replies are not case sensitive. That is, a command or reply word may be upper case, lower case, or any mixture of upper and lower case. Note that this is not true of mailbox user names. For some hosts the user name is case sensitive, and SMTP implementations must take case to preserve the case of user names as they appear in mailbox arguments. Host names are not case sensitive.
RFC2821, section 4.1.2:
" for maximum interoperability, a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case- sensitive. "
It comes down to that case-preservation is demanded from the implementations of protocols while, pragmatically, local parts are encouraged to be case insensitive.
More than a decade ago, I argued that the default used by cyrus be changed to treat local parts case insensitve. About 2 years ago, that still hadnĀ“t changed.
So everyone deploying cyrus, be aware. Other than that, cyrus always worked flawlessly, and I highly recommend it to everyone needing an IMAP server.