SPF, DKIM, and DMARC are three DNS-based email authentication standards that tell receiving mail servers whether an email claiming to come from your domain actually originated from a server you authorized. Without all three in place and passing, Gmail, Yahoo, and Outlook either reject your cold email outright or filter it to spam. Since early 2024, all three are effectively mandatory for any sender sending more than a few hundred emails per day. This checklist covers setup, verification, and the mistakes that break authentication silently after it has been working.
What Each Record Does (Plain Language)
- SPF (Sender Policy Framework): A DNS TXT record that lists the IP addresses and mail servers authorized to send email on behalf of your domain. When a receiving server gets an email from you, it checks your SPF record to verify the sending server is on the approved list.
- DKIM (DomainKeys Identified Mail): A cryptographic signature attached to every outgoing email. The receiving server fetches your public key from DNS and uses it to verify the signature, confirming the message was not modified in transit and came from a server with your private key.
- DMARC (Domain-based Message Authentication, Reporting, and Conformance): A policy published in DNS that tells receiving servers what to do when SPF or DKIM checks fail: nothing (monitor), quarantine (send to spam), or reject (block entirely). DMARC also enables reporting so you can see when someone is attempting to spoof your domain.
All three work together. DMARC requires at least one of SPF or DKIM to pass and to be aligned with your "From" domain. Having SPF and DKIM without DMARC means there is no policy enforcing what happens when they fail.
SPF Setup Checklist
- Log into your DNS provider (Cloudflare, GoDaddy, Namecheap, Google Domains, etc.).
- Add a TXT record at the root of your domain (
@or your domain name). - The record should look like:
v=spf1 include:yourmailprovider.com ~all(replaceyourmailprovider.comwith the SPF include provided by your email sending tool). - If you send from multiple services (e.g., Google Workspace for regular email, plus Instantly or Smartlead for cold outreach), include all of them in one SPF record. You can only have one SPF record per domain.
- Use
~all(softfail) during setup and testing. Move to-all(hard fail) once you are confident all legitimate sending sources are included. - Verify with:
nslookup -type=TXT yourdomain.comor mxtoolbox.com/spf.
Common mistake: Adding a second SPF record instead of editing the existing one. Multiple SPF records on the same domain cause the check to fail. Merge all includes into a single record.
DKIM Setup Checklist
- In your email sending platform (Google Workspace, Outlook/Microsoft 365, Smartlead, Instantly, or similar), find the DKIM setup section. It will generate a public/private key pair.
- Copy the DNS TXT record it provides. It will look something like: host
google._domainkey.yourdomain.com, value a long string starting withv=DKIM1; k=rsa; p=.... - Add that TXT record to your DNS provider exactly as shown. The selector prefix (e.g., "google") must match what your sending platform uses.
- If you have multiple sending platforms, each one gets its own DKIM key with a different selector prefix. Multiple DKIM records are fine.
- Verify with: mxtoolbox.com/dkim or by sending a test email to mail-tester.com.
Common mistake: Copying the DKIM public key with line breaks or extra spaces from your provider's UI. DNS values must be unbroken strings. Most DNS providers handle this automatically, but double-check if verification fails.
DMARC Setup Checklist
- Add a TXT record at
_dmarc.yourdomain.com. - Start with a monitoring-only policy:
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com. This tells receiving servers to take no action on failures but to send you aggregate reports. - Monitor the reports for two to four weeks. Tools like Dmarcian, Postmark's DMARC Digests, or EasyDMARC make these readable. You are looking for: which servers are sending email on your behalf, whether SPF and DKIM are passing, and whether anyone is spoofing your domain.
- Once you confirm all legitimate sending sources are passing, move to
p=quarantine:v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc-reports@yourdomain.com. Thepct=25means apply the quarantine policy to only 25% of failing messages initially. - Gradually increase
pctto 100% and eventually move top=rejectfor maximum protection.
Common mistake: Jumping straight to p=reject without monitoring first. If you have a sending source not yet in your SPF record or without DKIM configured, you will block your own legitimate email.
Verification: Confirm Everything Is Working
| Check | Tool | What to look for |
|---|---|---|
| SPF | mxtoolbox.com/spf or mail-tester.com | "SPF passed" for your sending IP |
| DKIM | mail-tester.com or Google Admin Toolbox | "DKIM passed" and signature verified |
| DMARC | mxtoolbox.com/dmarc or dmarcian.com | Valid DMARC record found, policy set |
| Full score | mail-tester.com | Score of 9 or 10 out of 10 |
| Gmail headers | Send to Gmail, view original | dkim=pass, spf=pass, dmarc=pass in Authentication-Results |
After Setup: What Can Break Authentication Silently
- Adding a new sending tool (e.g., a new sequencer or CRM with email sending) without adding its SPF include to your record.
- Switching DNS providers and forgetting to migrate all TXT records, including DKIM keys.
- Your sending platform rotating DKIM keys without notifying you (some do this automatically; verify your DKIM record is still current after platform updates).
- Domain migrations where the new domain provider does not copy TXT records from the old one.
Set a calendar reminder to run a full authentication check every quarter. It takes five minutes and catches silent failures before they cost you an entire campaign's deliverability.
For how authentication fits into the broader warm-up and deliverability picture, see the cold email warm-up guide and outbound sales automation.
Do I need all three: SPF, DKIM, and DMARC?
Yes, for cold email at any meaningful scale in 2026. Gmail and Yahoo require DMARC for bulk senders. DMARC itself requires SPF or DKIM (preferably both) to be passing. Skipping any one of the three leaves a gap that filters and spoofing attacks can exploit.
Can I have multiple SPF records?
No. Only one SPF TXT record is allowed per domain. If you send from multiple platforms, include all of them in a single record using multiple "include:" statements. Having two separate SPF records causes the check to fail.
What DMARC policy should I start with?
Start with p=none (monitor only) and collect reports for two to four weeks before moving to p=quarantine. Never jump straight to p=reject without monitoring first, as you risk blocking your own legitimate email if any sending source is not yet fully authenticated.
How long does it take for DNS changes to take effect?
Most DNS changes propagate within 15 to 60 minutes for providers like Cloudflare. Other providers can take up to 24 to 48 hours for full global propagation. Use a tool like dnschecker.org to see which nameservers have picked up the new record.
Should I use a separate domain for cold email, and does it still need SPF/DKIM/DMARC?
Yes and yes. Using a separate cold outreach domain protects your main brand domain from reputation damage. That separate domain still needs full SPF, DKIM, and DMARC setup, including a DMARC record on the cold domain and on your main domain to prevent spoofing of either.
PhewDo's outreach platform is designed to work alongside your authenticated sending infrastructure, handling multi-channel sequencing, safe send pacing, and a unified AI inbox for all replies. If you want to see how it fits into a properly configured cold email setup, start free at PhewDo.