
SPF DKIM DMARC are no longer optional in 2026. Google and Yahoo made them mandatory for bulk senders in February 2024. Microsoft followed in May 2025. As of June 2026, 69.2% of domains worldwide still have no effective DMARC protection (DmarcDkim.com, June 2026) and those domains are getting filtered, throttled, or rejected by the three largest email providers on the planet.
If you have ever wondered why your emails land in spam despite having good content and a clean list, missing or misconfigured authentication records are the most likely cause. Authentication issues account for roughly 25% of total spam filter scoring weight and they are evaluated before your content is even read.
This guide explains exactly what SPF, DKIM, and DMARC do, how to set each one up step by step, how to verify your records are working, and how to move from monitoring to full enforcement without breaking your email flow. Every example in this guide uses real DNS record syntax you can copy directly.
Contents
- What Are SPF, DKIM, and DMARC?
- Why They Are Mandatory in 2026
- SPF vs DKIM vs DMARC: Key Differences
- SPF: Setup, Syntax, and Common Mistakes
- DKIM: Setup, Key Generation, and Verification
- DMARC: Policy Progression from p=none to p=reject
- How to Read DMARC Reports
- DMARC Alignment Explained
- How to Verify Your Records Are Working
- 7 Common SPF, DKIM, and DMARC Mistakes
- Authentication Setup Checklist
- 2026 Adoption Benchmarks by Industry
- Frequently Asked Questions
What Are SPF, DKIM, and DMARC?
SPF, DKIM, and DMARC are three DNS-based email authentication protocols that work together to verify that an email actually comes from the domain it claims to come from. They are not redundant each one solves a different part of the authentication problem.
SPF authenticates the sending IP. DKIM authenticates the message content. DMARC enforces the policy and reports on failures.
The three protocols are complementary, not interchangeable. SPF can be bypassed through email forwarding. DKIM survives forwarding but does not authenticate the sending server. DMARC ties them together with a policy and provides visibility into who is sending on your behalf. You need all three for complete protection.
Why SPF, DKIM, and DMARC Are Mandatory in 2026
For most of their existence, SPF, DKIM, and DMARC were best-practice recommendations. Between February 2024 and May 2025, that changed permanently.
| Provider | Enforcement date | Requirement | Consequence of non-compliance |
|---|---|---|---|
| Gmail (Google) | Feb 2024, stricter Nov 2025 | SPF + DKIM + DMARC (p=none min) | Throttling then rejection for bulk senders |
| Yahoo | Feb 2024 | SPF + DKIM + DMARC (p=none min) | Rejection for bulk senders |
| Microsoft (Outlook) | May 2025 | SPF + DKIM + DMARC | Routed to junk, then rejected |
The impact has been dramatic. The EasyDMARC 2026 DMARC Adoption Report recorded a 79% growth in valid DMARC records between 2023 and 2026. Proofpoint's telemetry, covering 2.8 trillion emails across 230,000 organizations, flagged 2024 to 2025 as the fastest improvement in email authentication adoption it has ever measured. Despite this, 69.2% of domains still lack effective DMARC protection as of June 2026 (DmarcDkim.com) meaning the gap between compliant and non-compliant senders has never been larger.
SPF vs DKIM vs DMARC: Key Differences
A common question before setup: do you need all three, or will one or two suffice? The short answer is that all three serve different purposes and none can fully replace the others.
| SPF | DKIM | DMARC | |
|---|---|---|---|
| What it authenticates | The sending IP address | The message content and sender domain | Policy + alignment of SPF and DKIM |
| Survives forwarding | No | Yes | Depends on which passes |
| Protects against spoofing | Partial | Partial | Yes (at p=reject) |
| Provides reporting | No | No | Yes (rua= and ruf=) |
| Required by Gmail/Yahoo | Yes | Yes | Yes (p=none min) |
| DNS record location | yourdomain.com (TXT) | selector._domainkey.yourdomain.com (TXT) | _dmarc.yourdomain.com (TXT) |
| Configured by | You (domain owner) | Your ESP or email provider | You (domain owner) |
SPF: Setup, Syntax, and Common Mistakes
What SPF does
SPF (Sender Policy Framework) is a DNS TXT record that lists every IP address and service authorised to send email on behalf of your domain. When an email arrives, the receiving server checks whether the sending IP is on your SPF list. If it is not, the email fails SPF.
v=spf1 include:_spf.google.com include:sendgrid.net include:_spf.mailchimp.com ip4:203.0.113.10 ~all
v=spf1 declares the SPF version. include: authorises third-party senders. ip4: authorises a specific IP. ~all is a soft fail for anything not listed (use -all for hard fail once fully configured).
How to set up SPF step by step
include:_spf.google.com, SendGrid uses include:sendgrid.net, Mailchimp uses include:servers.mcsv.net.v=spf1. End with ~all (soft fail) while testing. Switch to -all (hard fail) once you are confident all sending sources are listed. Never create more than one SPF record for the same domain.@ or blank host field). DNS propagation takes up to 48 hours but is usually complete within a few hours.include: tag counts as one lookup, and some includes trigger further lookups. Exceeding 10 causes SPF to return a PermError, which is treated as a fail. If you send from many services, use an SPF flattening tool to stay within the limit.DKIM: Setup, Key Generation, and Verification
What DKIM does
DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every email you send. The signature is generated using a private key stored on your sending server. The corresponding public key is published in your DNS. When a receiving server gets your email, it retrieves the public key from your DNS and uses it to verify that the signature is valid and that the message body has not been modified in transit.
Unlike SPF, DKIM survives email forwarding because it is tied to the message content rather than the sending IP. This makes it the more reliable of the two authentication methods and the one DMARC alignment depends on most heavily.
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
; The selector "google" identifies which key to use.
; p= is your base64-encoded public key.
The record is published at selector._domainkey.yourdomain.com. The selector is defined by your email provider and allows multiple DKIM keys to coexist on one domain (one per sending service).
How to set up DKIM
DKIM setup is done through your email provider or ESP, not manually. Most providers generate the key pair for you and give you the DNS record to publish.
| Provider | Where to find DKIM setup | Selector format |
|---|---|---|
| Google Workspace | Admin Console › Apps › Google Workspace › Gmail › Authenticate email | |
| Microsoft 365 | Microsoft 365 Defender › Email policies › DKIM | selector1, selector2 |
| Mailchimp | Account › Domains › Authenticate | k1, k2 |
| SendGrid | Settings › Sender Authentication › Domain Authentication | s1, s2 |
| Postmark | Sender Signatures › DKIM | pm |
DMARC: Policy Progression from p=none to p=reject
What DMARC does
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is the policy layer that sits on top of SPF and DKIM. It tells receiving servers what to do when an email from your domain fails authentication: monitor only, quarantine it, or reject it. It also sends you aggregate and forensic reports so you can see exactly who is sending email using your domain.
v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:dmarc-forensic@yourdomain.com; fo=1
p= is the policy (none, quarantine, or reject). pct= is the percentage of failing messages the policy applies to. rua= receives aggregate reports. ruf= receives forensic reports. fo=1 generates reports when either SPF or DKIM fails.
The 3 DMARC policies explained
Always start at p=none, move to p=quarantine after reviewing reports, then p=reject once all sending sources are aligned
How to set up DMARC step by step
dmarc@yourdomain.com). Reports arrive as XML files and can be difficult to read manually use a free DMARC report analyzer like Dmarcian, Postmark's DMARC digests, or EasyDMARC._dmarc.yourdomain.com with the value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1. This starts sending you reports without affecting email delivery.p=quarantine; pct=10 to apply the policy to only 10% of failing messages. Monitor for a week. If no legitimate email gets caught, increase pct gradually to 25, 50, then 100.p=reject. This gives you maximum protection against domain spoofing and phishing. Only 11.2% of domains globally have reached this level as of June 2026.How to Read DMARC Reports
DMARC aggregate reports (RUA) arrive as XML files sent to the address you specified in your rua= tag. They are sent by every inbox provider that processes email from your domain Gmail, Yahoo, Outlook, and others. Each report covers a 24-hour period.
Reading raw XML is impractical. Use a free DMARC report analyzer: Postmark's DMARC Digest (free, weekly summary by email), Dmarcian (free tier available, visual dashboard), or EasyDMARC (free tier, good for smaller volumes).
What a DMARC aggregate report contains
| Field | What it tells you | What to look for |
|---|---|---|
| source_ip | The IP address that sent email claiming to be from your domain | Unrecognised IPs could mean spoofing or a forgotten sending service |
| count | Number of messages sent from this IP in the reporting period | High counts from unknown IPs are a red flag |
| spf result | Pass or fail for SPF authentication | Any "fail" from a legitimate source means SPF record needs updating |
| dkim result | Pass or fail for DKIM signature | Any "fail" means DKIM is not configured for that sending service |
| disposition | What the receiver did with the message (none, quarantine, reject) | Should match your DMARC policy surprises indicate misalignment |
| header_from | The From domain in the email header | Should always be your domain if not, you are being spoofed |
The 3 things to check in every DMARC report
1. Are there any unrecognised source IPs? If you see IP addresses you do not recognise sending email from your domain, either you have a forgotten sending service or someone is attempting to spoof your domain. Investigate before advancing to p=reject.
2. Are all your legitimate sending sources passing both SPF and DKIM? Each tool you use to send email (your ESP, CRM, helpdesk, transactional email) should appear in your reports with spf=pass or dkim=pass. Any legitimate source showing as fail needs to be fixed before you tighten your DMARC policy.
3. Is the volume matching what you expect? If your reports show 10,000 emails sent from an IP you do not control, your domain is being actively spoofed. Set DMARC to p=reject immediately and notify your email provider.
DMARC Alignment Explained
DMARC passes when either SPF or DKIM aligns with the domain in the "From" header of the email. Alignment is the most misunderstood concept in email authentication and the most common source of DMARC failures even when SPF and DKIM individually pass.
| Alignment type | SPF requirement | DKIM requirement |
|---|---|---|
| Relaxed (default) | The SPF domain must share the organizational domain with the From header domain (subdomains allowed) | The DKIM d= tag must share the organizational domain with the From header (subdomains allowed) |
| Strict (aspf=s / adkim=s) | The SPF domain must exactly match the From header domain | The DKIM d= tag must exactly match the From header domain |
mail.yourdomain.com (a subdomain) with SPF configured only for yourdomain.com. In strict mode, this fails alignment. In relaxed mode (the default), it passes because both share yourdomain.com as the organizational domain. Use relaxed alignment unless you have a specific security reason to require strict.How to Verify Your SPF, DKIM, and DMARC Records
Publishing the records is only half the job. You need to verify that they are syntactically correct, that they are actually resolving from your DNS, and that emails are passing authentication end to end.
| Check | Tool | What to confirm |
|---|---|---|
| SPF record syntax | MXToolbox SPF Checker | Record found, no syntax errors, under 10 lookups |
| DKIM record | MXToolbox DKIM Checker | Public key found at selector._domainkey.yourdomain.com |
| DMARC record | MXToolbox DMARC Checker | Record found at _dmarc.yourdomain.com, policy visible |
| End-to-end authentication | Mail-Tester.com or Google Admin Toolbox | SPF pass, DKIM pass, DMARC pass in email headers |
| Gmail alignment | Google Postmaster Tools | Domain reputation High or Medium, DMARC passing |
| Inbox placement | GlockApps | Above 80% inbox across major providers |
7 Common SPF, DKIM, and DMARC Mistakes
The 7 most common authentication setup mistakes and how to fix each one
_dmarc.yourdomain.com covers your root domain and, by default in relaxed mode, your subdomains. But if you send from a completely separate subdomain like newsletter.yourdomain.com, check that SPF, DKIM, and DMARC are configured for that subdomain specifically. Use the sp= tag in your DMARC record to set a separate policy for subdomains.SPF, DKIM, and DMARC Setup Checklist
SPF
- Only one SPF TXT record published at the root domain
- All sending services included (email provider, ESPs, CRMs, transactional email)
- Lookup count verified below 10 (use MXToolbox SPF checker)
- Record ends with
~allduring testing,-allfor full enforcement - SPF passes in end-to-end test (Mail-Tester.com or Google Admin Toolbox)
DKIM
- DKIM enabled in every service that sends email from your domain
- Public key published in DNS at
selector._domainkey.yourdomain.comfor each selector - DKIM signature verified in email headers (check via Gmail "Show original")
- Key rotation schedule in place (minimum once per year)
- DKIM d= domain aligns with the From header domain
DMARC
- DMARC TXT record published at
_dmarc.yourdomain.com - Started at
p=nonewithrua=pointing to a monitored inbox - DMARC reports reviewed for at least 2 to 4 weeks before moving to quarantine
- All legitimate sending sources showing as aligned in reports
- Policy moved to
p=quarantinethenp=rejectprogressively - Subdomain policy considered (
sp=tag if needed)
2026 DMARC Adoption Benchmarks by Industry
DMARC adoption rate by industry, 2026 (EasyDMARC Adoption Report 2026, AutoSPF Industry Analysis)
| Metric | Data | Source |
|---|---|---|
| Global DMARC adoption | 52.1% of top 1.8M domains | EasyDMARC 2026 Adoption Report |
| Domains at p=none only | 56% of those with DMARC | EasyDMARC 2026 |
| Full p=reject enforcement | 11.2% of all domains | DmarcDkim.com, June 2026 |
| Domains with no auth at all | 40.8% (no SPF, DKIM, DMARC) | DMARCguard Research, Feb 2026 |
| DMARC adoption growth 2023-2026 | +79% in valid records | EasyDMARC 2026 |
| BEC losses prevented by DMARC | $2.77B annual target (FBI IC3 2024) | FBI IC3 Annual Report |
Frequently Asked Questions
Danila has spent the last few years deep in email deliverability, helping SaaS companies and growth teams fix the infrastructure problems that silently kill their outbound results. As COO of MailTester.Ninja, he oversees product and operations with a single obsession: making email verification fast, accurate, and genuinely useful for the people who need it most.
Authentication is step one. A clean list is step two.
Once SPF, DKIM, and DMARC are set up, verify your email list before every send. MailTester Ninja checks every address with SMTP-level accuracy, spam trap detection, and MX record validation.
Verify your list for freeReal-time SMTP verification · Spam trap detection · Catch-all flagging · GDPR compliant

