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.

82of 100SPFValid, 4 of 10 lookupsDKIM2048-bit key found!DMARCp=none, monitoring onlyFixMove DMARC to p=quarantine once every sender passes.The DMARC generator builds the record.

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.

MessageFrom: [email protected]SPFIs the server listed?DKIMIs the signature valid?DMARCDoes either one matchbrand.com?Pass: deliverp=quarantine: spamp=reject: refuse
  1. 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.

  2. 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.

  3. 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.

  4. 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.

RecordPublished atWhat it doesCommon mistake
SPFA TXT record at the domain itself, starting v=spf1Lists the servers allowed to send as the domainTwo SPF records, or more than 10 DNS lookups
DKIMA TXT or CNAME record at selector._domainkeyPublishes the public key that checks each signatureA sending service added without its own DKIM key
DMARCA TXT record at _dmarc, starting v=DMARC1Requires SPF or DKIM to match the From domain, and sets the policyStaying on p=none for years, so spoofing is never blocked
MXMX records at the domainNames the servers that accept mail for the domainOld provider records left behind after a move
MTA-STSA TXT record at _mta-sts, plus a policy file on https://mta-sts.domainRequires encrypted delivery to your mail serversChanging the policy file without changing the id= in the TXT record
TLS reportingA TXT record at _smtp._tls, starting v=TLSRPTv1Asks senders to report failed encrypted deliveriesNo address in rua=, so reports go nowhere
BIMIA TXT record at default._bimi, starting v=BIMI1Points inboxes to your logoPublishing 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.

RecordGoogle WorkspaceMicrosoft 365
MXOne record: smtp.google.com, priority 1The value shown in the Microsoft 365 admin center, ending in mail.protection.outlook.com
SPFinclude:_spf.google.cominclude:spf.protection.outlook.com
DKIMA TXT record at google._domainkey, generated in the Google Admin consoleTwo CNAME records, selector1._domainkey and selector2._domainkey, from the Microsoft Defender portal
DMARCYour own record at _dmarcYour 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

RequirementGmail, all sendersGmail and Outlook.com, more than 5,000 a day
SPFSPF or DKIMRequired
DKIMSPF or DKIM, with a key of at least 1,024 bitsRequired
DMARCRecommendedRequired, p=none is enough
From domain matches SPF or DKIMRecommendedRequired
Reverse DNS (PTR) on sending IPsRequiredRequired for Gmail
One-click unsubscribeRecommendedRequired for marketing mail to Gmail
Spam rate in Gmail Postmaster ToolsBelow 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

ProblemWhy it happensFix
SPF permerrorMore than 10 DNS lookups, or two SPF recordsRemove services you no longer use, merge records into one, or replace an include with the ip4 ranges it lists
DMARC fails while SPF passesSPF passed for the sending service’s own domain, not yoursSet up DKIM for your domain in that service, or a custom return-path on your domain
Forwarded mail fails SPFThe forwarding server is not on your SPF listMake sure every message is DKIM signed. DKIM survives forwarding
DKIM fails on some messagesA gateway or mailing list changed the message after signing, for example by adding a footerSign at the last server before delivery, or rely on SPF alignment for that stream
No DKIM key foundThe selector is not one of the common onesFind s= in the DKIM-Signature header of a sent message and enter it as the selector
Mail goes to spam despite passingReputation, content or spam complaints, not authenticationCheck 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.

Dude Lemon

Contact Dude Lemon

Dude Lemon is a software development company. We build web apps, mobile apps and AI software for businesses.