Gmail, Yahoo and Microsoft Outlook now refuse to trust high-volume mail that is not authenticated, aligned and easy to unsubscribe from, so a gap in DNS or headers can stop your invoices, alerts and newsletters reaching customers. Google and Yahoo started enforcing sender requirements in February 2024, and Microsoft began enforcing its own rules for Outlook.com senders of more than 5,000 messages a day on 5 May 2025. These rules turned SPF, DKIM, DMARC and one-click unsubscribe from good practice into a condition of delivery. This guide sets out what each provider requires, how the requirements overlap, how to bring every sending platform into compliance without breaking legitimate mail, and how to measure it. It is for email administrators, marketing operations and security teams who own a domain that sends at scale. The record syntax itself is covered in the DMARC, SPF and DKIM Guide; this page focuses on the provider rules and the operating model.
Key takeaways
- The 5,000-a-day line is the trigger. Google applies its stricter rules to senders of 5,000 or more messages a day to personal Gmail accounts, and Microsoft applies its rules to senders of more than 5,000 a day to Outlook.com.
- Bulk senders need SPF, DKIM and DMARC together. A DMARC policy of p=none is the minimum, but DMARC must pass, which means the From: domain must align with the SPF or DKIM domain.
- One-click unsubscribe is a technical standard, not a footer link. RFC 8058 needs a List-Unsubscribe HTTPS URI, a List-Unsubscribe-Post header and a DKIM signature covering both.
- Spam complaints are now a hard limit. Google and Yahoo both set 0.3% as the line not to cross; Google advises keeping it below 0.1%.
- Every third-party platform that sends as your domain is in scope. Marketing, CRM, ticketing and billing tools each need aligned DKIM, and their API keys are now a deliverability and impersonation risk.
What each mailbox provider requires
The three providers publish their rules separately and in different levels of detail. The table below records what each provider's own pages stated when checked on 27 October 2026.
| Requirement | Google (Gmail) | Yahoo | Microsoft (Outlook.com) |
|---|---|---|---|
| Who it applies to | All senders, with extra rules for 5,000+ messages a day to personal Gmail accounts | All senders, with extra rules for bulk senders | Senders of more than 5,000 messages a day |
| Enforcement start | 1 February 2024 | February 2024, gradual rollout through the first half of 2024 | 5 May 2025 |
| SPF and DKIM | All senders: SPF or DKIM. Bulk: both | All senders: SPF or DKIM. Bulk: both | SPF, DKIM and DMARC required |
| DMARC | Bulk: required, policy may be none | Bulk: at least p=none and must pass; rua tag strongly recommended | Required |
| Alignment | From: domain must align with SPF or DKIM domain | From: domain aligned with SPF or DKIM domain; relaxed alignment acceptable | Implied by DMARC pass |
| Spam rate | Below 0.3% in Postmaster Tools; aim for below 0.1% | Below 0.3%, measured on mail delivered to the inbox | Not stated on the postmaster page |
| Unsubscribe | One-click unsubscribe for marketing and subscribed mail, plus visible link in the body | One-click List-Unsubscribe, RFC 8058 POST highly recommended (mailto acceptable), visible link, honour within 2 days | Not stated on the postmaster page |
| Infrastructure | Valid forward and reverse DNS (PTR), TLS for transmission, RFC 5322 formatting, no impersonation of Gmail From: headers | Valid forward and reverse DNS, comply with RFC 5321 and 5322 | Not stated on the postmaster page |
| Action on failure | Not detailed on the guidelines page checked | Gradual enforcement on non-compliant traffic | Non-compliant mail goes to Junk; rejection until DNS records are corrected |
DKIM key length: Google requires at least 1024-bit keys and recommends 2048-bit where the sending platform supports them. Treat 2048-bit as the default for new selectors.
Practical reading: build to the strictest combined baseline (SPF and DKIM, aligned DMARC, RFC 8058, PTR, TLS, spam rate under 0.1%) rather than per provider. One baseline is easier to audit and covers mail that is forwarded between providers.
Authentication and alignment at scale
Most compliance failures are not missing records but unaligned ones. A platform signs with its own domain (for example a shared ESP domain) and passes DKIM, but the d= domain does not match your From: domain, so DMARC fails.
- Inventory every sender: start from DMARC aggregate (rua) reports, which list every source IP and the SPF and DKIM domains seen for your domain. Add tools found through procurement and finance records.
- Prefer DKIM alignment over SPF alignment: DKIM survives forwarding; SPF does not, and SPF has a ten DNS lookup limit that large estates exceed quickly. Configure each platform to sign with a selector under your domain (custom DKIM, often delegated with CNAME records).
- Use subdomains to separate streams: for example news.example.com for marketing and billing.example.com for transactional mail. Reputation, complaint rates and DMARC policy can then be managed per stream, and a marketing complaint spike does not hurt password reset delivery.
- Set the Return-Path deliberately: for SPF alignment, the envelope sender (MAIL FROM) domain must be your domain or subdomain, not the platform's bounce domain.
- Rotate DKIM keys: publish a new selector, switch signing, then remove the old public key after messages in transit have been delivered.
- Plan the DMARC journey past p=none: the providers accept p=none, but none gives no protection against spoofing of your domain. Move to quarantine and then reject once reports show every legitimate source aligned. See the DMARCbis Changes Guide for the updated specification.
| Sending source | Typical alignment problem | Fix |
|---|---|---|
| Email service provider for marketing | Signs with shared ESP domain | Custom DKIM on a marketing subdomain; branded Return-Path |
| CRM or sales engagement tool | Sends through user mailboxes and its own servers | Enable custom DKIM or route through your own mail system |
| Helpdesk and ticketing | Envelope sender is the vendor's domain | Custom DKIM, or send replies through your mail server |
| Billing and transactional API | Default domain left in place after onboarding | Domain verification in the provider console; separate subdomain |
| On-premises applications and printers | Relay through an IP with no PTR or no DKIM | Relay via the corporate mail gateway that signs outbound mail |
| Forwarded and mailing list mail | SPF breaks and content changes break DKIM | Recipients and lists use ARC; senders keep DKIM robust and avoid altering content after signing |
One-click unsubscribe done properly
RFC 8058 (Standards Track, January 2017) defines one-click unsubscribe. The requirements that cause failures:
- List-Unsubscribe: must contain one HTTPS URI; a mailto URI may also be included.
- List-Unsubscribe-Post: must contain the single value List-Unsubscribe=One-Click.
- DKIM coverage: the message needs a valid DKIM signature that covers both headers, which means both names appear in the signature's h= tag. A gateway that adds the headers after signing breaks this.
- The POST endpoint: the receiver sends the request without cookies or HTTP authorisation, and the sender must not answer with a redirect. Embed an opaque, hard-to-forge identifier in the URI and verify it server-side, so the endpoint cannot be used to unsubscribe arbitrary addresses.
- Processing time: Yahoo requires unsubscribes to be honoured within 2 days. Make suppression lists propagate across every platform that mails the same audience within that window.
- Visible link: Google and Yahoo also want a clearly visible unsubscribe link in the body.
Scope: the unsubscribe requirement applies to marketing and subscribed messages. Transactional mail (receipts, password resets, security alerts) is a separate stream and is best kept on a separate subdomain so it is not judged with marketing mail.
Spam rate and reputation management
- Measure where providers measure: Google Postmaster Tools shows spam rate, reputation, authentication and delivery errors for mail to personal Gmail accounts, once the domain is verified. Data can be missing at low daily volume. Yahoo calculates spam rate on mail delivered to the inbox.
- Treat 0.1% as the operating ceiling and 0.3% as an incident. A single badly targeted campaign can take a domain over the line.
- Consent and list hygiene: confirmed opt-in, removal of hard bounces, sunset rules for disengaged recipients and no purchased lists are the controls that move complaint rates.
- Warm up new IPs and domains gradually rather than moving all volume at once.
- Infrastructure basics: forward-confirmed reverse DNS for every sending IP, TLS on outbound SMTP and RFC 5322 conformant headers.
Where identity fits: sending platforms are non-human identities
Once DKIM is delegated to a platform, anyone holding that platform's API key can send fully authenticated, aligned mail as your brand. DMARC at p=reject does not help, because the mail passes. The Mailchimp breach shows the pattern: attackers used an internal support tool to obtain customer API keys, and phishing aimed at a customer's contacts followed within a week.
- Least privilege keys: issue send-only keys per application, not full account keys.
- Vault and rotate: store keys in a secrets manager; rotate on staff departure and on any supplier incident. See the SendGrid, Mailgun and Mailchimp API Keys Security Guide.
- MFA and SSO on platform consoles: console access can create new keys and change DKIM settings.
- Offboard platforms: when a tool is retired, remove its DKIM CNAMEs and SPF include, otherwise it can still send as you.
Implementation plan
- Discover (weeks 1-2): publish DMARC at p=none with a rua address if none exists; collect two to four weeks of aggregate reports; list every source and owner.
- Classify streams: marketing, transactional, corporate and system mail; map each to a subdomain and a responsible team.
- Align (weeks 3-8): enable custom DKIM (2048-bit) and branded Return-Path on each platform; remove unused SPF includes to stay under ten lookups.
- Unsubscribe: implement RFC 8058 headers on all marketing and subscribed mail; test that DKIM h= covers both headers; connect suppression lists across platforms.
- Verify: register domains in Google Postmaster Tools; send test mail to seed accounts at each provider and inspect Authentication-Results headers for spf=pass, dkim=pass and dmarc=pass.
- Enforce (from month 3): move DMARC to p=quarantine with pct ramping, then p=reject, one subdomain at a time, starting with domains that send no mail at all. Rollback is a DNS change back to p=none; keep TTLs short during the change.
- Operate: weekly report review, change control for new sending tools, quarterly key rotation.
Small versus large organisations: a small organisation with one mail platform and one ESP can be compliant in days. A large organisation with dozens of tools needs a DMARC report processor, an owner per sending source and procurement rules that require custom DKIM before a new tool can send.
Choosing between SPF and DKIM alignment: where a platform supports both, align both. Where it supports only one, choose DKIM, because a forwarded message keeps a valid signature while SPF is evaluated against the forwarding server. Choose SPF alignment alone only for internal relays that never forward, and record the exception in the sender inventory.
Reading a test message against the rules
Before and after every change, send a real campaign or transactional message to seed mailboxes at Gmail, Yahoo and Outlook.com and read the raw headers. Check the following in order:
| Header or field | What to look for | If it is wrong |
|---|---|---|
| Authentication-Results | spf=pass, dkim=pass and dmarc=pass, with header.from matching your domain | Find which mechanism failed and which domain it evaluated |
| DKIM-Signature d= | Your domain or subdomain, not the platform's shared domain | Enable custom DKIM on the platform |
| DKIM-Signature h= | Includes from, list-unsubscribe and list-unsubscribe-post | Move header insertion before signing |
| Return-Path | A domain you control that aligns with From: for SPF alignment | Configure a branded bounce domain |
| List-Unsubscribe | An HTTPS URI with an opaque token (mailto optional) | Add the HTTPS endpoint |
| List-Unsubscribe-Post | Exactly List-Unsubscribe=One-Click | Correct the value |
| Received (first external hop) | Sending IP with a PTR record that resolves forward to the same IP, and TLS in use | Fix DNS or the relay path |
Automate this check in a pipeline for each sending platform, so a template change or platform update that drops a header is caught before a full send rather than after complaints rise. Keep the seed results as evidence for audits and supplier reviews.
Detection and measurement
| Metric | Source | Target |
|---|---|---|
| DMARC pass rate for legitimate volume | Aggregate reports | Above 99% per stream |
| User-reported spam rate | Google Postmaster Tools, Yahoo feedback | Below 0.1%, never 0.3% |
| Sending sources without an owner | Sender inventory | Zero |
| Marketing messages with valid RFC 8058 headers | Header sampling | 100% |
| Unsubscribe processing time | Suppression list logs | Under 2 days across all platforms |
| Domains at p=reject | DNS inventory | All non-sending domains, then all sending domains |
Security signals: alert on new sending IPs passing DKIM for your domain, new API keys created on sending platforms, and DMARC failures from unknown sources, which indicate spoofing attempts (ATT&CK T1566 Phishing) or abuse of a compromised email account (T1586.002).
Framework mapping
| Control area | NIST SP 800-53 Rev 5 | NIST CSF 2.0 | Other |
|---|---|---|---|
| Spam and phishing protection | SI-8 Spam Protection | DE.CM-09 | CIS Controls v8.1 Control 9 |
| Transport security (TLS) | SC-8 | PR.DS-02 | ISO/IEC 27001:2022 A.5.14 Information transfer |
| DNS record and platform configuration | CM-2, CM-6 | PR.PS-01 | Change control for SPF, DKIM, DMARC |
Common failure patterns
- DKIM passes but DMARC fails: the platform signs with its own domain. Check d= against From: for every source.
- Unsubscribe headers added after signing: a gateway or ESP inserts List-Unsubscribe after DKIM is applied, so the signature does not cover it and one-click is not honoured.
- Transactional and marketing on one domain: a complaint spike from a campaign degrades password reset and invoice delivery.
- SPF over ten lookups: adding an include for every tool produces a permerror and SPF fails everywhere.
- Stopping at p=none: deliverability is satisfied but the domain stays spoofable.
- Forgotten platform keys: an old ESP account with a live API key and DKIM CNAME still sends authenticated mail, as the Mailchimp incident showed.
Practitioner checklist
- Inventory every service sending as your domains, with an owner and a stream classification.
- SPF and 2048-bit DKIM on every source, with DKIM aligned to the From: domain.
- DMARC published on every domain with a rua address, and a dated plan to reach p=reject.
- Separate subdomains for marketing and transactional mail.
- RFC 8058 headers on all marketing mail, covered by DKIM, with a visible body link.
- Suppression lists synchronised across platforms within 2 days.
- Domains verified in Google Postmaster Tools; spam rate reviewed weekly against 0.1%.
- PTR records and TLS on all sending IPs.
- Sending platform API keys scoped, vaulted, rotated and removed at offboarding.
Standards and references
- Google: Email sender guidelines
- Yahoo: Sender Best Practices
- Microsoft: Outlook.com postmaster requirements
- IETF: RFC 8058 Signaling One-Click Functionality for List Email Headers
- Google: Postmaster Tools
- M3AAWG: Published documents, including Sender Best Common Practices
Related NHI Mgmt Group resources: DMARC, SPF and DKIM Guide · DMARCbis Changes Guide · SendGrid, Mailgun and Mailchimp API Keys Security Guide · Email Security Guide