SPF, DKIM & DMARC Setup Before You Start Warmup | Tacticalism
Email Authentication · Deliverability Setup

SPF, DKIM & DMARC Setup Before You Start Warmup

9 min read Tamilselvan · Tacticalism 50+ companies · 10 years

A decade ago, I was working at GBS AG and got handed a task that had nothing to do with my actual job: set up SPF and DKIM for a secondary domain. Our tech team was slammed. They didn't have the bandwidth. So they did what busy tech teams do when someone insists — they gave me access and said, essentially, good luck.

I had a technical guide open in one tab and pure stubbornness in the other. No background in DNS. No real understanding of what a TXT record was supposed to do. It took about three hours — the kind of frustrating where you're not sure if the thing you just did worked, and you won't know until you run a check, and the check comes back wrong.

But here's the part that actually matters: that was the day I started paying real attention to outbound. Not because SPF records are inherently fascinating — they are not — but because I'd just learned, the hard way, that the stuff nobody wants to touch is exactly the stuff that determines whether anything else works. You can write the best cold email in the world. If the record behind it is misconfigured, it never leaves the outbox in any way that matters.

9/10

clients we onboard have never configured SPF, DKIM, or DMARC.

Not "configured them wrong." Never touched them. The domain has been sending business email for years, nobody thought about authentication because nothing catastrophic happened — and it stayed that way until we showed up and asked to see the DNS.

The pattern I see with almost every new client

Some of them don't even know how to look. I've had calls where I'm asking a founder to check their MX records and there's a long pause, followed by "how do I find that." Not because they're not sharp — some of the founders I work with are the sharpest people in the room on their product. It's because DNS configuration was never anyone's job. It fell into the crack between "the developer set it up years ago" and "marketing runs outbound now," and nobody owns it.

The honest part: DMARC's absence rarely broke a campaign

Honesty that most agencies won't say out loud

In our own campaign history, not having DMARC configured has almost never directly produced a bad outcome. I can't point to a specific campaign and say "this failed because DMARC was missing." SPF and DKIM do the heavier lifting for day-to-day deliverability. DMARC's job is more about what it tells inbox providers to do when SPF or DKIM checks fail — and if those two are solid, DMARC often sits quietly in the background not doing much visible work.

So why do we still set it up on every client, every time? Because DMARC is also the record that protects you from domain spoofing — someone else sending email that looks like it's from your domain. We've never watched it happen to a client. We're also not willing to be the case study that proves it can. It's prevention against something we haven't seen fail, applied because the cost of being wrong is disproportionate to the fifteen-minute cost of setting it up correctly.

Why this has to happen before warmup, not during

The sequencing matters more than most people realise.

Warmup is the process of building your domain's sending reputation from zero. Every email your warmed-up inboxes send during that four-to-six-week window is a data point that inbox providers use to decide whether your domain is trustworthy.

✗ Wrong order
Start warmup → fix auth midway
If authentication isn't properly configured when warmup starts, you're warming up a domain that's already sending mixed signals. Fixing records mid-warmup effectively resets the trust curve — you've changed the domain's underlying signal partway through the exact window where consistency is what's being evaluated.
VS
✓ Right order
Configure auth first → then warmup
Get it right in week zero. The trust-building process starts from the cleanest possible position. Inbox providers see consistent, fully authenticated signals from day one of warmup — which is exactly what that window is for.

The setup, step by step

This is the part I wish someone had handed me in a five-minute conversation instead of a three-hour solo struggle with a technical guide.

SPF Sender Policy Framework — tells inbox providers which mail servers are allowed to send email on behalf of your domain
  • 1 Log into your DNS provider — GoDaddy, Namecheap, Cloudflare, wherever your domain is hosted
  • 2 Add a TXT record for your sending domain
  • 3 Include the sending platform you're using — Instantly, Smartlead, and others will give you the exact include: value
  • 4 You should have exactly one SPF record per domain — multiple SPF records will break authentication, not strengthen it
