The Short Answer
- SPF DKIM DMARC are three DNS-published authentication protocols. SPF validates the connecting mail server’s IP against your envelope-from domain. DKIM verifies message integrity via a cryptographic signature. DMARC ties both results to the visible From address and sets an enforcement policy for failures.
- None of the three protocols improve engagement metrics or control inbox placement decisions made by receiving providers. They establish a verifiable sending identity that mailbox providers use as one input among many.
- Each cold outbound domain needs exactly one SPF TXT record with no more than 10 DNS-resolving mechanisms, a DKIM key pair (2048-bit preferred), and a DMARC record published at _dmarc.[yourdomain].
- Start DMARC at p=none and read aggregate reports for at least 30 days before escalating to quarantine or reject.
- A dedicated cold outbound subdomain (e.g., sales.example.com) with relaxed DMARC alignment gives teams cleaner reputation isolation without breaking authentication for the root domain.
SPF DKIM DMARC are the three DNS-published email authentication protocols that every cold outbound domain must configure before the first message leaves the server. SPF DKIM DMARC together tell a receiving mail server which IP addresses are authorized to send for your domain, whether the message was altered in transit, and what to do when either check fails against your visible From address. They’re not engagement tools. They establish a verifiable sending identity that allows mailbox providers to score your domain with confidence. Without that identity, providers have no reliable signal that your cold outbound domain belongs to you rather than to someone spoofing it.
What SPF DKIM DMARC Actually Measures: RFC Definitions
SPF DKIM DMARC each measure a distinct thing. SPF validates whether the connecting mail server’s IP address is authorized to send for your envelope-from domain. DKIM verifies that specific headers and the message body have not been altered since the sender signed them. DMARC checks whether at least one of those results aligns with your visible From address and applies your published policy when it does not.
RFC 7208 defines SPF as a mechanism that validates whether the IP address of a connecting mail server appears in a list of authorized senders for the envelope-from domain. The result is one of: pass, fail, softfail, neutral, none, permerror, or temperror. SPF says nothing about the message content, the From header a recipient reads, or the sender’s reputation with the receiving provider.
RFC 6376 defines DKIM as a signing protocol. The sending server computes a hash of selected message headers and the body, signs it with a private key, and appends a DKIM-Signature header containing the signing domain (d=), selector (s=), signed headers (h=), and body hash (bh=). The receiver fetches the public key from DNS at selector._domainkey.example.com and verifies the signature. A passing DKIM result means the signed content was not altered in transit and the d= domain controls the key used to sign it.
RFC 7489 defines DMARC as the layer that ties SPF and DKIM results to the RFC5322.From domain, the address the recipient actually sees in their email client. DMARC passes only when at least one of SPF or DKIM passes its own check AND the corresponding domain aligns with the From address. The p= tag tells receivers what to do when DMARC fails: p=none (monitor only, take no action), p=quarantine (move to spam), or p=reject (refuse delivery). RFC 9989 updates this framework and further clarifies how authenticated identifiers are treated in modern email ecosystems.
| Protocol | What it validates | DNS record location | Aligns to From? | Sets delivery policy? |
|---|---|---|---|---|
| SPF | Sending IP vs envelope-from domain | TXT at root domain | No | No |
| DKIM | Message integrity via cryptographic signature | TXT at selector._domainkey.domain | Yes, via d= field | No |
| DMARC | Alignment of SPF or DKIM result to From address | TXT at _dmarc.domain | Yes, requires it | Yes: none, quarantine, reject |
Cold Outbound Domain Architecture: Root vs Subdomain and Alignment Strategy
If you run cold outbound from a dedicated subdomain (sales.example.com), you need separate SPF DKIM DMARC records configured for that subdomain’s sending context. Under relaxed DMARC alignment, a record at _dmarc.example.com covers organizational domain matches for subdomains by default, but a dedicated cold outbound domain gives cleaner isolation and an independent reputation history that doesn’t mix with marketing or transactional traffic.
The standard practice for B2B outbound teams is to separate cold email from the company’s primary transactional and marketing domains. Mixing all three sending streams on one domain means a spam complaint against a cold sequence can harm deliverability for receipts, password resets, and onboarding messages. The two common architectures are a dedicated root domain (exampleoutreach.com) or a subdomain of the main domain (sales.example.com), and each changes how authentication records must be structured.
For a dedicated root domain, you publish SPF DKIM DMARC records at that domain directly. There’s no relationship to the parent domain unless you explicitly create one, which means full reputation isolation but also full responsibility for warming and maintaining the sending identity.
For a subdomain, DMARC alignment mode determines what passes. The dmarc.org overview explains that DMARC alignment can be relaxed (adkim=r, aspf=r, the defaults when tags are omitted) or strict (adkim=s, aspf=s). Relaxed alignment allows an organizational domain match: a message signed by sales.example.com passes DMARC DKIM alignment against a From address at example.com because both share the same organizational domain. Strict requires an exact domain match between the authenticated identifier and the From address. For most cold outbound setups using subdomains, relaxed is the practical choice.
Note: If your cold outbound subdomain appears in the RFC5322.From address and the parent domain’s DMARC policy is p=reject, that policy can propagate to subdomains by default. Publish a separate DMARC record at _dmarc.sales.example.com with p=none if you need subdomain-level monitoring independent of the parent’s enforcement.
SPF for Cold Outbound Domains: One Record and the 10-Lookup Limit
Your SPF record must be a single TXT record at your sending domain. RFC 7208 specifies a maximum of 10 DNS-resolving mechanisms per SPF evaluation, including include, a, mx, ptr, and exists. A cold outbound stack with Google Workspace or Microsoft 365 plus one dedicated cold email platform already consumes two to three lookups before adding any further tools.
RFC 7208 is explicit on the single-record rule: if DNS returns two TXT records both beginning with “v=spf1”, the result is a permerror, and receivers treat it as an SPF fail. It’s a common misconfiguration when teams add a sending platform by pasting a second SPF record into DNS instead of merging the new include mechanism into the existing one.
The 10-lookup limit applies recursively. Every include: in your SPF record can itself contain further includes, and each counts against the limit. A cold outbound stack using Google Workspace or Microsoft 365 plus two or more additional sending platforms, each added via separate include: chains, can breach the limit without anyone realizing it. Exceeding 10 lookups causes SPF to return permerror, which DMARC treats as an SPF fail for that source.
For Google Workspace, the recommended SPF record is:
v=spf1 include:_spf.google.com ~all
For Microsoft 365, the Microsoft 365 authentication documentation specifies:
v=spf1 include:spf.protection.outlook.com -all
If your stack uses both providers plus a cold email tool, merge all include mechanisms into one record and count the total lookup depth before publishing. Use -all (hard fail) for dedicated cold outbound domains that should only send through specified infrastructure. Use ~all (soft fail) only during a transition when you’re not yet certain every sending source is accounted for in the record.
DKIM for B2B Outbound: Key Length, Selectors and Per-Platform Setup
Publish a 2048-bit DKIM key for every cold outbound sending domain. If a platform only supports 1024-bit keys, note it as a gap: guidance referenced in current DKIM documentation recommends moving to the longer key length as security expectations have increased. Each selector creates an independent key pair in DNS, so multiple senders can each sign with their own key without overwriting each other.
Google Workspace allows admins to generate either a 1024-bit or 2048-bit key in the Admin console. The public key is published as a TXT record at the selector subdomain. Google Workspace defaults to “google” as its selector, so the DNS record goes at google._domainkey.yourdomain.com. If you add a separate cold email platform that also handles DKIM signing, you create a second selector for it (for example, outreach._domainkey.yourdomain.com). The two selectors coexist independently in DNS and can be verified separately.
The DKIM-Signature header in each outbound message specifies d= (the signing domain) and s= (the selector). For DMARC alignment under relaxed mode, the d= domain must share the organizational domain of the RFC5322.From address. A message signed with d=sales.example.com and sent from a From: address at sales.example.com passes DMARC DKIM alignment. If the d= domain is an unrelated third party, DKIM alignment fails for DMARC purposes even if the cryptographic signature itself is valid.
Rotate DKIM keys periodically. Standard practice is every 6 to 12 months. Publish the new key at a new selector, update your platform configuration, confirm outbound signing is active, and only then retire the old selector from DNS. Removing a selector before verifying the new one is in use will break DKIM signing and cause DMARC alignment failures.
SPF DKIM DMARC Policy Progression: p=none, Quarantine and Reject
DMARC does not filter email on its own. It publishes the policy your domain wants receivers to apply when SPF DKIM DMARC checks fail or produce a misaligned result. Receivers aren’t required to follow that policy exactly, and most major providers apply their own reputation scoring on top of the DMARC decision.
A DMARC record at _dmarc.example.com contains at minimum a version tag (v=DMARC1), a policy tag (p=), and an aggregate reporting address (rua=). A minimal monitoring record that takes no enforcement action looks like this:
v=DMARC1; p=none; rua=mailto:[email protected]
Google’s DMARC guide and most practitioners recommend starting at p=none. This tells receivers to take no enforcement action on failing messages while still sending aggregate reports to the rua= address. Those reports contain per-source-IP message counts, SPF and DKIM pass/fail results, alignment status, and the policy disposition applied. Reading them for at least 30 days gives a clear picture of whether every legitimate sending source passes authentication before you escalate.
Moving from p=none to p=quarantine without first confirming that the dominant share of your volume passes alignment will send legitimate cold emails to spam alongside spoofed traffic. Microsoft’s email authentication documentation confirms that its inbound filtering applies its own reputation and spam signals beyond the DMARC decision, so a passing authentication result does not override a poor sender reputation score.
The adkim and aspf tags default to relaxed (r) when omitted. Changing either to strict (s) means every platform in your stack must sign or send with the exact From domain, with no organizational domain matching across subdomains. That constraint is rarely practical for cold outbound teams using shared sending infrastructure across multiple ESP platforms and isn’t necessary unless the threat model specifically requires it.
What Deliverability Tools Can Measure vs What They Only Infer
A deliverability tool can read SPF pass or fail, DKIM pass or fail, DMARC disposition (none, quarantine, reject), alignment status, and DMARC aggregate report data. It can’t read Gmail’s or Outlook’s internal reputation scores, engagement history by recipient, or the probability that a specific message will reach the primary inbox rather than spam or promotions.
DMARC aggregate reports are the only structured, machine-readable signal your sending domain produces about authentication outcomes. They contain per-source-IP message counts, SPF and DKIM results for each source, and the policy disposition applied. A tool that parses these reports can tell you what share of your volume is passing SPF DKIM DMARC authentication and precisely where failures originate. That’s a direct measurement from your DNS infrastructure, not an estimate.
But those tools can’t measure what happens after a message reaches the provider’s infrastructure. Gmail, Outlook, and other major providers maintain proprietary reputation systems that factor in engagement history, complaint rates, list hygiene signals, and behavioral patterns from senders in the same IP or domain neighborhood. None of that data is exposed to senders via SMTP responses, DMARC reports, or any standardized channel.
A tool that claims to show your inbox placement rate is presenting an inference drawn from seed accounts, panel data, or statistical models, not a direct observation. Treat correct SPF DKIM DMARC authentication as a precondition, not a performance lever. Any vendor claiming their configuration service will produce measurable improvements in reply rates is describing an inference, not a result your domain can reproduce on demand.
Key Takeaways
- SPF stops evaluating once a record needs more than 10 DNS-resolving lookups, so every sending tool you add to the include: chain eats into that fixed budget rather than extending it.
- SPF on its own does not align to the visible From address. DMARC passes only when SPF or DKIM aligns to the From domain, so a record that “passes SPF” can still fail DMARC.
- p=none changes nothing about how receivers treat failing mail; it only collects reports. Enforcement starts at p=quarantine or p=reject, and moving there before reviewing reports can divert your own legitimate outbound.
- DMARC alignment has a relaxed and a strict mode. Relaxed is the default and treats a subdomain as aligned with its parent domain, while strict requires an exact match, which decides whether a subdomain sender passes.
- Aggregate (rua) reports summarize pass and fail counts by sending source and alignment, not the content of individual messages, so they confirm configuration health rather than whether a given email reached an inbox.
- Correct SPF, DKIM and DMARC is a precondition, not a performance lever. It lets a receiver verify your sending identity but does not by itself raise reply rates, and any vendor promising that is describing an inference.
Setting up SPF DKIM DMARC correctly is a precondition for cold outbound, not a differentiator. A receiving server that cannot verify your sending domain’s identity has no reliable basis for treating your mail as legitimate, regardless of message quality or sequence structure.
The three records measure distinct things. SPF verifies the sending IP against your envelope-from domain. DKIM verifies message integrity via a cryptographic signature tied to a domain you control. DMARC ties both to the visible From address and publishes an enforcement policy that receivers can apply. None of them observe engagement, score sender reputation, or control what a mailbox provider’s algorithm decides to do next.
Any tool or consultant that implies correct authentication records will produce a measurable lift in reply rates is selling an inference. Get the records right, monitor the aggregate reports until your alignment pass rate is stable, and direct your optimization work toward the variables that actually differentiate effective cold outreach: list quality, message relevance, sending volume discipline, and prompt removal of unengaged contacts from rotation.
Frequently Asked Questions
Does configuring SPF, DKIM and DMARC on a cold outbound domain improve inbox placement for sales emails?
No. Passing SPF DKIM DMARC authentication tells receiving servers that your domain is legitimately controlled and not being spoofed. It doesn’t determine inbox placement. Mailbox providers apply proprietary reputation scoring on top of authentication results, weighing engagement history, complaint rates, and behavioral signals the sender cannot observe or control.
What is the practical difference between relaxed and strict DMARC alignment for SPF and DKIM when using subdomains for outbound?
Relaxed alignment, the default when adkim and aspf tags are omitted, allows an organizational domain match: a message signed by sales.example.com passes DMARC DKIM alignment against a From address at example.com. Strict alignment requires an exact domain match. For most cold outbound subdomain setups, relaxed alignment is the practical choice.
How many DNS lookups can my SPF record safely include when I use Google or Microsoft plus one or more cold email tools?
RFC 7208 allows a maximum of 10 DNS-resolving mechanisms per SPF evaluation. Google Workspace and Microsoft 365 each consume at least one lookup via their include statements. Adding two or more cold email tools via further include chains can push the total past the limit, causing SPF to return permerror and DMARC to treat it as a fail.
When should a B2B sales team move a cold outbound domain’s DMARC policy from p=none to quarantine or reject?
Move to quarantine only after DMARC aggregate reports consistently show the vast majority of your sending volume passing both SPF and DKIM alignment across all sending sources. Most practitioners recommend at least 30 days of p=none monitoring before escalating, to avoid quarantining legitimate cold outbound messages alongside spoofed traffic.
Do I need separate SPF, DKIM and DMARC records for marketing, transactional and cold outbound email, or can they share the same domain?
You can share a domain, but it creates reputation risk: spam complaints or authentication failures from one sending stream affect all traffic from that domain. The standard practice for B2B teams is to isolate cold outbound on a dedicated domain or subdomain with its own SPF DKIM DMARC records, separate from marketing and transactional streams.
Prices, limits and product capabilities were checked on 2026-08-18 and change without notice. Nothing here is a prediction of results for your list, domain or market.

