Anyone sending emails from their own servers, transactional systems, or newsletters has noticed a clear shift in how major inbox providers operate. What used to be optional guidance is now a hard requirement: without complete authentication and proper alignment, messages are either routed straight to spam or rejected outright during the SMTP handshake by Google and Yahoo.
When the updated enforcement policies took effect for bulk senders (especially those sending over 5,000 messages daily), I reviewed the DNS and mail configurations across all server domains. Here is the step-by-step implementation to ensure reliable inbox delivery.
Core requirements from Google and yahoo#
Major mailbox providers focus on three main areas to mitigate spam and domain impersonation:
- Complete authentication: Valid SPF and DKIM signatures aligned with the visible header domain (
From:). - Published DMARC record: An active DMARC policy visible in DNS for the root domain.
- Spam control and unsubscribe handling: Maintaining spam complaint rates in Google Postmaster Tools strictly below 0.3% (preferably below 0.1%) and supporting RFC 8058 One-Click Unsubscribe headers on bulk mail.
1. Setting the foundation: SPF and DKIM#
DMARC builds directly upon SPF and DKIM. If your base records are misconfigured, your own security policy might discard legitimate outbound mail.
SPF record#
In your DNS zone for domain.com, publish a single TXT record authorizing only legitimate outbound sending IPs:
domain.com. IN TXT "v=spf1 ip4:192.0.2.10 include:_spf.google.com ~all"
- Using the
~all(SoftFail) qualifier is recommended during the transition phase, allowing DMARC to manage policy outcomes through reports.
DKIM record#
Legacy 1024-bit RSA keys are deprecated for security reasons. Generate 2048-bit RSA keys in your MTA (Postfix, Exim, or control panel) and publish the public key under your chosen selector:
default._domainkey.domain.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
2. Rolling out DMARC in phases#
Enforcing a strict policy (p=reject) immediately without inspecting traffic can break legitimate email sources like billing systems, CRMs, or contact form gateways that might be sending unauthenticated messages.
The recommended approach begins in monitoring mode:
_dmarc.domain.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@domain.com; pct=100; sp=none; aspf=r; adkim=r"
Breakdown of parameters:#
v=DMARC1: Specifies the DMARC protocol version.p=none: Monitoring policy that requests aggregate feedback without altering email delivery.rua=mailto:...: Destination email address for receiving daily XML aggregate reports.pct=100: Applies the policy across 100% of outbound messages.aspf=randadkim=r: Relaxed alignment mode for SPF and DKIM, accommodating organizational subdomains.
Gradual policy progression:#
- Phase 1 (
p=none): Review XML aggregate reports for 2 to 4 weeks to identify and authorize all legitimate sending services. - Phase 2 (
p=quarantine): Directs unauthenticated messages to recipient spam or junk folders. - Phase 3 (
p=reject): Instructs receiving mail servers to drop unauthenticated messages immediately at the gateway.
3. One-click unsubscribe headers#
For promotional mailings, bulk announcements, or high-volume transactional streams, Google and Yahoo require direct one-click unsubscription inside the email client.
Add the following RFC 8058 headers to your outbound mail headers:
List-Unsubscribe: <https://domain.com/unsubscribe?token=abc123xyz>, <mailto:unsubscribe@domain.com?subject=unsubscribe>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
When a user clicks "Unsubscribe" in the Gmail or Yahoo interface, the provider sends an automated HTTP POST request with the body List-Unsubscribe=One-Click to your URL endpoint, processing the removal automatically.
4. Terminal-based verification#
Once DNS changes propagate across nameservers, verify the responses from the terminal:
# Verify DMARC record
dig +short TXT _dmarc.domain.com
# Verify SPF record
dig +short TXT domain.com
# Verify DKIM public key
dig +short TXT default._domainkey.domain.com
# Confirm reverse DNS (rDNS/PTR) resolution
dig -x 192.0.2.10 +short
Ongoing deliverability checklist#
To maintain strong sender reputation over time:
- Register your domain in Google Postmaster Tools to track user-reported spam rates, domain reputation, and authentication pass rates.
- Use a DMARC aggregate analyzer (such as DMARCian, Valimail, or open-source parsers) to parse incoming XML reports.
- Ensure your server's reverse DNS (
PTR) hostname matches theHELO/EHLObanner configured on your MTA.
Setting up SPF, DKIM, and DMARC protects your domain from spoofing attempts while keeping your messages landing directly in the inbox.
Was this article helpful?
Leave a quick reaction to help prioritize future technical guides:
This post is licensed under CC BY-NC.



Comments
Join the discussion below.
0 comments