What the Email Health Check looks at
The Email Health Check reads your domain's public DNS and groups what it finds into four pillars. Each pillar answers one question.
| Pillar | The question | Records checked |
|---|---|---|
| Inbound routing | Where does mail for this domain go? | MX, Null MX (RFC 7505) |
| Sender authentication | Can receivers tell real mail from forged mail? | SPF (RFC 7208), DKIM (RFC 6376), DMARC (RFC 9989) |
| Transport security | Is mail to this domain protected from TLS downgrade? | MTA-STS (RFC 8461) |
| Reporting | Will you hear about problems? | DMARC rua, TLS-RPT (RFC 8460) |
It does not log in to anything, send test mail or read your mailboxes. Everything comes from DNS and, for MTA-STS, the public policy file.
How each check is graded
Every individual check gets one of five statuses:
- Pass. The record exists, is valid and follows current guidance.
- Warning. It works, but something is weak or risky. Examples: SPF ending in
?all, DMARC atp=none, MTA-STS intestingmode, or SPF close to its limit of 10 DNS lookups. - Fail. The record is missing where it's needed, is invalid, or will cause errors. Examples: two SPF records, SPF over the 10-lookup limit, or a DMARC record with a syntax error.
- Not tested. We couldn't run the check from outside. The usual case is DKIM: you choose the selector name, and if we can't find it, the result is unknown, not broken.
- Not applicable. The check doesn't make sense for this domain. A domain that publishes Null MX doesn't need MTA-STS, for example.
How the score is calculated
Each pillar shows its own status, so you can see at a glance which area needs work.
The overall score is calculated only over the checks that could run. Not tested and Not applicable checks are left out, not counted as failures. Next to the score we show a coverage figure: the share of checks that actually ran. A score of 90 with 60% coverage tells you less than a score of 90 with full coverage. Read them together.
Email intent: what the domain is for
Before grading, we classify the domain by what its DNS says it does with mail. This changes which checks apply.
| Intent | Typical DNS signals | What changes |
|---|---|---|
| Receives mail | One or more MX records point to mail hosts | All four pillars apply |
| Sends only | No usable MX, but SPF or DKIM authorizes senders | Inbound routing and MTA-STS become Not applicable; authentication is graded in full |
| No mail | Null MX (MX 0 .), or SPF v=spf1 -all with no MX |
We check that spoofing is blocked: SPF -all and DMARC p=reject |
| Unknown | Signals conflict or are missing | We grade what we can and mark the rest Not tested |
A domain that intentionally doesn't receive mail isn't failing because it has no MX. It should say so explicitly. The recommended setup for a parked or no-mail domain is:
example.com. MX 0 .
example.com. TXT "v=spf1 -all"
_dmarc.example.com. TXT "v=DMARC1; p=reject;"
RFC 7505 says a domain that publishes Null MX must not publish any other MX record, and that domains used in From addresses shouldn't publish Null MX.
Common problems and fixes
No DMARC record. Start in monitoring mode and add a reporting address:
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
Then move toward quarantine and reject once your reports show all legitimate mail passing. Our guide on moving DMARC from none to reject has the steps.
SPF PermError. Usually too many includes or two SPF records. Merge into one record and remove unused senders. See fixing too many SPF DNS lookups.
MTA-STS missing. Publish a TXT record and a policy file served over HTTPS:
_mta-sts.example.com. TXT "v=STSv1; id=20261009T000000"
Policy at https://mta-sts.example.com/.well-known/mta-sts.txt:
version: STSv1
mode: testing
mx: mail.example.com
max_age: 604800
Start in testing, watch TLS-RPT reports, then switch to enforce. Change the id every time you edit the policy.
No TLS-RPT. Add a reporting address so senders can tell you about TLS failures:
_smtp._tls.example.com. TXT "v=TLSRPTv1; rua=mailto:tls-reports@example.com"
Limitations
- The score is about DNS configuration, not spam-filtering effectiveness. It can't tell you how much spam or phishing reaches your users.
- An MX record pointing at a filtering service doesn't prove mail is filtered. A sender can still deliver straight to your mail server if it accepts direct connections.
- DKIM can only be checked for selectors we can find. Use the DKIM Checker with your own selector.
- DNS is cached. A change you just made may take time to appear, depending on its TTL.
- Results are a snapshot. Records change; re-run the check after any change.
Related guide
New to these records? Start with SPF vs DKIM vs DMARC: what each one proves.
Frequently asked questions
Does a high score mean my spam filtering is good?
No. The score only reflects DNS configuration: MX, SPF, DKIM, DMARC, MTA-STS and TLS-RPT records. It can't see how well any service filters spam, phishing or malware, and it can't prove mail is actually filtered.
Why isn't my coverage complete?
Some checks can't run from the outside. For example, we can only test DKIM if we can find a selector, and some checks don't apply to a domain that sends no mail. Those checks are marked Not tested or Not applicable and are left out of the score.
My domain doesn't receive email. Why isn't it failing?
If a domain publishes a Null MX record (MX 0 .), we classify it as a no-mail domain. Inbound routing checks become Not applicable. We then check that it also blocks spoofing with SPF -all and a DMARC reject policy.
Do you store the domains I scan?
The tool reads public DNS records only. It doesn't need access to your mailboxes or mail server, and it doesn't send test messages.
How often should I run it?
Run it after any DNS or mail provider change, and before and after moving MX records. iBlockSpam customers also get domain monitoring that alerts on MX, SPF or DMARC changes: weekly on Protect, daily on Protect Plus.
Related guides
How do you set up email on a new business domain?
Setting up email on a new business domain? Follow this checklist: MX, SPF, DKIM, DMARC from p=none to enforcement, optional MTA-STS and BIMI, PTR and warm-up.
10 min read Running email day to dayEmail security checklist for small businesses in 2026
A practical 2026 email security checklist for small businesses: MFA, SPF, DKIM and DMARC, filtering, backups, staff training and an incident plan.
9 min read Setup guidesHow do you add SPF, DKIM and DMARC records in Cloudflare?
Step-by-step: add SPF, DKIM, DMARC and MX records in Cloudflare DNS, why mail hostnames must be DNS only, how TXT quoting works, and how to check your records.
8 min read