Free tool · 04 / SEND
SPF, DKIM and DMARC checker.Check a sending domain in seconds, no signup.
Checks a domain's SPF, DKIM and DMARC records against Gmail and Yahoo's sender rules.
We look this up and don't keep it.
Try or
Use your own DKIM selector
We try google, selector1, selector2 and other common ones. Yours is the s= value in the DKIM-Signature header of an email you've sent.
Type the domain you send email from. We look up its SPF, DKIM, DMARC and MX records and check them against Gmail and Yahoo's sender rules.
Valley sends from your own Gmail or Microsoft inbox, so the records you just checked are the ones that count. See how Valley does it ↗
Missing a record? Build it here.
SPF record generator
Each sending tool documents its own include value. Separate several with commas.
Your SPF record
- Type
- TXT
- Host
- @
- Value
v=spf1 include:_spf.google.com ~all
1 include at the top level, 1 lookup of 10. Each include can add its own lookups, so check the record above once it's published.
DMARC record generator
Your DMARC record
- Type
- TXT
- Host
- _dmarc
- Value
v=DMARC1; p=none
Add an address for reports, so you can see who sends as your domain before you tighten the policy.
DKIM keys are made by whoever sends your email: Google Workspace and Microsoft 365 each give you the record to publish. That's why there's no DKIM generator here.
NEXT STEP
Fed up with perfect records and no replies.Valley finds buyers showing real buying signals and messages them.
Start a 7-day trial ↗From $149 a seat a month, billed quarterly. 7-day trial, payment method required.
What it checks
14 checks.Each one labelled with where it comes from.
01Gmail and Yahoo
An SPF record
Gmail and Yahoo ask every sender to set up SPF or DKIM, and bulk senders to set up both.
02RFC 7208
Only one SPF record
A domain must not publish more than one SPF record. With two, SPF returns a permanent error.
03RFC 7208
SPF within 10 DNS lookups
include, a, mx, ptr, exists and redirect each cost a lookup, and so does everything inside an include. Past 10, SPF returns a permanent error.
04Microsoft
Every SPF include works
An include that doesn't resolve, or points to a domain with no SPF record, makes SPF fail.
05RFC 7208, Google, Microsoft
An SPF record that ends in ~all or -all
+all lets any server pass as you. ~all and -all tell receivers what to do with servers you didn't list: Google recommends ~all, Microsoft -all.
06RFC 7208
No ptr in SPF
The SPF standard says the ptr mechanism should not be published.
07Gmail and Yahoo
A DMARC record
Gmail asks for DMARC from 5,000 messages a day to Gmail accounts, and Yahoo asks its bulk senders. A policy of none is enough.
08RFC 9989
Only one DMARC record
If a domain publishes more than one DMARC record, receivers discard them all.
09RFC 9989
A valid DMARC policy
p= is required, and has to be none, quarantine or reject.
10RFC 9989
DMARC reports go somewhere
rua= is optional, but without it nobody sends you the reports that show who sends as your domain.
11RFC 9989
No retired DMARC tags
The current DMARC standard removed the pct tag.
12Gmail and Yahoo
A DKIM key
Bulk senders need DKIM at Gmail and Yahoo. We try the common selectors; give us yours if it's different.
13RFC 6376
No revoked DKIM key
A DKIM key record with an empty p= means the key has been revoked.
14Google
A 2048-bit DKIM key
Google says to pick 2048-bit keys if your DNS host supports them, because longer keys are more secure.
Examples
SPF, DKIM and DMARC record examples.What each one looks like, and where it goes.
Publish each as a TXT record at your DNS host. Each example says who documents it.
01
SPF for Google Workspace
- Host
- @ (the domain itself)
- Source
- Google's own example for domains that send only through Google Workspace. Google recommends ~all.
TXT record v=spf1 include:_spf.google.com ~all
02
SPF for Microsoft 365
- Host
- @
- Source
- Microsoft's example for domains that send only through Microsoft 365. Microsoft recommends -all, alongside DKIM and DMARC.
TXT record v=spf1 include:spf.protection.outlook.com -all
03
SPF with another sending service
- Host
- @
- Note
- One record, every sender in it. Use the include value your service documents; this one is a placeholder.
TXT record v=spf1 include:_spf.google.com include:_spf.example-sender.com ~all
04
SPF for a domain that never sends email
- Host
- @
- Source
- Microsoft's record for parked domains: no server may send as this domain.
TXT record v=spf1 -all
05
DMARC to start with
- Host
- _dmarc
- Note
- p=none asks receivers to take no action, and Gmail and Yahoo accept it. Reports show you who sends as your domain.
TXT record v=DMARC1; p=none; rua=mailto:dmarc@acme.com
06
DMARC that rejects spoofed mail
- Host
- _dmarc
- Note
- Once the reports show all your real mail passing, reject asks receivers to refuse mail that fails.
TXT record v=DMARC1; p=reject; rua=mailto:dmarc@acme.com
07
DKIM key from Google Workspace
- Host
- google._domainkey (google is Google's default selector)
- Note
- Google generates the key in the Admin console; you publish it. The key below is shortened.
TXT record v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…
How it works
How this tool works.And what it can't see.
It looks up the domain's SPF, DMARC and MX records, tries the common DKIM selectors (or yours), and follows every SPF include to count DNS lookups. The lookups run on our server through Cloudflare's public DNS resolver; we don't keep the domain or the results.
Each check names its source: the SPF, DKIM and DMARC standards (RFC 7208, RFC 6376 and RFC 9989, which replaced RFC 7489), Gmail's and Yahoo's sender requirements, and Google's and Microsoft's setup guides.
It can only see DKIM keys at selectors it knows. If yours isn't found, look for s= in the DKIM-Signature header of an email you've sent and check again with it.
Records that pass don't guarantee the inbox: complaints, content and how many people you write to matter too. The email spam checker covers the content.
Built by Valley.
Sources
- RFC 7208: Sender Policy Framework (SPF) ↗read 15 Oct 2026
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures ↗read 15 Oct 2026
- RFC 9989: Domain-based Message Authentication, Reporting, and Conformance (DMARC) ↗read 15 Oct 2026
- Google's email sender guidelines (Gmail Help) ↗read 14 Oct 2026
- Yahoo's sender requirements and recommendations ↗read 14 Oct 2026
- Google Workspace Help: Set up SPF ↗read 15 Oct 2026
- Google Workspace Help: Set up DKIM ↗read 15 Oct 2026
- Microsoft Learn: Set up SPF for your Microsoft 365 domain ↗read 15 Oct 2026
- Microsoft Learn: How to use DKIM for email in your custom domain ↗read 15 Oct 2026
Questions
Questions people ask.
- What is an SPF record?
- An SPF record is a DNS TXT record, starting v=spf1, that lists the servers allowed to send email for a domain. Receivers check it to see whether a message came from one of them (RFC 7208).
- What is DKIM?
- DKIM signs each email with a private key, and the domain publishes the matching public key in DNS at {selector}._domainkey.{domain}, so receivers can check the signature (RFC 6376).
- What is DMARC?
- DMARC is a DNS TXT record at _dmarc.{domain} that tells receivers what to do with mail that fails authentication (none, quarantine or reject) and where to send reports (RFC 9989).
- Do I need SPF, DKIM and DMARC to send cold email?
- Gmail and Yahoo ask every sender for SPF or DKIM. Send more than 5,000 messages a day to Gmail accounts and Google asks for all three, with a DMARC policy of at least none; Yahoo asks the same of its bulk senders.
- Which DMARC policy should I start with?
- p=none. Gmail and Yahoo accept it, it asks receivers to take no action, and the reports show who sends as your domain. Move to quarantine or reject once the reports show all your real mail passing; that last part is our view.
- What does 'too many DNS lookups' mean for SPF?
- SPF allows at most 10 DNS lookups. include, a, mx, ptr, exists and redirect each cost one, and so does everything inside an include. Past 10, SPF fails with a permanent error (RFC 7208).
- Can a domain have two SPF records?
- No. A domain must not publish more than one SPF record, and with two, SPF returns a permanent error (RFC 7208). Merge every sender into one record.
- Should my SPF record end in ~all or -all?
- Both are valid. Google recommends ~all for Google Workspace; Microsoft recommends -all for Microsoft 365, alongside DKIM and DMARC.
- How do I find my DKIM selector?
- Open an email you've sent, view its original headers, and find the DKIM-Signature header: the selector is its s= value (RFC 6376). Google Workspace's default selector is google; Microsoft 365 uses selector1 and selector2.
- Do you keep the domains I check?
- No. We look the records up through Cloudflare's public DNS resolver and don't store the domain or what we found.
- My records pass. Why do my emails still land in spam?
- Authentication gets your email considered; complaints and content decide the rest. Check the email itself with the email spam checker, and write to fewer, better-matched people. Valley finds buyers showing real buying signals and messages them across email and LinkedIn.
Keep going