Is smart hosting to an A record a violation of RFC-5321 section 1?

Mike B asked:

I have a sendmail server configured to smarthost to a downstream resource. The configuration is currently:

define(`SMART_HOST',`relay:[vip.example.local]')dnl

Since it’s sending the A record for vip.example.local. I’ve been told that this is a violation of IETF RFC-5321 section 5.1 which states:

Once an SMTP client lexically identifies a domain to which mail will
be delivered for processing (as described in Sections 2.3.5 and 3.6),
a DNS lookup MUST be performed to resolve the domain name (RFC 1035
[2]). The names are expected to be fully-qualified domain names
(FQDNs): mechanisms for inferring FQDNs from partial names or local
aliases are outside of this specification. Due to a history of
problems, SMTP servers used for initial submission of messages SHOULD
NOT make such inferences (Message Submission Servers [18] have
somewhat more flexibility) and intermediate (relay) SMTP servers MUST
NOT make them.

The lookup first attempts to locate an MX record associated with
the name. If a CNAME record is found, the resulting name is
processed as if it were the initial name. If a non-existent domain
error is returned, this situation MUST be reported as an error. If
a temporary error is returned, the message MUST be queued and
retried later (see Section 4.5.4.1). If an empty list of MXs is
returned, the address is treated as if it was associated with an
implicit MX RR, with a preference of 0, pointing to that host. If
MX records are present, but none of them are usable, or the
implicit MX is unusable, this situation MUST be reported as an
error.

If one or more MX RRs are found for a given name, SMTP systems MUST
NOT utilize any address RRs associated with that name unless they are
located using the MX RRs; the “implicit MX” rule above applies only
if there are no MX records present. If MX records are present, but
none of them are usable, this situation MUST be reported as an error.

When a domain name associated with an MX RR is looked up and the
associated data field obtained, the data field of that response MUST
contain a domain name. That domain name, when queried, MUST return
at least one address record (e.g., A or AAAA RR) that gives the IP
address of the SMTP server to which the message should be directed.
Any other response, specifically including a value that will return a
CNAME record when queried, lies outside the scope of this Standard.
The prohibition on labels in the data that resolve to CNAMEs is
discussed in more detail in RFC 2181, Section 10.3 [38].

Since mail servers support the option to smart host to an IP, I don’t understand how smarthosting to an A record could be a violation.

My answer:


This obviously applies to mail servers attempting to deliver mail to its destination. It’s utterly irrelevant to situations where you are delivering all mail to a smarthost; the smarthost that you deliver to is responsible for following this, but you are not.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.