SPF, DKIM, and DMARC Setup Guide for Cold Email (2026)

If your SPF, DKIM, and DMARC records are wrong, every cold email you send is fighting uphill. Gmail and Outlook now reject or spam-bucket messages that fail authentication, and the tolerance for misconfigurations is effectively zero. This SPF DKIM DMARC setup guide walks through every record you need, how to generate them, and how to validate them before you send a single campaign.
We set up authentication on hundreds of sending domains every year, and the pattern is always the same. Teams that skip the DNS work wonder why their reply rates are dead. Teams that get it right once never think about deliverability basics again.
What SPF, DKIM, and DMARC Actually Do
These three records are the foundation of modern email authentication. They exist because email, at its core, has no built-in way to verify that a message claiming to come from you actually came from you. Authentication records close that gap.
SPF (Sender Policy Framework) is a DNS record that lists the IP addresses and hostnames allowed to send email on behalf of your domain. When a receiving server gets a message, it checks the sender's IP against your SPF record. If the IP isn't listed, the message fails SPF and usually gets rejected or flagged.
DKIM (DomainKeys Identified Mail) is a cryptographic signature added to every outbound email. The receiving server pulls your public DKIM key from DNS, checks the signature against the email body, and verifies nothing was modified in transit. If the signature matches, the email is authentic and unmodified.
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is a policy record that builds on SPF and DKIM. It tells receiving servers what to do when a message fails authentication, whether to accept it, quarantine it, or reject it outright. DMARC also includes a reporting mechanism so you can see who is sending on your behalf.
Why Cold Email Requires All Three in 2026
Gmail and Yahoo rolled out sender requirements in early 2024 that made SPF, DKIM, and DMARC mandatory for anyone sending more than 5,000 messages per day to Gmail users. Outlook has similar requirements. Cold email at any meaningful volume crosses these thresholds fast.
Even below those volumes, inbox providers use authentication as a trust signal. Messages from domains with clean SPF, valid DKIM, and a published DMARC policy get more benefit of the doubt than messages from domains without. We have watched campaigns go from 15% reply rates to under 2% because of a single malformed SPF record.
Cold email has a higher deliverability bar than transactional email or newsletter sends. You are reaching out to people who did not opt in, which means providers scrutinize your sending reputation harder. Authentication is the minimum entry fee to play the game.
How to Set Up SPF for Cold Email
SPF lives as a single TXT record at the root of your sending domain. If you already have an SPF record, you edit the existing one, never create a second. Multiple SPF records on one domain will cause both to fail.
A standard SPF record for cold email sending looks like this:
``` v=spf1 include:_spf.google.com include:amazonses.com ~all ```
The pieces matter. The `v=spf1` declares the version. Each `include:` entry delegates permission to a specific provider's SPF record. The `~all` at the end is a "soft fail," telling servers that anything not listed should be marked suspicious but not rejected outright. Use `~all` for cold email sending domains so legitimate edge cases do not get dropped.
Here is how to add it step by step. First, log into the DNS provider for your sending domain (Cloudflare, Namecheap, GoDaddy, etc.). Second, create a new TXT record with the host set to `@` and the value set to your SPF string. Third, save and wait for DNS propagation, usually 5 to 30 minutes. Fourth, verify at mxtoolbox.com/spf.aspx by entering your domain.
The `include:` entries depend on your sending stack. If you send through Google Workspace, include `_spf.google.com`. If you use Microsoft 365, include `spf.protection.outlook.com`. If you route through SendGrid, Mailgun, SMTP2GO, or Amazon SES, include their published SPF hostname. Most cold email sending tools publish the exact include string in their documentation.
How to Set Up DKIM for Cold Email
DKIM is more complex than SPF because it requires generating a key pair and publishing the public key in DNS. Your sending platform generates the private key and signs outgoing messages with it. The public key lives in a specific DNS record that receiving servers can query.
The record format is a TXT record at a subdomain of your sending domain, usually something like `selector1._domainkey.yourdomain.com`. The selector name is arbitrary and chosen by your sending platform. The value is a long string starting with `v=DKIM1; k=rsa; p=` followed by your public key.
To set DKIM up: log into your sending platform (Google Workspace, Instantly, Smartlead, SendGrid, etc.) and navigate to the DKIM or email authentication settings. Generate or retrieve the DKIM record, which the platform will provide as a hostname and value. Go to your DNS provider and create a new TXT record matching exactly what the platform gave you. Save, wait for propagation, and enable DKIM signing in your sending platform.
Each sending platform has its own DKIM selector and key. If you send through multiple platforms from the same domain, you need a separate DKIM record per platform. This is fine, and the records do not conflict because they live at different subdomain selectors.
After publishing, verify by running a test at mxtoolbox.com/dkim.aspx or by sending a test email to a Gmail address, opening the message, and clicking "Show original" to inspect the authentication results. You want to see `dkim=pass` in the header.
How to Set Up DMARC for Cold Email
DMARC is the policy layer. It tells receiving servers what to do when SPF or DKIM fail, and it gives you visibility into who is sending mail claiming to be from your domain.
A DMARC record is a TXT record at the `_dmarc` subdomain of your sending domain. A starter record looks like this:
``` v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com; pct=100; adkim=r; aspf=r ```
Walk through the pieces. The `v=DMARC1` declares the version. The `p=none` is the policy, meaning "take no action on failures, just report." We always start with `p=none` for new domains, monitor reports for a few weeks, then tighten to `p=quarantine` or `p=reject` once we are confident in the setup. The `rua=` is the reporting address where aggregate reports are sent. The `pct=100` means the policy applies to 100% of messages. The `adkim=r` and `aspf=r` are the alignment modes, where `r` is relaxed and works for most setups.
For cold email, we recommend starting at `p=none` for the first 30 days of a new sending domain. Use a tool like dmarcian or Postmark DMARC Monitoring to aggregate the XML reports, which are otherwise unreadable. After 30 days of clean reports, move to `p=quarantine` to have failing messages sent to spam. Most cold email domains never need to go to `p=reject` because the reputational benefit of quarantine is sufficient.
Verifying Your Setup Before You Send
Before your first campaign hits a single inbox, verify every record. A misconfigured setup on day one kills domain reputation before you have a chance to build it.
The fastest way to verify is to send a test email from your configured sending platform to a Gmail address, a Yahoo address, and an Outlook address. Open each message, view the full headers (in Gmail, click the three-dot menu and "Show original"), and confirm you see `spf=pass`, `dkim=pass`, and `dmarc=pass` in the Authentication-Results header.
If any check fails, the header will tell you exactly why. A common failure is `spf=softfail` because the sending IP is not in your SPF record. Another is `dkim=neutral` because no signature was found, which means signing was not enabled on the platform.
For a deeper check, run your domain through mxtoolbox.com, dmarcian.com/dmarc-inspector, and mail-tester.com. These tools parse your records, flag misconfigurations, and give a deliverability score out of 10. A properly set up cold email domain should score 9 or 10 out of 10 on mail-tester.
What Happens When Authentication Is Missing
We see this scenario weekly: a team launches a cold email campaign, sends 500 emails, and gets 3 replies. They blame the copy, the list, the targeting. The actual problem is a malformed SPF record that soft-fails 80% of messages into spam.
Without SPF, receiving servers cannot verify that your sending IP is authorized. Gmail in particular will aggressively spam-bucket unauthenticated messages, even from established domains. Without DKIM, messages can be tampered with in transit and have no way to prove integrity. Without DMARC, you have no visibility into who is spoofing your domain and no enforcement mechanism.
Cold email compounds these problems because you are contacting people who did not opt in. Every message without clean authentication erodes your domain's sender reputation. Within 2 to 3 weeks of bad sending, your domain can be effectively blacklisted across major providers, and rebuilding reputation takes months.
You can write the best cold email copy in the world, but if your DNS records fail authentication checks, no one will read it. Get the infrastructure right first, then worry about the message.
Cold Email Authentication Checklist
Use this checklist for every sending domain you set up. Skip no step.
1. Register a dedicated sending domain separate from your primary corporate domain. Use a close variation (e.g., getyourcompany.com instead of yourcompany.com) to protect your main domain reputation. 2. Publish an SPF record at the root, including every sending platform you route through. Validate with mxtoolbox. 3. Generate and publish a DKIM key for each sending platform, using distinct selectors. Validate by sending a test to Gmail and confirming `dkim=pass`. 4. Publish a DMARC record at `_dmarc` with `p=none` policy and a valid reporting address. Collect reports for 30 days. 5. After 30 days of clean reports, upgrade DMARC policy to `p=quarantine`. 6. Run mail-tester.com and aim for a 9 or 10 out of 10 score before launching campaigns. 7. Monitor DMARC reports monthly for unexpected senders, which can indicate spoofing attempts.
How LeadHaste Handles Authentication at Scale
When we set up outbound for a client, authentication is the first step, not an afterthought. We spin up dedicated sending domains, configure SPF, DKIM, and DMARC across all sending platforms, and verify every record before warm-up begins. The client owns every domain and every record. If they leave, they take the infrastructure with them.
This is part of the orchestration approach: we do not hand clients a tool and wish them luck. We build the sending stack end-to-end, starting with the DNS layer, because deliverability is a foundation problem. Get it wrong early and every downstream effort compounds negatively.
Compare this to the typical cold email agency model, where teams share sending infrastructure across clients and a single bad campaign tanks deliverability for everyone. Our clients have isolated, owned infrastructure from day one, which means their sender reputation is theirs alone to build.
Read more about how we orchestrate the full outbound system or explore our case studies to see how proper authentication shows up in actual reply rates.
Ready to Send Cold Email That Actually Lands?
Authentication is the entry fee. The real work is everything that comes after: warm-up, list quality, sequencing, personalization, and reply handling. We build and run the whole system for B2B companies, starting with the DNS layer and ending with booked meetings on your calendar.
If you want the infrastructure done right the first time, without spending weeks debugging DNS records, we can help.
Frequently Asked Questions
A modern outbound stack includes: data enrichment (Apollo, Clay, ZoomInfo), email infrastructure (Google Workspace, custom domains), sending tools (Smartlead, Instantly), warm-up services (Warmbox), LinkedIn automation (Expandi, Dripify), CRM integration (HubSpot, Salesforce), and analytics platforms. Most agencies use 15–30 tools orchestrated together.
Building your own stack costs $3K–5K/month in software alone, plus a dedicated person to manage it. With a managed service, you get all the tooling plus the expertise to orchestrate it — often at lower total cost. The key question: can you afford to spend 6–8 weeks setting up instead of generating pipeline?
There's no single 'best' tool — it depends on your volume, budget, and integration needs. Smartlead and Instantly are popular for high-volume sending. Apollo doubles as a data and sequencing platform. The real advantage comes from how tools are orchestrated together, not from any single tool choice.
Look for three things: (1) Do you own the infrastructure they build? (2) Do they guarantee results or just charge a retainer? (3) Can you see transparent metrics and real case studies with specific numbers? Avoid long contracts, vague reporting, and agencies that own your domains.
Data enrichment is the process of taking basic company or contact data and adding layers of detail — job titles, direct emails, phone numbers, technographics, intent signals, company size, funding stage, and more. Enrichment tools like Apollo, Clay, and ZoomInfo pull from multiple data sources to build a complete prospect profile before outreach begins.

Dimitar Petkov
Co-Founder of LeadHaste. Builds outbound systems that compound. 4x founder, Smartlead Certified Partner, Clay Solutions Partner.


