Learn · Email authentication

SPF, DKIM & DMARC Explained

If someone can send email that looks like it's from you, they can empty your customers' wallets using your name. SPF, DKIM, and DMARC are the three standards that stop that. Together they tell receiving mail servers two things: this message really came from your domain, and what to do with it if it didn't.

What is SPF?

SPF (Sender Policy Framework) is a DNS record that lists every server allowed to send mail for your domain. Receivers check it against the envelope sender — the return path — and mark the result pass, fail, or softfail.

v=spf1 include:_spf.google.com ~all

That record says: "Google is allowed to send for this domain; everyone else is suspicious." SPF has a blind spot, though: it only checks the envelope address, and forwarding breaks it. That's why it's the weakest of the three on its own. See SPF explained for the full picture.

What is DKIM?

DKIM (DomainKeys Identified Mail) is a digital signature. Your mail server signs every outgoing message with a private key and publishes the matching public key in DNS. The receiver verifies the signature against the From address — if it checks out, the email genuinely came from your domain, even after it was forwarded.

selector._domainkey.example.com v=DKIM1; k=rsa; p=MIGfMA0G...

DKIM proves the message wasn't tampered with in transit and that your domain sent it — but only when the key matches the domain in the From header. See DKIM explained for how selectors and keys work.

What is DMARC?

DMARC ties SPF and DKIM together. Its DNS record says which check must pass, and what receivers should do when both fail:

DMARC also requires alignment: the domain in the From header has to match the domain that passed SPF or DKIM. That's the piece that actually stops someone from using your domain in a scam. And every message generates a report to the address in your record, so you can see everyone sending as you — we explain how to read those in DMARC reports explained.

One thing to know before you start: publishing p=none doesn't block anything yet — it switches on reporting. The protection arrives when you tighten to quarantine and then reject, a process we walk through in DMARC policies explained.

How SPF, DKIM and DMARC work together

Think of it as a chain: SPF checks the return address, DKIM checks the signature, and DMARC decides what happens when either one fails — then emails you a report about it. Publish all three and enforce p=reject, and your domain becomes nearly impossible to spoof.

Your mail server sends as yourdomain.com SPF check return-path allowlist DKIM check signature + public key DMARC policy p=none · quarantine · reject alignment required Inbox pass Spam / block fail

Why DMARC is important now

Common misconception: publishing p=none doesn't protect you yet — mail that fails still gets delivered. It's the essential first step, because it turns on reporting so you can fix every sender safely, but the protection comes when you reach quarantine or reject.

Getting started

The safe sequence: publish DMARC at p=none with a rua address, watch the reports until every legitimate sender (your mail platform, your ESPs, your billing system) passes aligned, then tighten to quarantine and finally reject. The reports arrive as XML files designed for machines, not people — and therein lies the value of a monitoring service: it turns them into a dashboard, identifies senders by name, and flags what would break before you enforce a tighter policy.

Free checks: DMARC checker SPF checker DKIM checker Spam checker

See every sender using your domain

Point one DNS record at Canny Pigeons and get a clear dashboard of your DMARC reports — free for one domain, hosted DMARC included.

Start free