You've written the outreach email, checked the recipient, and scheduled the send. Then the message lands in spam while a competitor's bland two-line email reaches the inbox. The copy may not be the problem. A missing or broken SPF, DKIM, and DMARC configuration can make a legitimate message look untrustworthy before anyone reads it.
These records work as a system. SPF identifies authorized sending sources, DKIM protects message integrity with a signature, and DMARC connects those checks to the visible From address while telling receiving providers how to handle failures. Publishing only one or two records leaves gaps that become harder to diagnose as more mailboxes, CRMs, and sending domains enter the stack.
Why Your Emails Need All Three Records
A legitimate campaign can still enter spam when one authentication layer is missing. The recipient sees the From address, while the receiving server evaluates the sending source, envelope sender, DKIM signature, and domain alignment. If those signals do not form a consistent chain, the message begins with less trust.
SPF verifies that the sending server is authorized for the envelope domain. It helps limit direct spoofing, but forwarding can change the path and cause SPF to fail. SPF also cannot show whether message content was altered after the message left your infrastructure.
DKIM signs selected message content with a private key. The receiving server retrieves the matching public key from DNS and checks whether the signature still validates. A passing DKIM result supports message integrity and can preserve authentication when forwarding breaks SPF. Plan selector rotation before a provider migration, rather than discovering an old key is still required after DNS changes.
DMARC connects these checks to the domain recipients see in the From header. It requires an authenticated domain to align with that visible domain and lets the owner publish none, quarantine, or reject. Aggregate reports expose failed sources, so you can identify an overlooked CRM, help desk, or outbound platform before changing policy. The standard first appeared in 2012 and became RFC 7489 in 2015, according to this documented history of SPF, DKIM, and DMARC.

Gmail's bulk-sender requirements, effective February 1, 2024, require SPF, DKIM, and DMARC for senders moving more than 5,000 messages per day. DMARC may begin with p=none, as described in Google's published DMARC requirements for bulk senders. Smaller senders still benefit from publishing all three records early. As the sending stack grows, audit SPF's 10-lookup ceiling, rotate DKIM selectors, and use DMARC reports to move toward enforcement without blocking legitimate mail.
How SPF, DKIM, and DMARC Work Together
Before changing DNS, it helps to assign each protocol one job. SPF checks the sending source. DKIM checks the signature. DMARC checks whether at least one authenticated path aligns with the domain recipients see and applies the owner's policy when neither path qualifies.
| Protocol | Question It Answers | DNS Record Type |
|---|---|---|
| SPF | Is this sending source authorized for the envelope domain? | TXT |
| DKIM | Does the message carry a valid signature from the signing domain? | TXT or provider-supplied CNAME |
| DMARC | Does an authenticated domain align with the visible From domain, and what should happen on failure? | TXT |
The word alignment causes most early configuration mistakes. A provider can authenticate a message with its own domain, but DMARC cares whether that authenticated domain matches, or is appropriately related to, the domain in the visible From address. SPF alignment uses the domain in the SMTP MAIL FROM or Return-Path. DKIM alignment uses the domain shown in the signature's d= value.
DMARC can pass when either aligned SPF or aligned DKIM passes. That doesn't make the other record unnecessary. A forwarding path may cause SPF to fail while leaving a valid DKIM signature intact. A platform change can do the reverse. Maintaining both gives receiving systems more than one valid route.
For teams auditing the wider setup, this guide to improving email deliverability provides useful context around authentication, reputation, and sending practices. The practical debugging question remains simple: which protocol passed, which domain authenticated, and did that domain align with the visible From address?
Setting Up Your SPF Record the Right Way
SPF belongs as a TXT record on the domain or subdomain used for sending. The value starts with v=spf1, followed by the authorized services, and ends with a mechanism that handles unlisted sources. A single-provider record might look like this:
v=spf1 include:provider.example -all
The actual include must come from the sending provider. Google Workspace, Microsoft 365, a CRM, a transactional platform, and an outbound tool may all provide different authorization values. The record should combine legitimate sources rather than copy a generic template and hope it matches the infrastructure.
Build one precise allowlist
A domain can have only one SPF record. If a DNS zone already contains SPF, the correct action is to edit and merge that record. Publishing a second TXT record beginning with v=spf1 doesn't create a backup. It creates an evaluation problem that can make SPF fail.
Inventory every system that sends using the domain:
- Employee mail: Include the authorized mailbox provider.
- CRM and support tools: Add only platforms that send with the domain in the envelope.
- Transactional mail: Use the provider's documented SPF mechanism where the setup requires it.
- Retired services: Remove old includes instead of leaving them as permanent access.
SPF has a 10-DNS-lookup ceiling. include mechanisms can trigger additional lookups, and nested vendor records can consume the allowance faster than the visible SPF string suggests. The SPF and DKIM configuration benchmark recommends publishing SPF on the sending domain or subdomain, checking the existing configuration first, and verifying the result after DNS changes.
Practical rule: Treat SPF as a precise allowlist, not a catch-all. Merge one record, audit nested lookups, remove stale vendors, and disable DNS proxying on authentication records because proxying can interfere with verification.

