Most senders rewrite the subject line when cold email stops landing. We have sent over 8 million cold emails this year across 50+ B2B campaigns, and the copy is almost never the reason a domain goes dark. It is three DNS records that were never published, or were published wrong. Below, what each one proves, the syntax that passes, the policy ladder, and the failure table that names which record broke.

What Are SPF, DKIM, and DMARC?

SPF, DKIM, and DMARC are three DNS records that prove a cold email is really from the domain it claims to come from. SPF lists which servers may send for your domain. DKIM adds a cryptographic signature proving the message was not altered in transit. DMARC ties both together, tells providers what to do on failure, and reports who is mailing as you.

The cleanest way to picture them is a building with a guest list, a wax seal, and a bouncer. SPF is the guest list at the door, the record of who is allowed to send on your behalf. DKIM is the seal on the envelope that proves nobody opened and rewrote the letter on the way over. DMARC is the bouncer who checks both and decides what happens to anyone who fails. Cloudflare's email security overview uses the same framing, because that is genuinely how the three records hand off to each other.

None of the three has anything to do with the words in your email. They run before the content is ever evaluated. A message can have perfect copy and still get rejected at the server if the records are missing, because the provider has no way to confirm the sender is who they claim to be.

For cold outreach, where the recipient never opted in, that confirmation is the first thing a provider checks and the cheapest thing to fail. This is the layer underneath everything else in email deliverability, and it is the only layer that is fully binary.

SPF (Sender Policy Framework)
A DNS TXT record listing the IP addresses and services allowed to send email for your domain. The receiving server checks the sending IP against that list. If the IP is not authorized, the message fails SPF. Defined in RFC 7208.
DKIM (DomainKeys Identified Mail)
A cryptographic signature added to every outgoing message. The receiving server pulls a public key from your DNS and verifies the signature, proving the message came from your domain and was not altered in transit. Defined in RFC 6376.
DMARC (Domain-based Message Authentication, Reporting and Conformance)
A DNS policy record that ties SPF and DKIM together and adds alignment. It tells inbox providers what to do when a message fails, monitor it, quarantine it, or reject it, and it sends you aggregate reports naming every source sending mail as your domain. Defined in RFC 7489.
Alignment
The DMARC requirement that the domain which passed SPF or DKIM matches the domain a human sees in the From header. A message can pass SPF for a sending platform's domain and still fail DMARC, because the two domains do not match.
Record What it proves Where it lives What failure looks like
SPF The sending server is authorized to send for this domain One TXT record on the root domain Message marked unauthorized, treated as spoofed, often junked
DKIM The message content and key headers were not altered after signing TXT or CNAME record at a selector host, such as s1._domainkey Signature does not verify, DKIM result reads fail, trust drops
DMARC SPF or DKIM passed and the passing domain matches the visible From One TXT record at _dmarc.yourdomain.com At p=none nothing visible, at p=quarantine spam, at p=reject bounced

Why Do Cold Email Senders Need All Three in 2026?

Newsletters and transactional mail can sometimes limp along on a partial setup, because recipients opted in and providers cut them slack. Cold email gets no such grace. You are reaching people who never asked to hear from you, so providers scrutinize your authentication harder and any gap reads as a red flag.

The three providers that matter all enforce it now. Gmail and Yahoo began requiring SPF, DKIM, and a published DMARC policy from bulk senders in February 2024, spelled out in Google's email sender guidelines and Yahoo's sender best practices. Microsoft followed on May 5, 2025 for Outlook.com, Hotmail.com, and Live.com, announced in Microsoft's high volume sender requirements.

Read the failure mode carefully, because it changed. A non compliant bulk message is not quietly filtered into spam where a curious recipient might still dig it out. Microsoft rejects it outright with a 550 5.7.15 error at the SMTP level. There is no folder to recover from, because there is no delivery.

5,000
daily messages to one provider that trigger bulk sender enforcement
0.3%
user reported spam rate Google says never to reach, with 0.1% as the working target
8M+
cold emails we sent this year across 50+ campaigns

The 5,000 threshold is where people talk themselves out of the work. A cold campaign split across 40 mailboxes sending 30 a day is 1,200 messages, well under the line, so the logic says the rules do not apply. That logic is wrong in practice, because the same authentication signals feed the general filtering that applies to every sender at every volume, and because a campaign that works gets scaled. Setting up authentication at 1,200 a day and discovering it is broken at 12,000 is the expensive order.

Two forces drove the change. Providers got serious about spoofing and phishing, and DMARC is the tool that shuts it down at scale. Then AI made generic outreach effectively free to produce, inboxes got noisier, and providers needed a cheap hard signal to sort accountable senders from the flood. Authentication is that signal, because a domain that authenticates cleanly is a domain a provider can hold responsible.

Most domains still have not finished the job. The EasyDMARC 2026 adoption report found DMARC records on 52.1% of the domains it tracked, up from 47.7% the year before, but the share sitting at an enforcing policy rather than monitor only remains a small minority. Publishing the record is the easy half. Reading the reports and moving the policy is where most senders stall.

