Start DMARC With p=none: SPF and DKIM Setup for Outreach Teams
, 12 min read


SPF authorizes which servers can send mail for your domain, DKIM signs message content with a cryptographic key, and DMARC ties both results to the visible From address and tells receivers what to do when they fail. Publish SPF and DKIM first, then add a DMARC record with p=none so you can watch what happens before you enforce anything.
TL;DR:
- Implement SPF with a single
v=spf1record at your domain’s root, ensuring no more than 10 DNS lookups to avoid permerrors.- Use 2048-bit DKIM keys and publish the selector-based public key DNS record to enable signature verification.
- Set DMARC policy initially to
p=nonewith aggregate report addresses, then escalate to quarantine or reject after monitoring for two to four weeks.- Use the Authentication-Results header in test emails and direct DNS queries to verify SPF, DKIM, and DMARC are correctly configured and actively passing.
- Prioritize fixing DKIM signing across all platforms first, as it withstands forwarding better than SPF, and continually review reports before tightening enforcement.
Table of Contents
- What SPF, DKIM, and DMARC Each Do
- How Do I Set Up an SPF Record Correctly?
- How Does DKIM Signing Actually Work?
- How Does DMARC Decide Pass or Fail?
- Where Do These Records Live in DNS?
- How Do I Check If SPF, DKIM, and DMARC Are Working?
- Setting Up SPF, DKIM, and DMARC Step by Step
- Why Is My Authenticated Email Still Failing?
- What This Means for Cold Email Deliverability
- What I’d Prioritize First
- Where to Go Next for Deliverability and Outreach
- Sources
- FAQ
What SPF, DKIM, and DMARC Each Do
Each protocol solves a different half of the authentication problem, and none of them works alone the way most people assume.
- SPF (Sender Policy Framework) lists which IP addresses and servers are allowed to send mail for your domain. Its limitation: it checks the sending server, not the message content, so it breaks easily when mail gets forwarded.
- DKIM (DomainKeys Identified Mail) attaches a digital signature to a message so the receiver can confirm it wasn’t altered in transit. Its limitation: the signature can break if an intermediary modifies signed headers or body content.
- DMARC ties SPF and DKIM results to the domain in the visible “From” field, then tells receivers what to do with a failure and where to send reports.
A message passes DMARC when either SPF or DKIM passes and aligns with the From domain. That “either/or” detail is the one most beginners miss, and it’s the reason implementing all three matters more than getting any single one perfect.
How Do I Set Up an SPF Record Correctly?
An SPF record is a single TXT record at your root domain that starts with v=spf1 and lists authorized sources. A typical spf record example looks like this:
v=spf1 ip4:203.0.113.10 include:_spf.google.com include:mailgun.org ~all
Each mechanism does something specific:
ip4/ip6authorize a specific IP address or range.aandmxauthorize servers tied to your domain’s existing A or MX records.includepulls in another domain’s SPF record, common when you use a marketing platform or CRM to send mail.
Pro Tip: Count your lookups before you publish. Every include can nest more lookups inside it, and RFC 7208 caps SPF at 10 total DNS lookups per check — cross that line and receivers return a permerror, which can mean outright rejection rather than a soft fail.
For spf record setup, use ~all (soft fail) while you’re auditing which servers actually send your mail. Only switch to -all (hard fail) once you’ve confirmed every legitimate sender is accounted for. Too many DNS lookups is one of the most common causes of SPF failure, usually from stacking multiple third-party includes without ever pruning old ones.

