I wasn't debating whether the names SHOULD be case-sensitive or not, rather the method for enforcing insensitivity in the DB. Coercing strings to lowercase for comparison on each query and therefore requiring a separate index is brute force. Enforcing the integrity of the data at insertion is just good design.

Now, that said, while RFC 2821 states that SMTP implementations MUST treat the local part as case-sensitive, this does NOT mean that any particular provider MUST have case-sensitive local names. Since some providers MAY offer case-sensitive names, each SMTP server in the route must maintain the case integrity.

There are many characters that are allowable by RFC in a local name, that does NOT mean that every provider has to allow every character in THEIR local names. A tilde is a perfectly valid character to use in a local name, however, very few administrators would allow it as a valid name character to avoid confusion. I can also choose, as the administrator for email services I provide, NOT to offer case-sensitive names for the same reason. An email address such as [EMAIL PROTECTED] could be written in all lowercase, all uppercase or mixed case ([EMAIL PROTECTED]) and still be delivered. As a corporate policy this just makes sense.

So when person A sends an email to "[EMAIL PROTECTED]" and person B sends an email to "[EMAIL PROTECTED]" the case is preserved until delivery so that if we DO have case-sensitive names the correct user will receive the email. However, there's nothing that says (even RFCs) that the local system cannot treat those as the same mailbox.

Criticizing dbmail as not RFC compliant because it does not allow case-sensitive usernames is a straw horse. Criticizing dbmail because it doesn't offer case-sensitive usernames when YOU want to allow them is valid.

Robert Claeson wrote:

On 29 Dec 2006, at 03:38, Rod K wrote:

That's still not an elegant solution. The best solution would be be to write a constraint or domain in the DB that would prevent uppercase characters being inserted at all no matter where the insertion is coming from.

That's what I would call a brute-force approach. The case of e-mail addresses should be preserved. Furthermore, it's only the domain part of the address that's case insensitive. The local part is actually case sensitive.

Robert
_______________________________________________
DBmail mailing list
[email protected]
https://mailman.fastxs.nl/mailman/listinfo/dbmail

Reply via email to