Check SPF, DKIM and DMARC for your domain
Find out whether someone else can send email in your domain’s name. We read your public DNS records, explain each one in plain words and tell you what to fix first.
What an SPF, DKIM and DMARC check tells you
Three DNS records decide how mail services treat a message that claims to come from your domain. SPF lists the servers allowed to send for it. DKIM adds a signature to each message, with the public key published in DNS. DMARC tells the receiving service what to do when a message fails both checks, and where to send reports.
If these records are missing or too loose, anyone can put your domain in the From line of a phishing email, and your own invoices are more likely to land in spam.
The check is part of the free external website security check. It reads public DNS records and the MTA-STS policy file only. It does not connect to your mail servers and sends no email.
What we check, record by record
Each row in the mail section of the report shows the value we saw, a short verdict and, where something is wrong, what to change.
| Record | What good looks like | What we flag |
|---|---|---|
| SPF (TXT on the domain) | One record: v=spf1 … -all or ~all |
No record; two or more; +all or ?all; no closing all; over 10 DNS lookups |
DMARC (_dmarc TXT) |
One record with p=quarantine or p=reject and a rua report address |
No record; several records; p=none; no rua; sp=none; policy for only part of the mail |
DKIM (<selector>._domainkey) |
A public key on the selector your mail service uses | No key on the common names we try; a revoked key (empty p=) |
| MX | MX records, if the domain receives mail | SPF allows sending, but there is no MX for replies |
| MTA-STS | _mta-sts TXT and a policy file in enforce mode |
No record; policy file does not load; testing or none mode |
TLS-RPT (_smtp._tls TXT) |
A v=TLSRPTv1 record |
No record on a domain that receives mail |
We also flag an SPF redirect= to a name without SPF, DMARC reports sent to another domain that has not agreed to receive them, relaxed DMARC alignment, and domain addresses shown in clear text on the site.
DKIM and selectors: why “not found” is not a verdict
A DKIM key lives under a name chosen by your mail service, called a selector, for example selector1._domainkey.example.com. A receiving server learns it from the s= tag of each signed message (RFC 6376). From outside, there is no list of selectors to read.
So we try common names such as selector1 and selector2 (Microsoft 365), google, default, k1, s1, dkim and mail. If your homepage has a newsletter form from Brevo, Mailchimp, Klaviyo or Mailjet, we also try that service’s usual names. We ask DNS for a random name as well: some zones answer every name the same way, and then a match means nothing.
If we find no key, the report says the selector may have another name. To be sure, open the headers of an email you sent and look at s= in the DKIM-Signature line.
Newsletters and bulk sender rules
Google asks anyone who sends close to 5,000 or more messages a day to personal Gmail accounts for SPF, DKIM and DMARC, with the From domain aligned to SPF or DKIM; p=none is enough for this rule. Yahoo asks bulk senders for SPF, DKIM and DMARC with at least p=none. Since 5 May 2025 Microsoft requires SPF, DKIM and DMARC from domains that send more than 5,000 messages a day to Outlook.com (Outlook.com sender policies).
When the check sees a newsletter service on your homepage, the report adds a line for it: whether that service signs mail with your domain and whether DMARC is in place. It is a hint, not an audit of your sending volume.
What to fix first
- Keep exactly one SPF record, end it with
~allor-all, and remove services you no longer use. - Publish DMARC with
p=noneand aruaaddress, read the reports for two to four weeks, then move top=quarantineand later top=reject. - Turn on DKIM signing in every service that sends mail for you and publish its key.
- If the domain receives mail, add MTA-STS in
testingmode with TLS-RPT, then switch toenforce. - If the domain sends no mail at all, publish
v=spf1 -all: no server may send for it.
Every finding in the report says what we saw, why it matters and what to do, in words for the person who manages your DNS.
What this check does not do
- It does not connect to your mail servers, test STARTTLS or send test messages.
- It does not see real messages, so it cannot prove that DKIM passes or that From aligns in practice. Your DMARC reports show that.
- It looks for DKIM keys on common selector names only. There is no field for your own selector yet.
- The SPF lookup count is an estimate: we follow
includerecords one level deep. - It does not check blocklists, sender reputation, BIMI or your DMARC reports.
- A weak record means weaker protection, not proof that your mail was forged.
Questions
Is p=none enough?
It meets the Gmail, Yahoo and Outlook.com bulk sender rules, but it does not stop forged mail: with p=none the domain owner expresses no preference, and receivers handle failing mail as usual. Use it to collect reports, then move to quarantine or reject.
Can you check DKIM without a selector?
Only by trying likely names, which is what we do. A key with an unusual selector stays invisible from outside. If the s= value in your own message is not on our list, your setup may be fine even though the report found no key.
Why does a row say it was not checked?
DNS did not give a clear answer: a lookup timed out, or the zone answers every DKIM name the same way. Then the row says so, instead of calling the record missing.
Do I need MTA-STS if the domain only sends mail?
No. MTA-STS and TLS-RPT protect mail coming in to your domain. Without MX records, the report marks both as not applicable.
Sources
- RFC 7208: Sender Policy Framework (SPF) datatracker.ietf.org
- RFC 9989: DMARC (replaces RFC 7489) datatracker.ietf.org
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures rfc-editor.org
- RFC 8461: SMTP MTA Strict Transport Security (MTA-STS) rfc-editor.org
- Google: Email sender guidelines support.google.com
- Yahoo: Sender best practices senders.yahooinc.com
Check your domain’s mail records
Enter your site address. The mail section of the report lists every record with what we saw and what to change. Free, no sign-up, read-only.
Only check sites you own or are allowed to test. How our scanner works