Multiple SPF records on the same domain invalidate each other. If you already have one, modify it — don't add a second.
Verify using MXToolbox before moving on — free, takes two minutes
DKIM DomainKeys Identified Mail — adds a cryptographic signature to every outgoing email so inbox providers can confirm it wasn't altered in transit
  • 1 Your sending platform generates the DKIM record for you — you don't write this one manually
  • 2 Copy the exact value they give you into your DNS as a TXT record
  • 3 Double-check for trailing spaces or truncated values — this is the single most common point of failure, and it looks identical to "working" until you actually verify it
Trailing spaces and truncated values are invisible in most DNS UIs. Always verify after saving, not before.
Verify using MXToolbox before moving on
DMARC Domain-based Message Authentication — tells inbox providers what to do when SPF or DKIM checks fail
  • 1 Start with p=none — this monitors failures without blocking or quarantining anything, the safe starting point
  • 2 Add a rua tag with an email address so you actually receive the reports — skipping this means DMARC is running blind
  • 3 Example record: v=DMARC1; p=none; rua=mailto:you@yourdomain.com
  • 4 As your domain matures, you can graduate to p=quarantine and eventually p=reject — most clients running dedicated cold outreach domains never need to go past p=none
Having DMARC present at all closes the domain spoofing gap — even at p=none
MX Mail Exchange records — not authentication in the same sense, but worth checking at the same time
  • 1 MX records determine where incoming mail for your domain actually goes
  • 2 If you're setting up a dedicated sending domain for cold outreach, make sure MX is configured so replies actually land somewhere you'll see them
  • 3 A beautifully authenticated domain that swallows every reply defeats the entire point of cold outreach
MXToolbox checks all four — SPF, DKIM, DMARC, and MX — for free in about two minutes
What this actually costs you if you skip it

Nobody skips this out of laziness. They skip it because it feels like a technical detour on the way to the part they actually care about.

But the founders who skip it are the ones who, six weeks later, are asking why open rates are stuck at 8% despite a genuinely good list and genuinely good copy. The infrastructure was never given a chance to earn trust with inbox providers, because it was never speaking clearly to begin with.

The fifteen minutes it takes to do this properly is the cheapest insurance in your entire outbound stack. Everything downstream — your list quality, your personalisation, your sequencing — only gets to matter if the email actually lands somewhere a human will read it.

Key takeaways

  • 9 out of 10 clients we onboard have never configured SPF, DKIM, or DMARC — this is closer to normal than exceptional
  • DMARC's absence has rarely caused a direct campaign failure in our experience — but we configure it anyway as protection against domain spoofing
  • Get authentication right before warmup starts, not during — fixing it midway resets the trust curve you're trying to build
  • SPF: one record only, include value from your sending platform, verified through MXToolbox
  • DKIM: copy the platform-generated value exactly — watch for trailing spaces, the most common failure point
  • DMARC: start at p=none with an rua reporting address; graduate later only if needed
  • Check MX records too — a well-authenticated domain that can't receive replies still fails the actual goal
  • MXToolbox verifies all of this for free in about two minutes — use it before sending anything
T
Tamilselvan

Tamilselvan runs Tacticalism, a B2B outbound agency for early-stage SaaS and IT Services companies. He set up his first SPF and DKIM records by hand at GBS AG a decade ago — a three-hour struggle that ended up being the reason he got interested in outbound in the first place.

Work with Tacticalism

Get the infrastructure right from day one.

We handle full cold email infrastructure setup — SPF, DKIM, DMARC, custom tracking domains, and manual warmup — so your campaigns start on the cleanest possible foundation.

50+ B2B companies India · US · UK No long-term contracts
Frequently Asked Questions

SPF, DKIM & DMARC — your questions answered

