Free tool
Email authentication checker
Enter a domain and this reads its published SPF, DKIM, DMARC, MTA-STS, TLS-RPT, and BIMI records over public DNS, grades what it finds, and gives you the exact records to publish for anything that is wrong. It runs against any domain, there is no sign-up, and if your setup is already correct it will say so and stop.
This measures posture, not deliverability. DNS tells you how exposed your domain is to being impersonated and how well the configuration is put together. It cannot tell you whether your mail is landing in anyone's inbox. That question needs the headers of a real message that arrived, which no external tool can see.
What this cannot tell you
It cannot tell you whether your mail is being delivered. That is worth saying twice, because it is the question people actually arrive with and the one DNS cannot answer. Whether a message reached a particular inbox depends on the receiving organisation's filtering, your sending reputation, what the message said, and a stack of signals that are invisible from the outside. Proving mail flowed needs the headers of a message that arrived. A perfect grade here is not a promise that your mail lands, and a poor grade does not mean anything is being blocked today.
What it does tell you is how exposed the domain is to being impersonated, and whether the configuration is put together well enough to survive the next change. Those are different questions with a real answer, and they are the ones that decide whether somebody can send an invoice as you.
It also cannot see a DKIM selector it does not guess. A selector is an arbitrary name chosen when signing was set up, and DNS provides no way to list the selectors a domain uses. We check nine common ones. A domain signing under a different name will show as unconfirmed here, which is not the same as missing. The nine we check are listed with every result, and when we find nothing the grade carries a second figure showing what it would be if you are signing with a name outside that list. A key we do find proves a key exists in DNS, which is not the same as proving mail is being signed with it. On Microsoft 365 the signing switch is a tenant setting that DNS cannot see, and administrators routinely publish the records weeks before anyone turns it on.
And a good grade here is narrower than it sounds. DMARC governs the domain in the From address and nothing else. A message from "Your Name" <[email protected]> passes DMARC without difficulty, because the domain it is sent from is genuinely the attacker's. So does a lookalike domain with one letter changed, which publishes its own perfectly valid records. An A on this page means nobody can forge your exact domain. It does not mean your staff cannot be phished, and the two get conflated constantly.
How the grade is calculated
The whole rubric is here so you can argue with it. Each result also shows the points it earned against the points available, so the letter is arithmetic rather than an opinion.
The base is scaled to 100 first, so a check that does not apply widens the remaining ones rather than making a perfect score impossible. Transport security is then added in whole points. A domain with no MTA-STS can still score 100, which is the honest treatment given how few businesses publish it, and a domain that has it gets credit for the work.
Two results cap the grade outright
No DMARC record, or a DMARC record receivers cannot use, caps the grade at F no matter how good everything else is, because the domain is open to impersonation. A policy of p=none caps it at D for the same reason. An SPF record ending in +all also caps at F, because it explicitly authorises every mail server on the internet to send as you.
Quarantine is treated as protection
p=quarantine scores just under p=reject rather than being marked as a half-measure. A quarantined message does not reach the person it was aimed at, and on Microsoft 365 it goes to the administrator-controlled hosted quarantine rather than the user's junk folder. Reject is still better. It is a smaller gap than most graders imply.
Checks that do not apply are removed, not failed
A domain with no MX records hosts no mail, so DKIM and the transport records are dropped from the total rather than scored zero. The grade is calculated out of what remains. A correctly locked-down domain that sends and receives nothing can score an A.
Unconfirmed is not the same as missing
When no DKIM key is found on the selectors we check, the result says unconfirmed and lists the nine names we tried. The grade shows both the score as measured and the score you would have if signing is happening under a name we did not guess.
What each record does
Six records, in the order they matter. The first three decide whether someone can impersonate you.
DMARC
_dmarc.yourdomain.com, TXT The policy that ties SPF and DKIM together and tells receiving servers what to do when a message fails both. It is the only one of these records that actually stops anything.
Without DMARC at quarantine or reject, a stranger can send mail that displays your exact domain in the From line and it will be delivered normally. SPF and DKIM on their own do not prevent this, because nothing instructs the receiver to act on a failure.
SPF
yourdomain.com, TXT A list of the servers allowed to send mail as your domain, plus an instruction at the end about what to do with everything else.
The usual failure is not a missing record. It is a record that has quietly grown past the ten DNS lookup limit as services were added over the years, at which point receiving servers return a permanent error and SPF fails for every message you send, including the legitimate ones.
DKIM
selector._domainkey.yourdomain.com, TXT or CNAME A cryptographic signature added to each outbound message, verified against a public key you publish in DNS.
DKIM survives forwarding and SPF does not. If a recipient forwards your message to another mailbox, SPF breaks, and DKIM is the only thing left that can produce a DMARC pass. A domain enforcing DMARC without DKIM will fail its own forwarded mail.
MTA-STS
_mta-sts.yourdomain.com TXT, plus a policy file over HTTPS An instruction to other mail servers that they must use a verified TLS connection to deliver mail to you, and must not fall back to plain text if it fails.
Mail server to mail server encryption is opportunistic by default, which means an attacker in the right position can strip it and the message is delivered in the clear with no warning to anyone. MTA-STS is how you refuse that downgrade.
TLS-RPT
_smtp._tls.yourdomain.com, TXT A reporting address where other mail servers send a daily summary of TLS failures they had connecting to you.
It is the only way to find out that your MTA-STS policy is broken before it starts silently costing you inbound mail. It costs one record and cannot affect delivery.
BIMI
default._bimi.yourdomain.com, TXT A pointer to your logo, which participating mail clients display next to your messages.
It is a brand feature, not a security control, and we report it without scoring it. It requires DMARC at quarantine or reject first, and Gmail and Yahoo also require a Verified Mark Certificate, which carries an annual cost.
The order to fix things in
This is the sequence, and the sequence is the whole job. Publishing an enforcing policy before you know who sends your mail is how a DMARC project takes out the invoicing system.
1. First, publish DMARC in monitoring mode and read the reports
If there is no DMARC record at all, publish one at p=none with a rua= address and leave it for two to four weeks. This protects nothing on its own, and that is the point: it is the instrument, not the fix. The aggregate reports tell you every system currently sending mail as your domain, and there are always more of them than anyone expects. Invoicing software, appointment reminders, the applicant tracking system, a marketing platform someone signed up for in 2019, and the scanner in the copy room are the usual finds.
2. Second, authorise the legitimate senders you found
Add each one to SPF, and turn on DKIM signing at each platform that supports it. This is the part that takes the time, and skipping it is what turns a DMARC rollout into an outage. Watch the lookup count while you do it, because ten is a hard ceiling and the eleventh include breaks the record silently.
3. Third, move the policy to quarantine
Once the reports show your legitimate mail passing, change p=none to p=quarantine. This is the step that actually stops impersonation. A spoofed message now goes to a quarantine the recipient does not see rather than to their inbox. On Microsoft 365 that is the hosted quarantine, which an administrator controls.
4. Fourth, decide whether reject is worth it
Quarantine has already stopped the attack. Moving to reject refuses the message outright rather than storing it, which removes the case where somebody releases a spoofed message from quarantine because it looked legitimate. It is the right end state for most businesses, and it is a smaller step than the one before it.
5. Then the transport records, if you want them
MTA-STS and TLS-RPT protect mail in transit rather than stopping impersonation, which is why they come last and carry the least weight here. Start MTA-STS in testing mode. In enforce mode, a mail server that cannot match your MX records against your published policy will not deliver the message at all.
If you would rather not run this yourself, sender identification and DMARC rollout are part of our cybersecurity work, and domain impersonation is one of the first things we test in a penetration test.
Questions about email authentication
What is DMARC?
DMARC is a DNS record that tells other mail servers what to do with messages that claim to be from your domain but fail authentication. It has three settings. p=none asks them to report the failure and deliver the message anyway. p=quarantine asks them to hold it where the recipient will not see it. p=reject asks them to refuse it outright. Without a DMARC record at quarantine or reject, anyone can send mail showing your exact domain in the From line and it will be delivered normally, because SPF and DKIM on their own do not instruct the receiver to do anything about a failure.
Will moving to p=reject break my mail?
It can, and the risk is entirely about preparation rather than about the setting itself. What breaks is mail from a legitimate system you did not know was sending as your domain. Invoicing platforms, appointment reminders, marketing tools, applicant tracking systems, and multifunction copiers that scan to email are the usual casualties. This is why the aggregate reports come first. Publish DMARC at p=none with a rua= address, read the reports for two to four weeks until you can account for every sender, authorise them in SPF and DKIM, and only then tighten the policy. Done in that order it is uneventful. Done by skipping straight to enforcement it takes out the billing run.
Why can you not tell me if my mail is being delivered?
Because delivery is not visible in DNS. This tool reads the records you publish, which describe your configuration and your exposure to being impersonated. Whether a specific message reached a specific inbox depends on the receiving organisation's filtering, your sending reputation, the content of the message, and things no external party can see. Proving mail actually flowed requires the headers of a real message that arrived, which we do not have and cannot obtain over DNS. A perfect grade here is not a promise that your mail lands in inboxes, and a poor grade does not mean your mail is being blocked today.
Is p=quarantine good enough, or do I need reject?
Quarantine is real protection and we grade it that way. A message that fails DMARC under a quarantine policy does not reach the person it was aimed at. On Microsoft 365 it goes to the hosted quarantine, which is administrator controlled and is not the user's junk folder, so nobody is one click away from opening it. Reject is a genuine improvement because the message is refused rather than stored, and it removes the case where someone releases a spoofed message that looked convincing. But the large step is the one from none to quarantine, and a business sitting at quarantine has already done the work that matters.
You said DKIM could not be confirmed. Does that mean I do not have it?
No. A DKIM selector is an arbitrary name chosen by whoever configured signing, and there is no DNS query that lists a domain's selectors. We probe nine common ones, including the two Microsoft 365 uses and the one Google Workspace uses, and the page prints exactly which nine. If your platform signs with a name outside that list, we cannot see it and the result says unconfirmed rather than missing. That is also why the grade shows a second figure for what it would be if DKIM is present on a selector we did not check. To settle it, look up the selector your mail platform reports in its admin console.
What is the SPF ten lookup limit?
Evaluating an SPF record is allowed to trigger at most ten DNS lookups, counted across the whole record including everything inside each include. Go over it and receiving servers return a permanent error, which means SPF fails for every message you send rather than degrading gracefully. It is the most common silent breakage in email authentication, because nothing warns you when the record crosses the line. The fix is removing includes for services you no longer use, and replacing fixed-IP senders with ip4 entries, which cost no lookup at all.
If I get an A, can my staff still be phished?
Yes, and it is worth being clear about why. DMARC only governs the domain in the From address. A message sent from a Gmail account with your chief executive's name in the display field passes DMARC without any difficulty, because the domain it was actually sent from belongs to whoever sent it. So does a lookalike domain with one letter swapped, which publishes its own perfectly valid SPF, DKIM, and DMARC. A strong grade here means nobody can forge your exact domain, which closes one specific and very commonly used route. It does not close display-name spoofing, lookalike domains, or a supplier whose mailbox has been taken over and is sending genuine mail with new bank details.
Why does the grade sometimes come with a second letter?
Because two different things can be true and DNS cannot tell them apart. When no DKIM key turns up on the selectors we probe, the domain might have no DKIM, or it might sign under a name we did not guess. Rather than pick one and be confidently wrong, the result shows the grade as measured and the grade you would have if the key exists somewhere we did not look. The same principle applies elsewhere: a lookup that does not complete is dropped from the score rather than counted as a failure, and a domain with a wildcard DNS record has DKIM removed from the score entirely, because every selector would appear to exist.
Is this an active scan of my mail server?
No. Every result on this page comes from public DNS records plus, when a domain publishes one, the MTA-STS policy file it deliberately serves at a well known public address. The tool never connects to a mail server, never scans a port, and never sends test mail. It sees exactly what any receiving mail server sees when it decides what to do with your message, which is why it can be run against any domain without permission and without touching anything.
Do you store the domains people check?
No. There is no database behind this, no export, and no list of checked domains going to sales. Results are held in memory for about fifteen minutes so a repeated check is fast, and then they are gone. There is no email gate, no sign-up, and no full report held back. What you see is the whole result.
How this runs, and what we keep
Every result comes from public DNS, resolved over DNS-over-HTTPS so the answer does not depend on which resolver our host happens to use. The one exception is MTA-STS, where the standard requires the policy to be published as a public file over HTTPS at a fixed address, and we read that file. Nothing connects to a mail server, scans a port, probes a host, or sends test mail. The tool sees what any receiving mail server sees.
We do not keep the domains people check. There is no database, no export, and nothing feeding a prospect list. Results sit in memory for about fifteen minutes so a repeated check returns instantly, and then they are gone. There is no email gate and no fuller report held back. Our privacy policy covers the rest of the site.
DKIM selectors checked: selector1, selector2, google, default, k1, mail, dkim, s1, s2. Definitions for everything on this page are in the glossary: DMARC, SPF, DKIM, DNS, email security, business email compromise, and phishing.
Working through a wider IT decision? The in-house vs outsourced IT cost calculator and the Microsoft 365 licensing calculator are on the same shelf.
We will do the sender identification with you
The hard part of a DMARC rollout is finding every system that sends as your domain before you start blocking. We read the reports, build the list, and move the policy without breaking your billing run.
Call (855) 737-9500 / (480) 573-3349
Email [email protected]
15-minute response on critical issues, 24/7. Onboarding in two to three weeks.