SPF & DMARC Checker
Validate email authentication records.
Asked from our server in Newark, US · SPF with every include, DMARC, DKIM and the records around them
The forged-message test: would a forgery get through?
- Arrives203.0.113.66A stranger’s server, using the domain in the From line
- Gate 1 · SPFIs the sender on the list?Waiting for the SPF record…
- Gate 2 · DKIMIs it signed by the domain?Waiting for the keys…
- Gate 3 · DMARCWhat does the policy say?Waiting for the DMARC record…
- Where it ends upInbox, or refusedThe DMARC policy decides, for receivers that follow it
The same check, as instruments
Dials and lamps for the numbers the letter above is built from.Lookup budget
NewStandbyEach include, a, mx, ptr, exists and redirect costs one lookup. Past 10, receivers return an error.
The all rule
StandbyWhat receivers do with a server that isn’t listed.
- -all unlisted servers fail
- ~all soft fail: usually accepted, marked
- ?all neutral: tells receivers nothing
- +all anyone may send
DMARC policy
Standby- none
- quarantine
- reject
Subdomains, DKIM alignment and SPF alignment show here.
- none only monitor: you get reports
- quarantine failing mail goes to spam
- reject failing mail is refused
DKIM bank
StandbyWe try 16 common selectors, plus any you type. Not finding a key doesn’t prove DKIM is missing.
Mail lamps
StandbyDNS question tape
StandbyEvery DNS question we ask streams past here with its time.
Who may send as cloudflare.com, drawn as a star chart
The same forged letter, flying in. Hover a star to light its row below; click to jump to it.
Press Check to map who may send as cloudflare.com
- Domain · DMARC halo
- Sender · size = addresses
- 10-lookup horizon
- DKIM selectors
- The forged letter
The records the gates used
Everything we read for cloudflare.com: what to change first, the SPF record and every include it pulls in, who may send, DMARC and its reports, the DKIM keys, and the records around the mail.
What to doNew
The steps in order, with records you can copy, and every finding in words.
The SPF record
Found among the domain’s TXT records, then read term by term. The closing all rule matters most.
The TXT records New
The include treeNew
Every term that costs a DNS lookup, in the order a receiving server meets them.
The lookup budget New
Who can send as cloudflare.comNew
Each service the SPF record lists, with the IPv4 addresses it covers.
DMARC
The policy that decides at gate 3, its place on the road to reject, and where reports go.
Report addresses New
DKIM
A sheet of every selector we tried: the 16 common ones, after any you typed.
Not finding a key doesn’t prove DKIM is missing: keys live at names only the sender knows, and we only try common ones.
Around the mail
Where mail is received, whether it must arrive encrypted, the inbox logo and whether the answers are signed.
Mail servers (MX)
NewWaitingMTA-STS and TLS-RPT
NewBIMI logo
NewWaitingDNSSEC
NewWaitingThe check’s pathNew
Nine steps, and every DNS question behind them: the name asked, the answer and how long it took.
Raw records and JSON
The records found, zone-file style, and the endpoint’s answer.
Recent checks in this browser
Kept on this device only. Press a domain to check it again.
What the SPF and DMARC checker does
Anyone can put your domain in the From line of an email. Three DNS records let receiving servers tell real messages from forgeries. SPF lists the servers allowed to send mail for your domain. DKIM publishes keys that verify a signature on each message. DMARC tells receivers what to do when a message fails those checks. This checker reads all three for a domain from our server in Newark, US, and explains what it finds.
It follows every SPF include down to the last record and counts the DNS lookups the way a receiving server does. It checks that report addresses on other domains have agreed to take your DMARC reports, and reads the records around email: MX, MTA-STS, TLS-RPT, BIMI and DNSSEC. Finally, it works out what would happen to a forged message claiming to be from you. We never send an email: the test follows your published records.
Use it when setting up email on a new domain, after adding a service that sends mail for you – a newsletter tool, a help desk or a billing system – or when genuine messages start landing in spam.
How to use the SPF and DMARC checker
- Type your domain, or an email address: we use the part after the @.
- Optionally add your DKIM selector if you know it (your email provider shows it). Separate several with commas.
- Press Check and work through any problems, starting with the red ones. Where a record needs changing, we suggest one you can copy.
Understanding the results
Each check states its result in words: good, information, warning or problem. We count the findings; we don’t give a grade. For SPF, the closing all rule matters most: -all fails unlisted senders, ~all soft-fails them, ?all is neutral and +all lets anyone send as you. The lookup count shows how many of the 10 permitted DNS lookups your record uses, including those inside each include, and we warn from 8. A lookup that finds nothing is a void lookup, and more than two is also an error.
For DMARC, the policy tells receivers what to do with failing mail: none only monitors, quarantine sends it to spam and reject refuses it. Percentage shows how much failing mail the policy covers, and the rua address is where aggregate reports go. When that address is on another domain, the other domain must publish a record agreeing to receive them, and we check for it. For DKIM, each key found shows its selector, type and size. An empty key means it has been revoked.
The services listed as senders are recognised from their include and selector names. That’s our rule of thumb, not proof of who sends. MTA-STS asks other servers to deliver your mail only over encrypted connections, and TLS-RPT tells them where to report problems. BIMI publishes a logo that some inboxes show next to your messages; we don’t fetch the logo or check its certificate.
Questions
What is the 10-lookup limit?
SPF may trigger at most 10 DNS lookups (include, a, mx, ptr, exists, redirect). Beyond that, receivers treat SPF as broken. We follow each include and count its lookups too.
Why isn’t my DKIM key found?
DKIM keys live at selector names only the sender knows. We try 16 common ones; add yours to check it. Not finding one doesn’t prove DKIM is missing.
Which DMARC policy should I use?
Start with p=none to collect reports, then move to quarantine and finally reject once legitimate mail passes.
My domain never sends email. Does it need these records?
Yes, if you want to stop others using it. When a domain has no MX records, we suggest publishing v=spf1 -all, a DMARC record with p=reject and a null MX record, which together tell receivers that no mail from it is genuine.
Can I have two SPF records?
No. A domain may publish only one, and receivers treat two or more as an error. Merge them into a single record with all your senders in it.
Do you send a test email?
No. The forged-message test is worked out from your published records, so nothing is sent and no mailbox is touched.
Where is my mail delivered?
SPF, DKIM and DMARC are about sending. The servers that receive your mail are your MX records, which the MX record lookup checks in detail.
Are checks stored?
Recent checks stay in your browser. A PDF report keeps a copy so anyone with its reference can verify it.