Email DNS Checker
Check a domain's MX, SPF and DMARC records and get a plain explanation of what's wrong. The three records that decide whether your email reaches the inbox.
The three records that decide your deliverability
MX says where mail for your domain is delivered. No MX record means nobody can email you at all.
SPF is a TXT record listing which servers may send mail claiming to be from your domain. Receivers check it on every message.
DMARC is a TXT record at _dmarc.yourdomain.com telling receivers what to do when SPF or DKIM fails: ignore it, quarantine it, or reject it. It also asks for reports.
Get these three right and your mail behaves. Get them wrong and it silently lands in spam, which is much harder to notice than a bounce.
The mistakes this tool looks for
Two SPF records. The most common serious fault. The spec permits exactly one v=spf1 record per domain — with two, receivers treat SPF as permanently broken and stop trusting the domain. It usually happens when a second provider is added and appends its own record instead of merging.
More than ten DNS lookups in SPF. Each include:, a, mx, ptr, exists and redirect costs a lookup, and the limit is ten. Over that, SPF returns permerror and fails. Chained include: statements pull in other people’s lookups too, so this creeps up on you.
+all at the end. This tells the world that any server may send as your domain. It’s the same as having no SPF at all, and worse, because it looks configured. Use -all (hard fail) or ~all (soft fail).
No DMARC, or p=none forever. p=none is a monitoring mode. It’s the right place to start and the wrong place to stay — it asks receivers to do nothing. Move to quarantine and then reject once your reports are clean.
If you’re on free hosting
Nearly every free host blocks outbound SMTP, so mail() and contact forms silently fail no matter how good your DNS is. That’s a deliberate anti-spam measure and no DNS record works around it.
Send over an HTTP API instead — Resend, SendGrid, Mailgun and Postmark all have free tiers and all work over port 443, which isn’t blocked. Then add that provider to your SPF record. There’s more on this in how to host a website for free.