Verify the real sending path
A DNS lookup confirms what the record says, not whether every platform uses the domain you expect. Send test messages from each legitimate source and inspect the authentication results. If a CRM uses a different MAIL FROM domain, SPF may pass for that domain while DMARC alignment still fails for the visible From address.
For a growing outbound stack, flattening can reduce dependency on long chains of vendor includes, but static flattening creates its own maintenance burden when providers change infrastructure. Automation is safer when it refreshes authorized sources and alerts the owner before a change removes a legitimate sender.
Generating and Verifying Your DKIM Keys
DKIM usually shouldn't be authored from scratch. The sending platform generates a private key, a public key, and a selector, then tells the operator exactly what to publish in DNS. The public key normally appears as a TXT record, although some platforms supply a CNAME that points to provider-managed DNS.
Publish the selector supplied by the platform
A selector is a label that tells the receiving server which public key to retrieve. Names such as s1, s2, or google._domainkey distinguish one key from another. The selector becomes part of the DNS hostname, so a small copying error can leave the record published but unusable.
The setup sequence is straightforward:
- Open the provider settings. Find DKIM or domain authentication.
- Generate the key pair. Let the platform create the selector and key material.
- Add the supplied DNS record. Copy the CNAME or TXT host and value exactly.
- Return to the provider. Some platforms require a separate activation step after DNS verification.
- Send a test message. Inspect the original headers, not just the delivery result.
A passing test should show dkim=pass, the expected selector, and a signing domain that aligns with the visible From domain. The signature also needs to remain valid after the message travels through the normal sending and delivery path.

Keep rotation from becoming an outage
Selector rotation is where one-time setup becomes operational work. A new selector should be published and verified before the platform begins signing with it. Keeping more than one active selector gives the sender a transition path, so messages signed with the previous key can still validate while the new key is introduced.
Common checks include:
- Selector resolution: The selector in the message points to a public key that resolves in DNS.
- Signature validity: The receiving server reports
dkim=pass. - Domain alignment: The
d=signing domain matches the visible From domain for DMARC. - Content stability: The sending path doesn't rewrite signed headers or body content in a way that invalidates the signature.
- Lifecycle tracking: Old selectors have an owner and removal date rather than remaining forgotten indefinitely.
A valid DKIM signature alone doesn't guarantee DMARC success. The signing domain still has to align, and the message needs a policy record that tells receiving providers how to process failures.
Publishing DMARC and Moving Toward Enforcement
DMARC belongs at _dmarc for the protected domain. A monitoring record can use this structure:
v=DMARC1; p=none; rua=mailto:[email protected]
The p tag defines the requested policy. rua identifies where aggregate reports should go. Before publishing anything, check whether a DMARC record already exists because one domain can have only one DMARC record. The DMARC adoption report from EasyDMARC describes a market where valid DMARC domains rose from 523,921 in 2023 to 858,782 in 2025 and 937,931 in early 2026, with overall adoption reaching 52.1% in 2026. Adoption is growing, but configuration quality and operational follow-through still vary.
Use reports to decide, not guess
p=none is a discovery stage. Aggregate reports show which systems are sending with the domain, whether SPF or DKIM passes, and whether the passing domain aligns. That evidence matters because legitimate traffic often comes from forgotten systems, such as billing platforms, support desks, recruiting tools, or a newly added outbound provider.
The safe progression is:
- Start with
p=none. Collect reports without requesting quarantine or rejection. - Identify legitimate sources. Map each sender to an owner and business function.
- Repair alignment failures. Fix MAIL FROM, DKIM signing, selectors, or vendor configuration.
- Move to
p=quarantine. Ask receiving providers to treat failing messages as suspicious. - Move to
p=reject. Reject messages that fail once legitimate traffic consistently authenticates.
Reports need continuous review during every policy change. A 2025 overview of global adoption found that 83.9% of analyzed domains had no visible DMARC record, 14.9% had reached at least p=none, and 2.5% enforced p=reject, according to Red Sift's guide to global DMARC adoption.
Indefinite
p=noneprovides visibility, but it doesn't provide enforcement. The operating objective is to turn report data into a controlled move toward quarantine and reject.

