lowercase senderaddress

Glenn Steen glenn.steen at gmail.com
Wed Oct 28 15:08:54 GMT 2009

2009/10/27 Hugo van der Kooij <hvdkooij at vanderkooij.org>:
> On 10/27/09 17:29, Oli Schacher wrote:
>> Hi list,
>> Apparently, sender and recipient address are changed to lowercase
>> characters in MailScanner(with postfix).  This seems to break BATV if
>> the sender address contains uppercase characters and leads to rejected
>> mails if the receiving MTA does sender address verification ( I know it
>> shouldn't, but I can't do anything about that).
> RFC 5321 clearly indicates that the local part should be considered case
> sensitive:
>   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
> It is not recommended to rely on it but mangling it is in violation of the
> MUST statement in this RFC.
> Hugo.
That's essentially the same as in the old 2821, and they both go on
(in 4.1.2) to say:
"While the above definition for Local-part is relatively permissive,
   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.  For any purposes that require generating or comparing
   Local-parts (e.g., to specific mailbox names), all quoted forms MUST
   be treated as equivalent and the sending system SHOULD transmit the
   form that uses the minimum quoting possible."

... by which the MS behavior is OK?! Slightly less than lucid, methinks:-).

But basically this boils down to the MS way of not preserving the case
being at fault (there's another clause (2.2.3? Don't remember:-) that
go on to say that anyone BUT the final "recipient machine", or rather
domain, isn't allowed to alter the local-part in any way, so ... might
fall afoul of that too). Anyway... seems that Jules needs take a look.
That lc() thing is pretty old, IIRC, might've been part of the
"repecient stutter" (every recipient appearing twice in MailWatch)
thing, or perhaps some matching fix. It's been like this for ages:)

-- Glenn
email: glenn < dot > steen < at > gmail < dot > com
work: glenn < dot > steen < at > ap1 < dot > se

More information about the MailScanner mailing list