Three DNS records that inbox providers use to authenticate your emails:
  • SPF (Sender Policy Framework) — a TXT record listing which mail servers are authorised to send email from your domain. Inbox providers check this to verify the email actually came from a legitimate source.
  • DKIM (DomainKeys Identified Mail) — a cryptographic signature added to every outgoing email. Inbox providers verify the signature to confirm the email wasn't altered in transit between sender and recipient.
  • DMARC (Domain-based Message Authentication) — a policy record that tells inbox providers what to do when SPF or DKIM checks fail, and provides reporting on authentication failures. Also protects against domain spoofing.

All three work together to signal to inbox providers that your domain is legitimate — which directly affects deliverability, inbox placement, and your domain's long-term reputation.
Yes — configure DMARC before warmup starts, but start at p=none. Here's the honest breakdown: in our direct experience running campaigns across 50+ companies, the absence of DMARC has rarely caused a campaign to fail outright. SPF and DKIM do the heavier deliverability lifting. But DMARC serves two purposes that make it worth the fifteen minutes to configure: it provides authentication failure reporting (so you actually know if something is going wrong), and it closes the domain spoofing gap. If someone sends fraudulent email that looks like it's from your sending domain during warmup, and you have no DMARC, that damage compounds against the reputation you're trying to build. Configure it before warmup — but p=none is the right starting policy, not p=reject.
In this order:
  • SPF first — log into your DNS provider, add a TXT record using the include: value your sending platform provides. One record only per domain.
  • DKIM second — your sending platform generates this for you. Copy the exact value into DNS. Check carefully for trailing spaces or truncation — this is the most common point of failure.
  • DMARC third — add a TXT record at _dmarc.yourdomain.com. Start with v=DMARC1; p=none; rua=mailto:you@yourdomain.com. The rua tag is essential — skip it and DMARC runs blind.
  • MX check — verify MX records are configured so replies to your sending domain actually arrive somewhere. A domain that can send but not receive breaks the entire outbound loop.

Then verify all three at mxtoolbox.com before sending a single email. Free, takes two minutes.
No — and this is one of the most common mistakes we see. You can only have one SPF TXT record per domain. Multiple SPF records on the same domain invalidate each other — they don't combine, they conflict. If you need to authorise multiple sending platforms (for example, G Suite and Instantly), they all go in the same SPF record: v=spf1 include:platform1.com include:platform2.com ~all. If you already have an SPF record on your domain, edit it to add the new include: value. Never add a second SPF record.
Two problems compound on each other. First, emails sent during warmup without proper authentication are sending mixed signals to inbox providers — they can't fully verify your domain's legitimacy, so the trust you're supposed to be building during warmup starts from a worse position. Second, if you then fix the records mid-warmup, you've changed the domain's underlying authentication signal partway through the exact window where inbox providers are evaluating consistency. That effectively resets the trust curve you're trying to build. The fix isn't just reconfiguring the records — it's potentially restarting warmup from scratch. Configure SPF and DKIM before the first warmup email goes out, not after.
MXToolbox at mxtoolbox.com checks all three for free. Specific tools:
  • SPF — mxtoolbox.com/spf.aspx — enter your domain and it tells you whether the record is valid and what it authorises
  • DKIM — mxtoolbox.com/dkim.aspx — you'll need your DKIM selector (provided by your sending platform)
  • DMARC — mxtoolbox.com/dmarc.aspx — confirms the record exists and shows its current policy

Run all three checks after you configure each record. Don't wait until everything is set up to verify — check each one as you go so you can catch issues immediately rather than diagnosing a failed check across three possible sources.
Start at p=none for a dedicated cold outreach domain. The three DMARC policy levels are:
  • p=none — monitors authentication failures and sends reports without blocking any email. Safe starting point; doesn't risk legitimate emails being incorrectly rejected.
  • p=quarantine — emails that fail authentication are sent to spam rather than rejected. Appropriate once you have visibility into your authentication failure reports and are confident in your setup.
  • p=reject — emails that fail authentication are rejected outright. Appropriate for mature, fully controlled sending environments.

For most dedicated cold outreach domains, p=none with a valid rua reporting address is sufficient indefinitely. The goal is to have DMARC present and reporting — not to block email aggressively on a domain where a misconfiguration could silently kill deliverability.