Teams running outbound programs should also treat authentication as part of launch readiness, alongside warming up an email domain. A domain shouldn't move into stricter policy while new senders are still being added without report visibility.
Fixing the Most Common Configuration Errors
DMARC aggregate reports are most useful when treated as diagnostic evidence. A failure doesn't automatically mean an attacker is sending mail. It may indicate a vendor include that expanded, a forwarding path that changed the source, or a DKIM selector that no longer exists.
SPF failures
Symptom: SPF fails even though the vendor appears in the record.
Likely cause: Nested includes have pushed evaluation beyond the 10-DNS-lookup limit, or a vendor has changed its underlying authorization chain.
Fix: Count recursive DNS lookups, remove unused services, and automate SPF flattening where the sender inventory changes frequently.
Symptom: A legitimate vendor passes intermittently.
Likely cause: The vendor's IP coverage is incomplete, or DNS returned a temporary error during evaluation.
Fix: Use the provider's current authorization record and monitor repeated failures before changing policy.
Symptom: SPF passes, but DMARC fails.
Likely cause: The MAIL FROM domain doesn't align with the visible From domain.
Fix: Configure a custom aligned envelope domain or rely on aligned DKIM for that sending stream.
Symptom: Forwarded mail fails SPF.
Likely cause: Forwarding without SRS presents a new sending source that the original SPF record doesn't authorize.
Fix: Preserve an aligned DKIM path and use a forwarding service that supports SRS where applicable.
DKIM and policy failures
Symptom: DKIM fails after a provider change.
Likely cause: The selector is stale, missing, copied incorrectly, or no longer matches the key used by the platform.
Fix: Generate the selector again, publish the exact provider record, activate signing, and validate a fresh test message.
Symptom: Direct mail passes, but a subdomain stream fails DMARC.
Likely cause: The subdomain uses different selectors, signing domains, or policy behavior.
Fix: Audit each sending subdomain independently and document which service owns every selector.
The common DMARC aggregate report issues guide highlights the same practical failure families, including missing vendor IPs, stale selectors, forwarding, MAIL FROM misalignment, and subdomain mismatches. For a broader security checklist covering business email systems, teams can also review top email security for local businesses.
Keeping Authentication Healthy as Your Stack Grows
Authentication records are living infrastructure. A new CRM, mailbox provider, transactional sender, or outbound subdomain can change the sending map without changing the visible From address. That's how a record that passed during launch becomes incomplete months later.
A lightweight maintenance routine should include:
- Quarterly SPF audits: Remove unused includes and check recursive lookup consumption.
- Planned selector rotation: Publish the replacement DKIM selector before retiring the old one.
- Continuous
ruamonitoring: Review new senders, alignment failures, and unexpected volume patterns. - Dedicated sending subdomains: Keep outbound changes from affecting employee, support, or transactional mail.
- Change ownership: Record which team approves new senders and who responds to authentication failures.
Dedicated subdomains reduce blast radius, but they don't remove the need for separate SPF, DKIM, and DMARC verification. Each stream still needs testing after a platform or DNS change.
The setup is successful only when the next vendor addition, selector rotation, and policy change can happen without breaking legitimate mail.
A managed outbound service such as Eludic's email authentication service can operate authentication, warm-up, and reputation monitoring as part of a campaign that typically goes live in about a week. That approach fits teams that want specialists to maintain the sending stack instead of leaving DNS records and DMARC reports with an already overloaded sales or IT owner.
If authentication is the weak point in an outbound program, Eludic can configure SPF, DKIM, and DMARC, warm the sending infrastructure, monitor reputation, and manage replies through booked meetings. Visit Eludic to start with a short brief and move from technical setup to a managed B2B cold email campaign.
