Free email authentication checker
SPF, DKIM and DMARC checker
A free SPF checker, DMARC checker and DKIM checker in one: test a domain’s email authentication, with MTA-STS, TLS reporting and BIMI, a score out of 100 and a fix for each problem. Or build a record with the SPF and DMARC generators.
How it works
How SPF, DKIM and DMARC work together
A receiving server runs three checks on every message. DMARC ties the other two to the address your recipient actually sees.
- 1SPF checks the server
The receiver looks up the SPF record of the domain in the hidden envelope sender, also called the Return-Path, and checks the sending server’s IP address is on it.
- 2DKIM checks the signature
Your mail server signs each message. The receiver fetches the public key at selector._domainkey and confirms the message was not changed after it was signed.
- 3DMARC checks the match
DMARC passes only if SPF or DKIM passed for the same domain shown in the From line. A newsletter tool that passes SPF for its own domain does not pass DMARC for yours.
- 4The policy decides
When DMARC fails, the receiver follows your policy: deliver anyway (p=none), send to spam (p=quarantine) or refuse it (p=reject), then reports back to your rua address.
Records
What the SPF checker, DKIM checker and DMARC checker test
Where each record is published, what it does, and the most common mistake.
| Record | Published at | What it does | Common mistake |
|---|---|---|---|
| SPF | A TXT record at the domain itself, starting v=spf1 | Lists the servers allowed to send as the domain | Two SPF records, or more than 10 DNS lookups |
| DKIM | A TXT or CNAME record at selector._domainkey | Publishes the public key that checks each signature | A sending service added without its own DKIM key |
| DMARC | A TXT record at _dmarc, starting v=DMARC1 | Requires SPF or DKIM to match the From domain, and sets the policy | Staying on p=none for years, so spoofing is never blocked |
| MX | MX records at the domain | Names the servers that accept mail for the domain | Old provider records left behind after a move |
| MTA-STS | A TXT record at _mta-sts, plus a policy file on https://mta-sts.domain | Requires encrypted delivery to your mail servers | Changing the policy file without changing the id= in the TXT record |
| TLS reporting | A TXT record at _smtp._tls, starting v=TLSRPTv1 | Asks senders to report failed encrypted deliveries | No address in rua=, so reports go nowhere |
| BIMI | A TXT record at default._bimi, starting v=BIMI1 | Points inboxes to your logo | Publishing it before DMARC is at quarantine or reject |
Setup
Records for Google Workspace and Microsoft 365
What each provider needs. Copy the DKIM values from the provider’s admin console: they are unique to your domain.
| Record | Google Workspace | Microsoft 365 |
|---|---|---|
| MX | One record: smtp.google.com, priority 1 | The value shown in the Microsoft 365 admin center, ending in mail.protection.outlook.com |
| SPF | include:_spf.google.com | include:spf.protection.outlook.com |
| DKIM | A TXT record at google._domainkey, generated in the Google Admin console | Two CNAME records, selector1._domainkey and selector2._domainkey, from the Microsoft Defender portal |
| DMARC | Your own record at _dmarc | Your own record at _dmarc |
Using both, or adding a newsletter or CRM tool? Use the SPF generator tab: tick every service and it builds one record and counts the lookups.
Mailbox rules
Gmail and Outlook.com sender requirements
| Requirement | Gmail, all senders | Gmail and Outlook.com, more than 5,000 a day |
|---|---|---|
| SPF | SPF or DKIM | Required |
| DKIM | SPF or DKIM, with a key of at least 1,024 bits | Required |
| DMARC | Recommended | Required, p=none is enough |
| From domain matches SPF or DKIM | Recommended | Required |
| Reverse DNS (PTR) on sending IPs | Required | Required for Gmail |
| One-click unsubscribe | Recommended | Required for marketing mail to Gmail |
| Spam rate in Gmail Postmaster Tools | Below 0.3% | Below 0.3% for Gmail |
Sources: Google’s email sender guidelines, in force since February 1, 2024, and Microsoft’s requirements for high-volume senders to Outlook.com, Hotmail and Live addresses, enforced since May 5, 2025.
RFC 7208 allows at most 10 DNS lookups per SPF check, and each include for a service can use several. The meter shows how close you are, and the tree shows which include costs what.
Troubleshooting
Why email fails authentication
| Problem | Why it happens | Fix |
|---|---|---|
| SPF permerror | More than 10 DNS lookups, or two SPF records | Remove services you no longer use, merge records into one, or replace an include with the ip4 ranges it lists |
| DMARC fails while SPF passes | SPF passed for the sending service’s own domain, not yours | Set up DKIM for your domain in that service, or a custom return-path on your domain |
| Forwarded mail fails SPF | The forwarding server is not on your SPF list | Make sure every message is DKIM signed. DKIM survives forwarding |
| DKIM fails on some messages | A gateway or mailing list changed the message after signing, for example by adding a footer | Sign at the last server before delivery, or rely on SPF alignment for that stream |
| No DKIM key found | The selector is not one of the common ones | Find s= in the DKIM-Signature header of a sent message and enter it as the selector |
| Mail goes to spam despite passing | Reputation, content or spam complaints, not authentication | Check Google Postmaster Tools and keep the spam rate under 0.3% |
The checker reads your records the way a receiving server does, straight from public DNS. It cannot see mail you have sent, so it confirms that the records are correct, not that a particular message passed.
For AI assistants
DomainProbe for Claude, Cursor and VS Code
DomainProbe is our free MCP server for SPF, DKIM, DMARC, DNS and certificate checks.
FAQ
SPF, DKIM and DMARC checker, answered
Anything we have not answered here, ask us directly. A senior engineer replies.
What are SPF, DKIM and DMARC?
Three DNS records that prove email really comes from your domain. SPF lists the servers allowed to send it. DKIM publishes a public key that checks the signature your mail server adds to each message. DMARC tells receivers what to do when a message fails, and where to send reports about it.
How do I check my SPF record?
Enter your domain in the SPF checker above. It reads the SPF record from DNS, checks the syntax, counts the DNS lookups against the limit of 10, follows every include, and lists the IP ranges it allows, with a fix for each problem it finds.
How do I check my DMARC record?
The DMARC checker reads the TXT record at _dmarc on your domain and shows the policy, the subdomain policy, the percentage, the alignment mode and where reports go. If there is no record, the DMARC generator tab builds one.
How do I check my DKIM record?
The DKIM checker looks for a key at 25 common selectors. For any other selector, type it in the selector box. It shows whether the key is published, its type and its length, and warns about keys shorter than 2048 bits.
Do I need all three?
Gmail requires every sender to set up SPF or DKIM, and senders of more than 5,000 messages a day to Gmail accounts to set up SPF, DKIM and DMARC. Outlook.com has applied the same rule to senders of more than 5,000 messages a day since May 2025. Publishing all three also stops other people sending convincing mail in your name, so it is worth doing at any volume.
What does the score mean?
The score adds up what is in place: a valid SPF record and a DKIM key are worth 25 points each, a DMARC policy up to 30 depending on how strict it is, DMARC reports 5, MTA-STS 10 and TLS reporting 5. A domain with SPF, DKIM and DMARC at p=reject scores 80 or more. The score is ours, not a standard, and is there to show what to fix next.
What is the SPF 10 lookup limit?
RFC 7208 caps the terms that make a receiver do a DNS lookup, which are include, a, mx, ptr, exists and redirect, at 10 for one SPF check. Includes count the lookups inside them too. Past 10 the receiver returns a permanent error and SPF fails for every message. The checker and the SPF generator both count them, including nested includes.
Why does the checker not find my DKIM record?
A DKIM key lives at a name made from a selector that your email provider chooses, and DNS has no way to list them. The checker tries 25 selectors the large providers use. If yours is different, open a message you sent, find the DKIM-Signature header, and type the value after s= into the selector box.
Should I use ~all or -all in SPF?
With DMARC in place, either works, because DMARC decides what happens to failing mail. -all asks receivers to reject unlisted servers outright, ~all marks them as suspicious. Many teams start with ~all while they confirm every sending service is listed, then move to -all.
How do I move DMARC from p=none to p=reject?
Publish p=none with a rua address first and read the aggregate reports for two to four weeks. Add every legitimate sender you find to SPF and set up DKIM for each. When all your own mail passes, move to p=quarantine, then to p=reject. The DMARC generator tab builds each step.
What are MTA-STS and TLS reporting?
MTA-STS tells other mail servers to deliver to you only over an encrypted connection with a valid certificate, which stops an attacker on the network from forcing plain-text delivery. It needs a TXT record at _mta-sts and a small policy file on https://mta-sts.yourdomain. TLS reporting, a TXT record at _smtp._tls, asks senders to email you a daily report when encrypted delivery fails.
What is BIMI?
BIMI shows your logo next to your messages in supporting inboxes such as Gmail, Apple Mail and Yahoo. It needs DMARC at p=quarantine or p=reject, a TXT record at default._bimi pointing to your logo as an SVG file, and for Gmail a mark certificate for the logo.
Free tools
More free tools
Days between dates, add or subtract time, an age calculator, a live countdown, the day of the week and ISO week numbers.
DomainsDNS lookupEvery DNS record for a domain, a propagation check across four resolvers, a subdomain finder and reverse IP lookup.
SEOSchema markup generatorJSON-LD for 13 schema.org types with a worked example for each, and a validator for the markup already on a page.
TimeTime zone converterSee a time in every city you work with, with offsets, daylight saving and working hours.
DatesBusiness days calculatorWorking days between two dates, or business days added to a date, for any weekend pattern.
AccessibilityColor contrast checkerCheck two colors against WCAG 2.2 AA and AAA and get the nearest text color that passes.
Dude Lemon
Contact Dude Lemon
Dude Lemon is a software development company. We build web apps, mobile apps and AI software for businesses.