In a previous JE i noted "2) Some systems gets confused." when using my customized email addresses. Well, i found the problem.
external @example.com emails are bounced
chacham.example.com MX example.com
*@chacham.example.com are rewritten internally to email@example.com
At the office if i send an email to firstname.lastname@example.org it bounces telling me that email@example.com is an invalid address. So it seems that Exchange is writing the envelope based on the MX translation. It is supposed to do the transmission based on MX translation, but it should still put the typed in address to the envelope.
A friend just found KB 153001 that describes the behavior:
To determine mail hosts, the sending server checks for an MX record. Next, the sending server resolves the MX record to an IP address by checking for an address record (A record). If an A record is found, the address is fully canonicalized and mail can be delivered.
However, if an alias record (CNAME) is used for the hostname listed in the MX record, the sending host might re-write the envelope and redirect the RCPT command to the alias hostname and not the original recipient. This might cause the destination SMTP host to reject the message.
As i have chacham.example.com both as an MX and a CNAME record, that definitely explains the problem. Indeed a test with a subdomain that is only MX but not a CNAME does not bounce.
The KB article goes on to justify its actions:
RFC 1123 explicitly states that SMTP mail should be addressed to canonical name hosts. To be canonical, the DNS entry must be an A record or an MX record. CNAME records are not canonical and should not be mixed with MX records.
it then mentions that other senders do not follow this behavior.
OK, so let's look at RFC 1123 (Page 49-50):
The domain names that a Sender-SMTP sends in MAIL and RCPT commands MUST have been "canonicalized," i.e., they must be fully-qualified principal names or domain literals, not nicknames or domain abbreviations. A canonicalized name either identifies a host directly or is an MX name; it cannot be a CNAME.
IOW, use the MX record or the A record (or the ip address) but don't use the CNAME. Sheesh, Microsoft did implement it correctly. However, by their own admission, this is not the way it is usually implemented. And, the way it is usually implemented is also correct, and probably what the user wants. Further, the KB article is incorrect when it states that "CNAME records are not canonical and should not be mixed with MX records." The RFC does not state that. It say that a CNAME cannot be used in the envelope addressing, but makes no comments on having a record be both MX and a CNAME.
I left a comment on the KB article mentioning that mistake. But now, i either have to remove the CNAME, add another MX record, or except the fact that i won't get email from Exchange.
Removing the CNAME seems odd to me. Technically, i did it correctly. I'm just not relying on defaults. I also used to have the CNAME point elsewhere, so i actually required both. Adding another MX record is OK, but that removes half the idea of what i wanted. Not accepting email from Exchange is what i have been doing until now, and isn't too much of a problem. Though it's certainly a restriction i can do without.