Two years in, the requirements are still the same. What changed is what happens when you ignore them.
When Google and Yahoo announced bulk sender requirements in October 2023, the immediate reaction from most senders was cautious optimism — these were largely best practices already, and enforcement started gently, with temporary deferrals. By November 2025, the caution was gone. Gmail moved to permanent rejections. Microsoft followed independently with its own equivalent rules. The window for treating this as optional closed.
This is the current state, updated for June 2026, covering what every requirement actually means technically, where enforcement stands today, and what changed in the DMARC standard itself.
Who These Requirements Apply To
Gmail defines a bulk sender as any domain sending 5,000 or more emails per day to personal Gmail addresses. [1] The threshold applies to the domain, not the ESP account — all message types count together (marketing, transactional, automated), and subdomain volume rolls up to the parent domain.
Two important points most guides bury: first, once a domain crosses the 5,000/day threshold, it is permanently classified as a bulk sender even if volume later drops. Second, for most B2B SaaS companies with 500+ active customers, hitting the Gmail threshold is automatic once lifecycle email is factored in alongside marketing campaigns.
Yahoo mirrors Gmail's threshold and requirements. Microsoft's equivalent rules cover @outlook.com, @hotmail.com, and @live.com addresses, with enforcement active since May 5, 2025.
The Three Requirements — What They Actually Mean
1. Email Authentication: SPF, DKIM, and DMARC With Alignment
All three must be present and passing. But presence alone isn't the requirement — alignment is. DMARC alignment checks that the domain authenticated by SPF or DKIM matches the domain visible to the recipient in the From: header. A DKIM signature that passes cryptographically but points to an ESP's domain rather than yours fails alignment.
Common failure modes that the requirement surfaces:
SPF over the 10-lookup limit. Adding a new CRM, helpdesk, or marketing tool can push SPF past the hard limit. The record fails silently — no error message, just authentication failure on every send. [2]
DKIM CNAME misconfiguration. Mailchimp, Brevo, and GoHighLevel all require CNAME records for DKIM. If those CNAMEs aren't propagated or are incorrectly entered, DKIM passes cryptographically but fails alignment — invisible at p=none, fatal at p=reject.
DMARC at p=none indefinitely. Google accepts it for now. Microsoft explicitly stated in 2025 that p=none is a negative trust signal. The realistic 2026 baseline for serious senders is p=quarantine. [3]
2. Spam Complaint Rate Below 0.10%
Gmail measures complaint rate daily via Google Postmaster Tools. The working ceiling for stable inbox placement is 0.10%. Hard enforcement begins at 0.30%. [4] Above 0.30%, Gmail throttles sending and holds recovery until the rate stays below 0.10% for seven consecutive days — there is no manual appeal process.
Yahoo operates its own Complaint Feedback Loop independently of Gmail's Postmaster Tools. Monitoring Gmail alone is not sufficient for senders with mixed Gmail/Yahoo audiences. [5]
3. One-Click Unsubscribe (RFC 8058)
Marketing email from bulk senders must include List-Unsubscribe and List-Unsubscribe-Post headers per RFC 8058. Gmail surfaces this as a native unsubscribe button at the top of the email interface. Requests must be processed within two days. [6]
The mechanism matters beyond compliance: recipients who can't find an easy opt-out click Report Spam instead. Each spam report damages complaint rate in ways that automated unsubscribes do not. Roughly 30% of bulk senders were still missing this two years after the February 2024 deadline. [7]
Enforcement Timeline: Where Things Stand
| Provider | Initial enforcement | Current state (June 2026) | Failure result |
|---|---|---|---|
| Gmail | Feb 2024 — temporary deferrals | Nov 2025 — permanent rejections | 5xx bounce |
| Yahoo | Feb 2024 — equivalent to Gmail | Active enforcement, mirrors Gmail | Rejection / spam |
| Microsoft | May 5, 2025 | Hard rejections active | 550 5.7.515 |
| Apple Mail | Not enforced formally | Applies same best-practice signal | Spam placement |
Compliant senders average 89% inbox placement in 2026, while non-compliant senders see 22–34% of their email routed to spam — a 3× to 7× penalty.
What Changed in June 2026: DMARCbis RFC 9989
In May 2026, the IETF published a formal update to the DMARC specification — RFC 9989, 9990, and 9991, collectively known as DMARCbis — replacing the original RFC 7489 from 2015. This is not a breaking change. Existing v=DMARC1 records remain valid. There is no "DMARC2." But several tags were added or retired. [8]
DMARCbis RFC 9989 — Tag Changes Summary
Deprecated (remove from records): pct=, rf=, ri=
New tags: np= (non-existent subdomain policy), t= (replaces fractional pct= for staged rollouts), psd= (public suffix domain flag)
Receiver adoption is phased. During the transition, cross-version records including both old and new tags are recommended — don't remove pct= until your provider confirms RFC 9989 support.
The np= tag is the most immediately useful addition. It sets a separate policy for non-existent subdomains — addresses like noreply@phantom.yourdomain.com that your organisation never created. Previously, the sp= tag covered all subdomains equally. np= lets you apply np=reject to non-existent subdomains even while keeping a more permissive policy on real sending subdomains.
The t= tag replaces fractional pct= values. Where you previously might have used pct=25 during a staged rollout, you now use t=y — which signals testing mode and requests receivers to treat the policy one level more leniently. t=y is all-or-nothing (unlike the granular percentage of pct=), so staged rollouts now require either t=y or a full policy progression.
An example record reflecting 2026 best practice during the RFC 9989 transition:
rua=mailto:dmarc-reports@yourdomain.com;
adkim=s; aspf=s
# pct= deprecated in RFC 9989 — remove if present
# np=reject: blocks spoofing of non-existent subdomains
# adkim=s / aspf=s: strict alignment (recommended for bulk senders)
2026 Compliance Checklist
- SPF record published, all sending sources listed, lookup count ≤ 10
- DKIM configured for every ESP and sending tool — CNAMEs verified and propagated
- DMARC record published with
rua=reporting — minimump=none, targetp=quarantine - DMARC alignment confirmed — DKIM
d=domain matches visibleFrom:domain - Subdomains covered —
sp=tag or separate DMARC record for each sending subdomain - RFC 8058 one-click unsubscribe headers present in all marketing email
- Unsubscribe requests processed within 2 days
- Spam complaint rate monitored in Google Postmaster Tools — below 0.10%
- Yahoo Complaint Feedback Loop registered for Yahoo-heavy sender lists
- DMARCbis review:
pct=removed if present, consider addingnp=reject
Frequently Asked Questions
pct=, rf=, and ri= tags are deprecated. Two new tags are added: np= (policy for non-existent subdomains) and t= (replaces fractional pct= for testing). Existing v=DMARC1 records remain valid — no rewrite required, but deprecated tags should be removed when records are next edited.