πŸ“§

DNS Mail MX

Security Auditor

Validates MX records for proper email routing

SecurityDNSMail
30 credits
Per check
~30 seconds
Average runtime
Active
Status

Run this auditor

3 of 3 free audits left today

See what DNS Mail MX finds on your site. No sign-up needed.

How it works

  1. Domain β€” takes the hostname of the audited URL and strips one leading www., so https://www.example.com/contact is audited as example.com. An empty or malformed URL, or one without a hostname, ends the audit with 501.

  2. Lookup β€” queries the MX records of that domain through the system resolvers, with no cache. A resolver failure (SERVFAIL, timeout) ends the audit with 500: it is not a missing record. NXDOMAIN and NODATA count as "no MX records".

  3. Rules β€” no MX record at all fails (400); a domain whose MX records all point at the root (0 ., the RFC 7505 null MX) warns (300).

  4. Aggregate β€” FAIL wins over WARNING; when at least one MX record points at a real host the audit is SUCCESS (200) and the message lists the hosts sorted by preference.

  5. Specification pin β€” every run emits 37A-DnsMailMxAuditor-100 (INFORMATION), naming RFC 5321 Simple Mail Transfer Protocol Β§5.1 (October 2008). It does not change the overall status.

What this auditor validates

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail, 500–599 error.

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-DnsMailMxAuditor-100INFORMATIONAlways. Records the specification this auditor implements.β€” (recommendation is null; nothing for the site to change)β€”
37A-DnsMailMxAuditor-400FAILThe domain publishes no MX record at all (NXDOMAIN, NODATA or an empty answer).Publish at least one MX record for {domain} pointing at the server that accepts its email, for example "{domain}. MX 10 mail.{domain}.".Without MX records, sending servers fall back to the domain's web address, so email from customers and partners bounces or is lost unless the web server also runs mail.
37A-DnsMailMxAuditor-300WARNINGEvery MX record of the domain is the RFC 7505 null MX (0 .), which declares that the domain accepts no email.If {domain} should receive email, replace the null MX record "{records}" with MX records pointing at its mail servers; if it is meant to never receive email, no change is needed.A null MX tells every sending server to reject mail for the domain on the spot, so a domain that is expected to receive email loses every message addressed to it.
37A-DnsMailMxAuditor-200SUCCESSAt least one MX record points at a real host. Message lists the hosts sorted by preference: "{domain} publishes {count} MX records: {host} (priority {priority}), …".β€”β€”
37A-DnsMailMxAuditor-500ERRORThe resolver could not answer the MX query (SERVFAIL, timeout, network error).Make sure the name servers of {domain} answer MX queries, then run the audit again. Last error: {error}.β€”
37A-DnsMailMxAuditor-501ERRORThe audited URL is empty, malformed or has no hostname to query.Provide a URL with a scheme and a hostname, for example https://example.com/; received "{url}".β€”

Output Documentation

StatusDescriptionTest logic
SUCCESSThe domain publishes MX recordsAt least one MX record points at a real host (200); the check data lists domain, mxRecords (priority, target, sorted by preference), mxCount and mxHosts.
WARNINGThe domain declares it accepts no emailEvery MX record is the null MX 0 . (300).
FAILThe domain has no MX recordsThe MX query answered NXDOMAIN, NODATA or no records (400).
ERRORThe auditor could not run the checkResolver failure (500); empty, malformed or host-less URL (501).
INFORMATIONSpecification pinAlways emitted (100); does not change overall status.

Risks and Considerations

Why MX records matter

  • Contact forms, order confirmations, password resets and replies from customers all depend on senders finding the domain's mail server. A domain without MX records receives whatever the fallback to its address record happens to deliver, which is usually nothing.

  • A null MX (0 .) is a deliberate, valid statement that the domain never receives email (RFC 7505). It is right for a domain used only for a website or for sending, and wrong for one that has mailboxes, so this auditor warns rather than fails.

What is audited

  • The domain is the hostname of the audited URL minus one leading www.. A page on shop.example.com is audited as shop.example.com, whose MX records may legitimately differ from example.com.

  • The auditor queries DNS only. It does not connect to the listed mail servers, check that they resolve, or test SPF, DKIM or DMARC (see the other DNS Mail auditors).

  • A domain that mixes a null MX with real hosts violates RFC 7505; the auditor reports the real hosts as a success and leaves the null MX in the check data.

Changes from the previous version

  • A null MX (0 .) used to be reported as SUCCESS with an empty host; it is now a WARNING (300).

  • An empty, malformed or host-less URL used to be a FAIL; it is now an ERROR (501), because nothing about the domain was observed.

  • A resolver failure (SERVFAIL, timeout) used to be reported as "no MX records" (FAIL); it is now an ERROR (500), so a transient DNS problem no longer looks like a missing record.

  • Unexpected exceptions used to be caught and returned as FAIL; the core now reports them as ERROR.

This documentation is built and hosted on Mintlify, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

Β© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ❀️ in Floripa