How Does DKIM Signing Actually Work?
DKIM signing happens on the sending server: a private key signs specific headers and the message body, producing a signature stamped into the DKIM-Signature header. The receiving server then looks up your public key in DNS to verify that signature matches.
- The public key lives at a hostname built from a selector, formatted as
selector._domainkey.yourdomain.com. - You’ll find your selector by opening a sent message’s raw headers and reading the
s=value inside the DKIM-Signature line. - Use a 2048-bit key where your provider supports it. Older 1024-bit keys still work but offer weaker protection.
DKIM signatures are more resilient to forwarding than SPF, but they’re not bulletproof. Mailing lists, ticketing systems, and any intermediary that rewrites subject lines or adds footers can invalidate a signature by altering signed content. ARC (Authenticated Received Chain) exists specifically to preserve authentication history across these intermediaries, letting the final receiver see that a message passed authentication earlier in its journey even if the signature itself broke.
How Does DMARC Decide Pass or Fail?
DMARC doesn’t run its own authentication check. It reads the SPF and DKIM results and asks one question: does either of those checks align with the domain in the visible From address? A message passes DMARC when SPF or DKIM passes and aligns — you don’t need both to succeed, just one.
Two tags control how strict that alignment check is:
aspfandadkimcan be set to relaxed (r) or strict (s). Relaxed allows a subdomain match (mail.yourdomain.com aligns with yourdomain.com); strict requires an exact match.- The
ptag sets policy:p=nonemonitors without affecting delivery,p=quarantinesends failures to spam,p=rejectblocks them outright. - The
ruatag specifies where aggregate reports get sent, which is how you discover every server currently sending mail as your domain before you lock the door on any of them.
Skip the reporting step and you’re enforcing blind. Read it first.
Where Do These Records Live in DNS?
All three records are TXT records, but they sit at different hostnames, and getting the hostname wrong is the single most common setup mistake.
- SPF: published at your root domain (often entered as
@in your DNS host’s interface). - DKIM: published at
selector._domainkey.yourdomain.com, where the selector matches what your sending provider assigns. - DMARC: published at
_dmarc.yourdomain.com.
Watch your TTL (time to live) during changes. A long TTL means old records linger in resolver caches for hours after you’ve updated them. And never publish two separate v=spf1 TXT records on the same domain. Combine every sender into one record. Multiple SPF records cause an automatic permerror, regardless of how correct each individual record is.
How Do I Check If SPF, DKIM, and DMARC Are Working?
Run these checks in order before you trust any record you’ve published:
- Open a test message’s raw source. In Gmail, use “Show original” to see the
Authentication-Resultsheader, which reportsspf=pass,dkim=pass, anddmarc=pass(or their failure states) for that specific message. - Query DNS directly. Run
dig TXT yourdomain.comfor SPF,dig TXT selector._domainkey.yourdomain.comfor your DKIM public key, anddig TXT _dmarc.yourdomain.comfor your DMARC policy.nslookupworks the same way if you prefer it. - Use an online validator or DMARC report parser to sanity check your syntax and to turn raw aggregate XML reports into something readable, since manually inspecting rua data isn’t practical once you’re getting daily reports from multiple mailbox providers.
Setting Up SPF, DKIM, and DMARC Step by Step
A staged rollout protects delivery while you tighten enforcement. Rushing straight to p=reject is how legitimate mail gets blocked.
- Inventory every sending source. List your email provider, CRM, marketing platform, helpdesk, and any transactional mail service. Anything sending as your domain needs a place in SPF or a DKIM signature.
- Publish one SPF record with
~all. This authorizes known senders without hard failing on anything you missed. - Enable DKIM signing for each sender individually. Most platforms generate their own selector and give you the CNAME or TXT record to publish. Use 2048-bit keys wherever the provider offers the option.
- Publish DMARC at
p=nonewith anruaaddress. This monitors without touching delivery, and it’s the step most guides skip past too quickly. - Read the aggregate reports for two to four weeks. Fix any gaps: add missing IPs to SPF, or enable DKIM for a service you forgot.
- Move to
p=quarantine, thenp=reject. Only escalate once reports show consistently clean alignment across every real sender.
Pro Tip: When a third-party service (like a CRM or marketing platform) can’t send using your domain’s DKIM key, ask if it supports an aligned “return path” or custom sending domain — that’s often the only way to get DMARC alignment for mail you don’t control.
Only tighten SPF to -all once you’re confident the inventory step caught everything. A hard fail on an incomplete record blocks legitimate mail, not just spoofed mail.
Why Is My Authenticated Email Still Failing?
Most authentication failures trace back to one of four causes, and each has a specific fix.
- Forwarding breaks SPF. When a message gets forwarded, receivers see the forwarding server’s IP, not your original sender’s IP, and SPF fails. DKIM survives forwarding more reliably than SPF, which is the main reason to lean on DKIM alignment rather than SPF alone for domains with heavy forwarding traffic.
- Multiple SPF records or too many includes cause
permerror. Merge every sender into a single record and remove unused includes from old vendors. - DKIM signatures break from content changes. Check which headers your provider signs, and confirm no intermediary (a mailing list, a security gateway) is rewriting the subject line or body after signing.
- DMARC reports reveal senders you forgot. Aggregate
ruareports will show IPs failing authentication that you didn’t know existed. Add legitimate ones to SPF or enable aligned DKIM rather than ignoring the failures.
What This Means for Cold Email Deliverability
Authentication is the floor, not the ceiling, for inbox placement. Large mailbox providers now require SPF, DKIM, and DMARC for high-volume senders, but passing all three doesn’t guarantee an inbox; reputation, engagement, and content still weigh heavily on where a message lands. That distinction matters most for outreach teams sending cold email at volume, where a clean deliverability setup has to pair authentication with list hygiene and sending patterns that don’t look like spam.
A working checklist for outreach teams:
- Confirm your sending domain and From address are the same domain your SPF and DKIM authorize.
- Enable DKIM signing on every platform you use to send outreach, not just your primary inbox provider.
- Watch DMARC aggregate reports weekly during any campaign ramp-up, not just once at setup.
- Send test messages to a Gmail address before scaling volume, and read the Authentication-Results header on each one.
What I’d Prioritize First
If you only fix one thing this week, fix DKIM signing across every sending platform. It survives forwarding better than SPF, and DMARC monitoring shows you exactly what’s still failing before you flip enforcement on. Run the test: publish records, send to a Gmail address, open “Show original.” Authentication earns trust; it doesn’t buy you an inbox by itself.
— Samuel
Where to Go Next for Deliverability and Outreach
Fixing SPF, DKIM, and DMARC solves the authentication half of the deliverability equation. The other half is what you send and how often, which is where most cold email programs actually lose ground even after their DNS is clean. There are platforms built around exactly that gap. It’s the practical alternative to sifting through vendor documentation and forum threads for advice on what actually predicts a spam folder placement versus what just sounds plausible.

