Free tool
Free SPF, DKIM and DMARC checker
Enter your sending domain to check SPF, DKIM, DMARC and MX at once, and see what to fix in plain words.
What this checker looks at
- SPF: the TXT record listing which servers may send mail for your domain, and whether it ends in ~all or -all.
- DKIM: the public key receivers use to verify your messages were signed by your domain. We try the selectors the big providers use, or the one you enter.
- DMARC: the policy at _dmarc.yourdomain.com that tells receivers what to do when SPF and DKIM fail, and whether it is p=none, quarantine or reject.
- MX: whether the domain can receive mail, so replies and bounces have somewhere to go.
Why it matters for cold email
Gmail, Outlook and Yahoo check these records on every message. Since 2024, Google and Yahoo require SPF or DKIM from everyone and DMARC from bulk senders. A missing or broken record is one of the most common reasons cold email lands in spam, and no amount of good copy or warmup makes up for it.
How to fix what it finds
- Open the DNS settings wherever your domain is registered or hosted (for example Cloudflare, GoDaddy or Namecheap).
- SPF: keep exactly one TXT record starting with v=spf1, include every service that sends for you, and end it with ~all.
- DKIM: turn on DKIM signing in your email provider (Google Workspace admin, Microsoft 365 Defender, or your SMTP host) and publish the TXT record it gives you.
- DMARC: add a TXT record at _dmarc with v=DMARC1; p=none; and an rua= address for reports. Move to p=quarantine once reports look clean.
- Wait for DNS to update (usually minutes, sometimes a few hours) and run the check again.
Missing SPF or DMARC? Build a correct record and copy it into your DNS. SPF record generator →
Start DMARC safely at p=none with a report address. DMARC record generator →
Nothing you enter is stored. The checker only runs public DNS lookups, the same ones any mail server runs when it receives your email.
Questions
Why does the checker say no DKIM key was found when DKIM is set up?
DKIM keys live under a selector chosen by your email provider, and DNS cannot list them. We try the common ones (google, selector1, selector2, default, k1, mail and others). If yours is different, find the s= value in the DKIM-Signature header of an email you sent and enter it as the selector.
Should my SPF record end in ~all or -all?
Both are fine. ~all (soft fail) is the most common choice for cold email because a forwarding or setup mistake does not cause outright rejections. -all is stricter. Avoid ?all and never use +all, which lets anyone send as you.
Is DMARC p=none good enough?
p=none meets the Google and Yahoo bulk sender requirement and lets you collect reports without risking legitimate mail. Once the reports show only your own services sending, moving to p=quarantine adds protection against spoofing.
How long do DNS changes take to show up?
Usually a few minutes, but it can take up to 48 hours depending on your DNS host and the record’s TTL. If a fix does not show yet, wait and run the check again.
Do I need these records on a separate domain I use for cold email?
Yes. Every domain you send from needs its own SPF, DKIM and DMARC records. Many teams send cold email from a separate domain to protect their main one, and that domain needs the full setup too.