The Plain-English Email Deliverability Checklist: SPF, DKIM, and DMARC
Why your customer invoices and outreach keep hitting the spam folder, and the exact DNS records needed to stop spoofing and satisfy Google and Yahoo's strict sender rules.
If your business sends client proposals, booking confirmations, or invoices, few things are more frustrating than a client saying:
“I never got your email. Let me check my spam folder... oh, there it is.”
When your legitimate business emails end up in spam, it isn't bad luck. It is a technical signal from recipient mail servers that your domain lacks verifiable proof of authenticity.
In 2024, Google and Yahoo instituted aggressive new enforcement policies: domains sending unauthenticated emails are now throttled, flagged as phishing, or rejected outright.
Here is the plain-English guide to understanding SPF, DKIM, and DMARC, and how to fix your DNS records in under 20 minutes.
What Changed in 2024
Historically, the underlying protocol of email (SMTP) was built on trust. Anyone could configure a computer to send an email claiming to be from ceo@yourcompany.com, and recipient servers would usually deliver it.
To stop the deluge of spoofing and phishing scams, major inbox providers (Google Workspace, Microsoft 365, Yahoo, Apple Mail) now inspect three specific DNS verification records before allowing an email into the inbox.
If your domain is missing these records—or has syntax errors in them—your emails are immediately penalized with a high spam score.
SPF: The Guest List at the Door
SPF (Sender Policy Framework) is a simple TXT record published in your domain's DNS.
It acts like a bouncer's guest list at the door of your domain. It explicitly tells receiving servers: "These specific servers and IP addresses are authorized to send email on behalf of my domain. Anyone else is an impostor."
A standard SPF record looks like this:
v=spf1 include:_spf.google.com ~all
v=spf1: Identifies the record as SPF Version 1.include:_spf.google.com: Authorizes Google Workspace mail servers.~all(SoftFail): Informs receiving servers that any sender not listed should be treated with suspicion.
DKIM: The Unbroken Wax Seal
While SPF verifies where the email came from, DKIM (DomainKeys Identified Mail) verifies that the email was not tampered with in transit.
Think of DKIM as an old-fashioned wax seal stamped with your royal signet ring:
- When your mail server sends an email, it creates a cryptographic digital signature using your private key and attaches it to the email header.
- The receiving server looks up your public key in your DNS records.
- If the public key matches and verifies the digital signature, the receiver knows with mathematical certainty that neither the body text nor the attachments were altered by a bad actor between departure and arrival.
DMARC: The Police Policy
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is the master orchestrator that ties SPF and DKIM together.
Even if you have SPF and DKIM configured, receiving servers need to know: "What should I do if an email claiming to be from this domain fails SPF or DKIM?"
DMARC provides three policy levels (p=):
p=none(Monitoring Mode): "Deliver the email normally, but send me a daily forensic report about who is sending email using my domain name."p=quarantine(Spam Folder): "If authentication fails, do not deliver to the primary inbox. Quarantine it in the recipient's spam/junk folder."p=reject(Hard Rejection): "If authentication fails, reject and bounce the email completely. Never let it reach the recipient."
The Step-by-Step DNS Playbook
Here is the exact setup routine to lock down your business domain:
Step 1: Configure SPF
Log into your DNS provider (Cloudflare, GoDaddy, Namecheap, Squarespace) and add a TXT record for your root domain (@):
- If using Google Workspace:
v=spf1 include:_spf.google.com ~all - If using Microsoft 365:
v=spf1 include:spf.protection.outlook.com ~all - If sending via both Google and a service like Mailchimp or Stripe:
v=spf1 include:_spf.google.com include:servers.mcsv.net ~all
Step 2: Generate and Publish DKIM
- In your Google Workspace Admin Console or Microsoft 365 Defender portal, navigate to Email Authentication > DKIM.
- Click Generate New Record (choose 2048-bit key size).
- Copy the selector name (e.g.,
google._domainkey) and the long RSA public key string. - Add a new TXT record in your DNS with that selector name and paste the public key.
- Return to your email admin console and click Start Authentication.
Step 3: Implement DMARC
Add a TXT record for _dmarc.yourdomain.com:
v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@yourdomain.com
This policy tells receiving servers: "If an email claiming to come from our domain fails SPF and DKIM, quarantine it in spam 100% of the time, and email our aggregate report address."
3 Pitfalls That Break Deliverability
Watch out for these three common configuration mistakes:
- Multiple SPF Records: A domain can only have exactly one SPF record. If you add one record for Google and a separate record for Mailchimp, receiving servers consider the SPF configuration invalid and fail both. You must merge them into a single record with multiple
include:directives. - More Than 10 DNS Lookups: The SPF specification limits a record to 10 DNS lookups. Chaining too many services (Shopify + Zendesk + HubSpot + Google + SendGrid) will cause an automatic SPF PermError.
- Neglecting Subdomains: Phishers love targeting unprotected subdomains (like
mail.yourdomain.comorsupport.yourdomain.com). Ensure your DMARC record includes thesp=quarantineorsp=rejecttag to protect subdomains automatically.
Founder, The Chimaera Co.. We design custom websites, set up the email and IT teams run on, and build the systems behind them.
Related essays & playbooks
How Local Nonprofits Can Claim $120,000 a Year in Free Google Ads
Google gives qualified 501(c)(3) organizations $10,000 every single month in search advertising credit. Most never claim it, and agencies charge thousands to set it up. Here is the entire blueprint—step by step, zero gatekeeping.
Why Most Small Business Websites Break After Two Years (And How to Prevent It)
Most small business websites don't break because of traffic spikes or hackers. They break because 37 plugins updated out of order on a cheap shared host on a Tuesday. Here is how modern web architecture eliminates maintenance decay entirely.