If you’re running outreach and want to know what happens after authentication passes, the deliverability guide on what actually predicts the spam folder breaks down the engagement and content signals mailbox providers weigh once SPF and DKIM checks clear. And once your domain is sending clean, pull from 12 cold email templates that convert to make sure the messages landing in that authenticated inbox are worth opening. Start with the deliverability guide, then swap in a template for your next send.
Sources
FAQ
What Is SPF, DKIM, and DMARC?
SPF authorizes which servers can send mail for your domain, DKIM signs message content to prove it wasn’t altered, and DMARC ties those results to the visible From address while setting policy for failures. DMARC passes when either SPF or DKIM passes and aligns with that From domain.
How Do I Check SPF, DKIM, and DMARC?
Open a test message’s raw headers (Gmail’s “Show original”) and read the Authentication-Results line for spf=pass, dkim=pass, and dmarc=pass. You can also run dig TXT against your domain, your DKIM selector’s _domainkey hostname, and _dmarc.yourdomain.com to confirm what’s actually published in DNS.
How Do I Set Up SPF, DKIM, and DMARC?
Inventory every sending source first, then publish one SPF TXT record with ~all, enable DKIM signing per sender with a published selector, and add a DMARC record at _dmarc starting with p=none and an rua reporting address. Watch reports for a few weeks before moving to p=quarantine and eventually p=reject.
Does DMARC Need Both SPF and DKIM?
No. DMARC only needs one of the two, SPF or DKIM, to pass and align with the visible From domain. Most practitioners still implement both because SPF frequently fails when messages are forwarded, and DKIM offers a more reliable backup in that scenario.