← Back to blog
email deliverability

How to Read Email Headers to Verify SPF, DKIM & DMARC (Cold Email Guide)

Timothy VaddeTimothy VaddeAugust 18, 2026
email header authentication for cold email

Checking a DNS record tells you it's published correctly. Reading email headers tells you whether authentication actually worked on a real message, sent through your real sending stack, to a real inbox. For cold email specifically, that second check matters more, because it's the only way to confirm SPF, DKIM, and DMARC are working together rather than just existing in isolation.

Why headers, not just DNS checks

DNS checker tools confirm a record exists and is formatted correctly. They don't confirm that a message actually sent from your platform aligns with that record, or that DKIM signing is actually happening on outbound mail. A message can have perfect SPF, DKIM, and DMARC records published and still fail authentication in practice if something in the sending configuration doesn't match. Headers show you the actual result, not the theoretical one.

How to view raw headers

The process varies slightly by email client, but the general path: Gmail: open the message, click the three-dot menu, select "Show original" Outlook: open the message, go to File → Properties, and look at the Internet headers field Apple Mail: View → Message → All Headers You're looking for the Authentication-Results header, which is where receiving servers report the pass/fail status of SPF, DKIM, and DMARC.

Reading the Authentication-Results header

It looks something like this: Authentication-Results: mx.google.com; spf=pass (google.com: domain of sender@yourdomain.com designates 1.2.3.4 as permitted sender) dkim=pass header.i=@yourdomain.com header.s=selector1 dmarc=pass (p=NONE sp=NONE dis=NONE)

Each line tells you something specific: spf=pass/fail — confirms whether the sending server's IP matched your SPF record. A fail here often traces back to an SPF lookup limit issue if the record looked fine on paper. dkim=pass/fail — confirms the cryptographic signature matched. A fail usually means a selector mismatch — worth revisiting your if that's your provider. dmarc=pass/fail — confirms alignment between SPF/DKIM and the visible "From" domain, plus which policy was applied.

What to do when something fails

If SPF fails but DKIM passes (or vice versa), DMARC can still pass overall since it only requires one of the two to align — but it's worth fixing the failing one anyway, since relying on a single check is fragile. If both fail, go back to the DMARC checker and confirm the record is published at the right subdomain and the policy is set to p=none while you troubleshoot, so failures don't get blocked outright during testing.

Cross-checking against your DNS records

Once you know what's failing in headers, confirm the underlying DNS record directly with aDKIM setup for Google Workspace , DKIM checker, or SPF checker to see whether the problem is the published record itself or a mismatch in how your sending platform is configured against it.

Build this into your setup routine

For any new cold email domain, sending a test message and reading the headers should be the last step before launching a campaign — not an afterthought when deliverability drops. It's the fastest way to confirm your is actually functioning end to end, rather than just correctly configured on paper. Reading email headers takes a couple of minutes and catches problems that DNS checks alone will miss — make it a standard step before every new domain goes into rotation.

FAQ

Where do I find the Authentication-Results line in email headers?

It's usually near the top of the raw header block, added by the receiving mail server. In Gmail, view it through "Show original"; in Outlook, through File → Properties → Internet headers.

What does it mean if SPF passes but DKIM fails?

It usually points to a DKIM selector mismatch or a signing issue on the sending platform's end. DMARC can still pass overall since it only requires SPF or DKIM to align, but the underlying DKIM issue is still worth fixing. ###Can I check email headers without sending a real campaign? Yes — send a single test message to an inbox you control before launching a campaign. That's enough to confirm the full authentication chain is working without any real risk.

Why would DMARC fail even if SPF and DKIM both pass?

DMARC also requires alignment — the domain in the SPF or DKIM check has to match the visible "From" domain. A mismatch there, common with forwarded mail or certain third-party senders, can cause DMARC to fail even when the individual checks pass.

Do I need to check email headers on every domain, or just once per setup?

Check it once when a domain is first authenticated, and again any time you change sending platforms, add a new tool to SPF, or troubleshoot a deliverability drop.