What Does Each Record Actually Do, In Order?

The three get lumped together, but they solve different problems and run in a specific sequence. Understanding the handoff is what turns a vague "we are in spam" panic into a specific fix, because a failure at one stage explains the failure downstream.

Get outbound insights, weekly
Tactics, benchmarks, and playbooks from 50+ B2B outbound campaigns. No spam, unsubscribe anytime.
You are in. Check your inbox.
  1. SPF checks the sender. When your message lands, the receiving server reads the return path domain, looks up its SPF record, and confirms the sending IP is on the authorized list. If you send through Google Workspace, an SMTP relay, and a cold email platform, all three sending sources have to be in that one record or legitimate mail fails.
  2. DKIM checks the message. Your sending server signs each email with a private key. The receiving server pulls the matching public key from the selector host in your DNS and verifies the signature. If the body or the signed headers changed anywhere along the route, the signature breaks. This is the record that proves authenticity rather than just authorization, which is why RFC 6376 calls it the durable one, it survives forwarding where SPF does not.
  3. DMARC decides the outcome. DMARC asks whether SPF or DKIM passed and whether the passing domain aligns with the visible From address. Then it applies your published policy, monitor, quarantine, or reject, and mails you aggregate reports listing every source sending as your domain. It is both the enforcement layer and your early warning system for spoofing.

One pass is enough for DMARC. If DKIM aligns and passes, a failed SPF check does not sink the message, which matters because SPF breaks on forwarded mail by design. That is also why DKIM is the record to get right first if you only have time for one, and why the DMARC project's own overview treats alignment, not authentication, as the interesting part.

What Do the Records Actually Look Like?

Every guide describes these records and almost none of them show one. Here is the shape of each, with the values a cold sending domain would realistically publish.

Record Type Host / Name Value
SPF TXT @ v=spf1 include:_spf.google.com include:yoursender.com ~all
DKIM TXT or CNAME selector1._domainkey The public key or CNAME target your sending platform generates. Never hand edit it.
DMARC TXT _dmarc v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1;
Custom return path CNAME em or the host your platform names Points the envelope sender at your domain so SPF aligns with the From address

Three details in the SPF line decide whether it works. Exactly one SPF record per domain, because a second one invalidates both. Every sending source listed inside that single record, not spread across several. And the qualifier at the end, where ~all is a soft fail and -all is a hard fail, with soft fail being the sane default until you are certain nothing legitimate sends from outside the list.

The DMARC tags are where most people copy a string off a forum without knowing what they published. This is what each one does.

Tag What it controls What a cold sender sets
p The policy applied to messages that fail DMARC none at launch, tightened later
rua Where aggregate XML reports are mailed daily A mailbox you actually read, or a reporting tool
pct Percentage of failing mail the policy applies to Omit it, or use it to ramp quarantine from 10 to 100
aspf / adkim Alignment mode, relaxed or strict Leave both relaxed, which allows subdomain alignment
sp Policy for subdomains Set it explicitly if you send from subdomains
fo When failure reports are generated 1, so you get a report on any failing check

Publish the records in that order, SPF first, DKIM second, DMARC last. DMARC has nothing to evaluate until the other two are live, so a DMARC record published on day one against an unconfigured domain just generates reports full of failures. If you are standing up sending infrastructure from scratch, our guide on setting up email domains for outbound covers the domain and mailbox sizing that comes before any of this, and the DNS records explainer goes deeper on record syntax.

What DMARC Policy Should a Cold Email Sender Use?

A DMARC policy is a ladder, not a setting. You start at the bottom where nothing can break, read the reports until they are boring, then climb. Most senders either never publish one or jump straight to the top and block their own mail.

Policy What happens to failing mail When to move up Risk if you move too early
p=none Nothing. Delivery is untouched and you collect reports. After 2 to 4 weeks of reports showing every legitimate source passing and aligning None. This is the safe floor and it satisfies the bulk sender rules.
p=quarantine Failing mail is routed to spam. After 2 to 4 more weeks with no legitimate source failing A forgotten sending tool starts landing in spam and nobody notices for a week.
p=reject Failing mail is refused at the server and bounces. This is the destination. Stay here. Legitimate mail from an unlisted source is destroyed, not delayed.

For a pure cold sending domain that does nothing but run one campaign through one platform, the climb is fast. There is only one sending source to verify, so the reports go clean quickly and you can be at reject inside a month.

For your primary company domain, go slowly. That domain sends through your CRM, your billing tool, your help desk, your calendar, and three tools nobody remembers buying, and each one is a source that has to authenticate before you tighten the policy. This is one more argument for keeping cold outreach off the primary entirely, which we cover in what a secondary domain is and multi domain sending strategy.

The reason to finish the climb is that p=none protects nothing. It satisfies the checkbox and gives you visibility, and that is all. Only quarantine and reject actually stop somebody spoofing your domain, and a spoofed domain is a reputation problem you did not cause and cannot fix from the copy side.

