MX records

A review of the domain's MX records: Whether mail is deliverable, whether every mail host resolves, and whether a domain that sends no mail says so with a Null MX.

Do this: Point MX at your mail provider and delete stale hosts. A stale MX host can be claimed by someone else and used to receive your mail.
PassMX records are present and resolve correctly, or a Null MX declares the domain does not receive mail.
InfoMX records are missing, unresolvable, or misconfigured; review the findings.

The fix, in one snippet

Example to adapt Check what is published
dig +short MX example.com

Illustrative values. Change the paths, hostnames and options to match your own site before using it.

The sections below explain what is tested, why it matters and the alternatives.

What we test

Scan.now queries the MX records of the registrable domain and lists each host with its priority. It then resolves every MX hostname to A or AAAA records and reports hosts that do not resolve, hosts that point to private or loopback addresses, and MX targets that are CNAMEs, which RFC 2181 section 10.3 prohibits and some senders reject. A single record of 0 . is recognised as a Null MX (RFC 7505), meaning the domain deliberately accepts no mail, and passes with a note. A domain with no MX records at all is flagged as informational: RFC 5321 section 5.1 says senders then fall back to the domain's A record, so mail attempts go to your web server. The report identifies the provider from well-known hostnames (Google, Microsoft 365, Proton, Zoho, Fastmail) for orientation. Scan.now performs DNS lookups only and never connects to port 25.

Why it matters

Mail delivery follows MX records blindly, so an error there is either an outage or a takeover. An MX pointing at a hostname that no longer resolves loses mail silently; an MX pointing at a domain that has expired is worse, because whoever registers that domain receives your mail, including password-reset messages for every service tied to addresses at your domain. Records left over from a previous provider are a common cause. The "no MX" state has its own problems: fallback-to-A means senders try your web server on port 25, which is at best noise and at worst an open relay if something answers. A domain that does not use email should say so explicitly with a Null MX and a v=spf1 -all SPF record, so that spoofers cannot use it and bounces are immediate. The SPF, DKIM and DMARC guide covers the records that go with MX.

How to fix it

Publish MX records exactly as your provider documents them, pointing at hostnames (never IP addresses, never CNAMEs). Google Workspace now uses a single record:

example.com.  IN  MX  1  smtp.google.com.

Microsoft 365:

example.com.  IN  MX  0  example-com.mail.protection.outlook.com.

A domain that sends and receives no mail:

example.com.        IN  MX   0  .
example.com.        IN  TXT  "v=spf1 -all"
_dmarc.example.com. IN  TXT  "v=DMARC1; p=reject"

In the Cloudflare DNS dashboard, MX records are always "DNS only" (they cannot be proxied); if the target is a host you run yourself, make sure its A record is also unproxied, since Cloudflare's HTTP proxy does not carry SMTP. Remove records for providers you have left. Verify:

dig +short MX example.com
dig +short A smtp.google.com

If the domain runs its own mail server, publish an SPF record listing it, set up DKIM signing, and review the DNSSEC and CAA checks, which also protect the mail host's certificate.

Where this fits

MX records is check 8 of 8 that the website vulnerability scanner runs under dns and email authentication, ordered the way they are worth fixing. That ordering is the point: Fixing this one while the check above it still fails buys less than it looks like.

Fix this one first

Above it in the same category sits DKIM selector discovered (info), where no DKIM public key was found under the common selector names, or the key found is weak or revoked. An attacker who has that does not need this, so it is the better use of the same hour.

Found in the same scan

The website vulnerability scanner reports this alongside checks from other categories that are at least as serious, including Certificate chain and hostname validation, where the certificate presented for this hostname did not validate: The chain does not reach a trusted root, an intermediate is missing, the name does not match, or the certificate is self-signed or expired, and Exposed .env configuration file, where a .env configuration file is served from the web root. A single run of website vulnerability scanner answers all of them at once.

Prompt for an AI Hand this check to an assistant Sign in to copy it
The first few lines
You are a senior web engineer. I ran a security and SEO scanner against my site and it reported the finding below. Fix it properly rather than suppressing the symptom.

Finding: MX records (info severity)
Scanner check id: mx-records
17 more lines, including the evidence and the exact fix

The rest of this prompt names the pages and line numbers we found the problem on, the configuration to change, and the constraints a good answer has to respect. It is free, it just needs an account so the work is not scraped wholesale.

Sign in with Google

Signing in is free and takes one click. We store your email address and nothing else.

References

  1. RFC 5321 section 5.1: Locating the target host
  2. RFC 7505: A Null MX resource record
  3. Google Workspace: Set up MX records
  4. RFC 2181 section 10.3: MX and NS records must not point to CNAMEs

Related guides