Guides
Email Deliverability: SPF, DKIM & DMARC Setup
Published July 17, 2026 · 10 min read
Do you know how many emails never reach the inbox? Between 10% and 30%, depending on the industry. The culprit isn't your content—it's email authentication. Without SPF, DKIM, and DMARC, email providers (Gmail, Outlook, Yahoo) flag your messages as spam or reject them outright.
Since January 2024, Google and Yahoo require SPF and DKIM authentication for anyone sending over 5,000 emails daily. By 2026, it's mandatory even for smaller volumes. Without proper setup, your emails will vanish into spam.
The good news: configuring SPF, DKIM, and DMARC takes 20–30 minutes and multiplies your deliverability. This guide shows you exactly how.
What is email deliverability?
Deliverability means your email reaches the recipient's inbox (not spam, not rejected, not blocked).
It's different from "sending." You might send 10,000 emails today, but if 50% land in spam, your deliverability is 50%.
Key factors affecting deliverability:
- Authentication (SPF, DKIM, DMARC)—most critical
- Domain reputation (how many emails get marked spam)
- Content (spam trigger words, suspicious links)
- Clean list (you don't email invalid addresses)
- Bounce rate (rejected emails)
Configure SPF, DKIM, and DMARC and you'll automatically gain 15–25 points in deliverability.
SPF, DKIM, and DMARC explained
SPF (Sender Policy Framework)
What it is: A DNS record that tells Gmail, Outlook, etc.: "These mail servers are authorized to send emails from my domain."
Why it matters: Without SPF, anyone can impersonate your domain. Spammers know this, so they send spam using your address. Gmail sees it's unauthorized and flags it as spam.
Simple example:
v=spf1 include:sendgrid.net include:mailchimp.com ~all
Translation: "SPF version 1. I authorize SendGrid and Mailchimp to send emails from my domain. Everyone else is suspicious but accepted (~all)."
SPF modifiers:
~all= soft-fail (suspicious but accepted)-all= hard-fail (rejected)
Start with ~all until you're confident.
DKIM (DomainKeys Identified Mail)
What it is: A cryptographic signature proving the email really comes from you. It's your digital signature.
Why it matters: Even if someone spoofs your SPF record, DKIM verifies message integrity. If someone alters the email after sending, DKIM detects it.
How it works:
- Generate a public and private key
- Store the public key in your DNS
- Your mail server signs each email with the private key
- Gmail verifies the signature against the public key
- If they match, the email is legitimate
In WooCommerce, if you use Flowgration or SendGrid, they manage DKIM for you. You just add the public key to DNS.
DMARC (Domain-based Message Authentication, Reporting and Conformance)
What it is: A policy that says "What do I do if an email fails SPF or DKIM?" It also sends you reports about who's trying to use your domain.
DMARC policies:
p=none= monitor only, accept anywayp=quarantine= send to spam if failsp=reject= reject directly if fails
Why it matters: Protects you from impersonation. If someone sends spam with your domain and you have a reject policy, Gmail blocks it immediately.
Basic DMARC example:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:forensics@yourdomain.com
Translation: "DMARC v1. If SPF/DKIM fails, quarantine to spam. Send reports to dmarc-reports@yourdomain.com."
Why it's mandatory in 2026 (Google, Yahoo, and beyond)
In February 2024, Google and Yahoo announced that starting February 2024:
- Senders of 5,000+ emails/day MUST have SPF and DKIM
- Spam rate must be below 0.1%
- Must support one-click unsubscribe
By 2026, the requirement has expanded to smaller volumes and other ISPs (Orange, Vodafone, Telia, etc.). Without SPF/DKIM, your emails won't pass filters.
It's so critical that Gmail now marks unauthenticated emails with a red "?" on the sender's avatar.
Configure SPF: step-by-step
Step 1: Identify your email provider
Where do your emails originate? WooCommerce native? SendGrid? Mailchimp? Flowgration?
Each has a specific SPF record.
Common providers:
- SendGrid:
sendgrid.net - Mailchimp:
mailchimp.com - Google Workspace:
aspmx.l.google.com - Amazon SES:
amazonses.com - Flowgration:
flowgration.com(if hosted)
Step 2: Access your DNS
Log into your domain registrar (GoDaddy, Namecheap, 1&1, Ionos, etc.) and find DNS Manager or Zone File.
Step 3: Add the SPF record
Find the TXT Records section (or SPF if there's a dedicated section).
New record:
- Type: TXT
- Name (Subdomain): @ (or your root domain)
- Value:
v=spf1 include:sendgrid.net include:mailchimp.com ~all
(Replace with your actual providers. If using only SendGrid: v=spf1 include:sendgrid.net ~all)
Step 4: Wait for propagation
DNS changes take 24–48 hours to propagate. Verify early with online tools:
Enter your domain and search for the SPF record. It should show your new value.
Important: You can only have ONE SPF record per domain. If you already have one, ADD the new include: statement to the existing value. Don't create two records.
Wrong (DON'T do this):
v=spf1 include:mailchimp.com ~all
v=spf1 include:sendgrid.net ~all
Correct:
v=spf1 include:mailchimp.com include:sendgrid.net ~all
Implement DKIM: step-by-step
DKIM is more technical, but most providers auto-generate it for you.
Step 1: Generate DKIM keys
In your provider (SendGrid, Mailchimp, Flowgration):
- Go to Settings → Authentication → DKIM
- Select your domain
- Click "Generate DKIM" or "Create key"
The provider gives you:
- Record name: something like
s._domainkey.yourdomain.com - Record value: a long string (your public key)
Step 2: Add the DKIM record to DNS
In your registrar:
- Type: TXT
- Name:
s._domainkey(or what your provider told you; some platforms says._domainkey.yourdomain.com) - Value: the public key your provider generated
Example:
Name: s._domainkey.yourdomain.com
Value: v=DKIM1; k=rsa; p=MIGfMA0GCS...
Step 3: Verify in your provider
Once DNS propagates (24h), go back to your provider and click "Verify DKIM". It should say "Verified ✓".
Note: Some providers create MULTIPLE selectors (s1, s2, etc.). Add them all to DNS.
Configure DMARC: policy step-by-step
Step 1: Start with p=none
First, monitor without rejecting anything:
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
Add to DNS:
- Type: TXT
- Name:
_dmarc(literal) - Value: the line above
Step 2: Monitor reports for 1–2 weeks
Gmail and others will send reports to dmarc-reports@yourdomain.com. You'll see:
- How many emails passed authentication
- How many failed
- Who was trying to use your domain
Step 3: Upgrade to p=quarantine (then p=reject)
Once you're confident legitimate emails pass authentication, strengthen the policy:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:forensics@yourdomain.com; fo=1
Parameters:
p=quarantine: Fail → spam folderp=reject: Fail → hard reject (stricter)rua: Aggregate reports email (weekly)ruf: Forensic reports email (per-message; only withfo=1)fo=1: Send report if ANY of SPF/DKIM fails
After 2–4 weeks of clean results, upgrade to p=reject:
v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:forensics@yourdomain.com; fo=1
Deliverability checklist + DNS validation
Your configuration checklist
- Identified your email provider (SendGrid, Mailchimp, etc.)
- Added SPF record with
v=spf1 include:[provider] ~all - Generated DKIM keys in your provider
- Added DKIM record to DNS
- Verified DKIM in provider dashboard
- Added DMARC with
p=nonefor monitoring - Waited 24–48h for propagation
- Upgraded DMARC to
p=quarantineafter 1 week - Upgraded DMARC to
p=rejectafter 2–4 weeks
Validation tools
-
MXToolbox (https://mxtoolbox.com)
- Go to "Check MX", "SPF Check", "DKIM Check", "DMARC Check"
- Enter your domain
- Should pass all
-
Google Admin Toolbox (https://toolbox.googleapps.com/apps/checkmx/)
- MX, SPF, DKIM, DMARC
- User-friendly interface
-
DMARC Report Analyzer (https://dmarc.agari.com)
- View your DMARC reports
- Detailed analysis
-
Your provider (SendGrid, Mailchimp, etc.)
- Native verification dashboard
- Most reliable source
FAQ
Can I set up SPF without DKIM? Technically yes, but shouldn't. SPF alone is 60% protection. DKIM alone is 70%. Both together are 95%+. Do it right from the start.
Should I use p=reject or p=quarantine in DMARC?
Start with p=quarantine. It's safer in case of misconfiguration. After 2–4 weeks of clean monitoring, upgrade to p=reject. p=reject is ideal but risky if something's misconfigured.
My email still goes to spam even with SPF/DKIM/DMARC. Why? Other factors matter:
- Content (spam words: "free", "click here")
- Dirty list (you email invalid addresses)
- Engagement (open rate, click rate)
- Old IP or poor reputation
- Missing easy unsubscribe
Check all of them.
How long until deliverability improves after setup? 24–48h for DNS propagation. 1 week for Gmail to trust you. 2–4 weeks to see clear improvements. Be patient.
If I have multiple domains, do I configure everything on each?
Yes. SPF, DKIM, and DMARC are per-domain. If you use mystore.com and blog.mystore.com, configure each one.
Without SPF, DKIM, and DMARC, your 2026 WooCommerce emails will disappear directly into spam. But with this guide, spend 30 minutes and gain 15–25% deliverability automatically.
The time you invest today will save you thousands in lost revenue from missed emails.
Ready to configure? Flowgration helps you validate email setup and optimize deliverability.
Build your WooCommerce CRM in 60 seconds
Flowgration turns your store's orders into a living CRM and runs email, SMS and WhatsApp on autopilot. Free up to 500 contacts.
Start free