Clean authentication is the floor, not the win. What gets built on top of it is why Nick booked $72.5K in 60 days. Read the full case study →

Why Do SPF and DKIM Pass While DMARC Still Fails?

This is the single most confusing failure in email authentication and the most common one on cold platforms. Both underlying checks report pass, the DMARC line still reads fail, and nothing in the setup looks wrong.

The answer is alignment. DMARC does not ask whether SPF passed, it asks whether SPF passed for the domain in the From header. When you send through a platform that stamps its own return path, SPF gets evaluated against the platform's domain. That check passes cleanly, for the wrong domain, so DMARC fails.

Two fixes, and you want both. Set a custom return path on your own domain, usually a CNAME the platform gives you, so the envelope sender and the From address share a domain. Then confirm DKIM is signing with your domain rather than the platform's shared signing domain, which most senders never check because the DKIM result says pass either way.

Here is the table to read when the headers do not match the theory.

What the headers say What it means The fix
spf=pass, dkim=pass, dmarc=fail Alignment. The passing domain does not match the From domain. Custom return path on your domain, DKIM signed with your domain
spf=permerror The record exceeded 10 DNS lookups or has a syntax error. Flatten nested includes into IP ranges, remove dead includes
spf=none No SPF record found on the return path domain. Publish one TXT record on the correct domain
dkim=none Nothing signed the message. Enable DKIM in the sending platform, then publish the key
dkim=fail on forwarded mail only A forwarder altered the body or a signed header. Usually nothing, DMARC passes on SPF or DKIM alone
dmarc=none No DMARC record published at _dmarc. Publish p=none with a reporting address today

Reading these yourself takes 30 seconds. Send a message to a mailbox you control, open the original, and find the Authentication-Results header. It names spf, dkim, and dmarc separately with a result for each, which means you never have to guess which record broke.

What Are the Most Common Authentication Mistakes?

Authentication is simple in theory and easy to get subtly wrong in practice. These are the failures we see most when a client's mail is mysteriously missing the inbox.

The last one deserves its own sentence, because it is the mistake that costs the most money. Authentication is necessary and nowhere near sufficient, and a sender who fixes the records and keeps mailing a stale list will watch domain reputation fall anyway.

How Do You Verify All Three Pass Before the First Send?

Never take a platform's green checkmark as proof. Platforms report on what they configured, not on what your DNS actually resolves to, and the two disagree more often than you would expect.

  1. Send a seed message to a mailbox you control on a different provider, ideally one Gmail address and one Outlook address, since they enforce differently.
  2. Open the raw headers and read Authentication-Results. You want spf=pass, dkim=pass, and dmarc=pass on the same line. Two out of three is a fail.
  3. Confirm the DKIM signing domain is yours by checking the d= value in the DKIM-Signature header. If it names your platform instead of your domain, alignment will break under DMARC.
  4. Wait for the first DMARC aggregate report and confirm it lists only sources you recognize. Anything unfamiliar is either a forgotten tool or somebody spoofing you.
  5. Run an inbox placement test to see where the mail lands, not just whether it authenticated. Authentication and placement are separate questions.
  6. Re-verify after any DNS change. Adding a vendor include, rotating a DKIM key, or migrating a domain all silently break a setup that was correct yesterday.

Bake step 6 into your operating rhythm, not just your launch checklist. We treat authentication checks as part of ongoing deliverability monitoring alongside blacklist monitoring, because a record that quietly stops resolving looks exactly like a campaign that stopped working.

What Authentication Cannot Fix

If you are about to run cold email and you do nothing else on the technical side, publish SPF, DKIM, and DMARC first. It is the one part of deliverability fully in your control, it takes an afternoon, and the outcome is binary. Either the records pass and you have a chance, or they do not and you have none. There is no clever subject line that routes around a failed authentication check.

What the records will not do is make anyone want to hear from you. They prove identity, not relevance. Once you are authenticated, every remaining deliverability problem is a behavior problem: mailing people who never should have been on the list, sending too much too fast, or sending a message so generic that recipients mark it as spam. Those show up in bounce rates, in reply rate benchmarks, and in positive reply rate, and none of them move because you fixed a DNS record.

The deeper fix is upstream of the infrastructure entirely. A sharp ICP definition and real list verification do more for placement than any record, because complaint rate is the number providers actually weight, and complaint rate is a function of who you mailed. That is also why we invite rather than sell: an invite onto someone's own recorded conversation earns replies instead of complaints, which is the same lever from the other end. The mechanics of that sit in podcast invite deliverability and domains and warmup for invites.

Where this goes is more enforcement, not less. Providers will keep tightening requirements and leaning on authentication to police a world where anyone can generate a million messages for nothing, and the gap between a monitored policy and an enforced one will stop being optional. The senders who come through that are not the ones with the slickest tools. They are the ones who treated the boring DNS records as day zero infrastructure, proved who they were on every send, and then earned the inbox with a message worth receiving.

See How the Invite Engine Works

15 minute demo. No fluff. We will walk you through the exact system, show real prospect examples, and scope what it looks like for your market.

Book A Call →