Gmail bulk sender requirements: the full checklist
By Rasket TeamLast updated 14 min read
Written for deliverability specialists, startup founders and email marketers
The short answer
Every sender to personal Gmail accounts must authenticate with SPF or DKIM, have reverse DNS and TLS, and keep spam reports below 0.3% of mail delivered to the inbox. Close to 5,000 a day makes you a bulk sender permanently: you then need both SPF and DKIM, a DMARC record your From domain passes, and one-click unsubscribe on marketing mail.
The requirements at Gmail, Yahoo and Outlook.com
A typical failure: a newsletter that reached Gmail for a year starts bouncing, because your email app signs it with its own domain instead of yours and your domain has since crossed Gmail’s bulk line. Gmail has two tiers: rules for every sender, and extra rules once you send close to 5,000 messages a day to personal Gmail accounts. Yahoo has the same two tiers but no number. Outlook.com has one set, for domains sending over 5,000 a day.
Below that line, your part is to publish the DNS records your email provider gives you, add a DMARC record (v=DMARC1; p=none is enough) and email only people who asked. Meeting the rules keeps mail from being rejected or filtered for breaking one. It does not decide Primary or Promotions: Gmail sorts tabs by sender and content, as the Promotions tab guide explains.
| Requirement | Gmail: every sender | Gmail: bulk | Yahoo | Outlook.com |
|---|---|---|---|---|
| Who it covers | Any volume to @gmail.com and @googlemail.com | Close to 5,000 or more in 24 hours, by primary domain | All senders; extra rules for “bulk” (no number published) | Domains sending 5,000+ a day to its consumer addresses |
| SPF and DKIM | SPF or DKIM | Both | All: SPF or DKIM. Bulk: both | Both must pass |
| DKIM key length | 1024 bits or longer; 2048 recommended | Same | Recommends at least 1024 bits | Not specified |
| DMARC | Recommended | Required; p=none is enough | Bulk: at least p=none, must pass; rua strongly recommended | At least p=none, must pass |
| From domain aligned | Not required | With SPF or DKIM (organizational domain) | Bulk: with SPF or DKIM; relaxed is fine | With SPF or DKIM, both preferred |
| One-click unsubscribe | Not required | Marketing and subscribed mail: RFC 8058 headers plus a visible link | Bulk marketing mail: header required; POST highly recommended, mailto acceptable; visible link | Recommended: a functional unsubscribe link |
| Unsubscribes honoured | Not specified | Within 48 hours | Bulk: within 2 days | Not specified |
| Spam rate | Below 0.3% required; below 0.1% recommended | Same | Below 0.3%, “based on mail delivered to the inbox” | Not specified |
| Server basics: PTR, TLS, RFC 5322 (your provider’s job) | All three required; no @gmail.com in From: | Same | PTR and RFC 5321/5322 required; TLS not specified | Not specified |
Sources: Google’s sender guidelines and FAQ,[1][2] Yahoo’s Sender Hub,[3][4] and Microsoft’s announcement and error page.[5][6] “Not specified” means the requirements page does not list it, not that it is safe to skip. Microsoft’s announcement also recommends a From or Reply-To address that can receive replies, regular removal of invalid addresses, and a gradual move from p=none to p=reject.[5]
The terms, in one line each:
- SPF: a DNS record listing the servers allowed to send for your domain. DKIM: a signature on each message that receivers check against a key in your DNS.
- DMARC: a DNS record that says what to do with mail that has no aligned SPF or DKIM pass, and where to send reports. Aligned: the domain SPF or DKIM vouched for matches the domain in the From: line.
- PTR (reverse DNS) maps the sending server’s IP address to a hostname, which must resolve back to the same address. TLS here means the sending server encrypts the connection when it delivers, with STARTTLS; MTA-STS is a separate standard for mail you receive. RFC 5322 is the standard layout of a message.
Which rows are yours, and which are your provider’s
If you send through an email provider, the rows split the same way almost everywhere. The provider runs the servers and gives you DNS values; you publish them, decide what is marketing and own the spam rate. The last column is Rasket, as its docs and feature pages state it.
| Requirement | Provider | You | On Rasket |
|---|---|---|---|
| SPF and alignment | Gives you the record | Publish it | The return path is a name under your domain, so SPF aligns[10] |
| DKIM | Signs every message with your domain | Publish the public key | A 2048-bit key[10] |
| DMARC | Nothing required | Publish one TXT record | The domain page offers a guided record[10] |
| PTR, TLS, RFC 5322 | All three | Nothing | Nothing for you to set |
| One-click unsubscribe | Adds the headers, hosts the endpoint | Send marketing through the tool that adds them | Every campaign carries the RFC 8058 headers[11] |
| Spam rate | Cannot do it for you | Mail people who asked; make leaving easy | Yours |
With any other provider, three questions to send their support team:
- Do you sign my mail with my own domain (DKIM with d= set to my domain)?
- Is the bounce address, the return path, on my domain?
- Does my marketing mail get Gmail’s one-click unsubscribe (the
List-Unsubscribe-Postheader)?
Who counts as a bulk sender
5,000
Google’s own example: 2,500 messages a day from solarmora.com and 2,500 from promotions.solarmora.com make a bulk sender, because both count toward the primary domain.[2] A subdomain separates the data, which is what a marketing subdomain is for, but not the volume. Only personal addresses count: the rules “don’t apply to messages sent to Google Workspace accounts.”[2] A Workspace address can be on any company domain, so a B2B sender counts only the @gmail.com and @googlemail.com recipients and leaves the rest out.
Google gives no figure for “close to”. Our advice, not Google’s: once any day reaches about 4,000 messages to Gmail addresses, meet the bulk rules. To count, take every system that sends as your domain (the store platform, the email app, the help desk), because Gmail counts by domain, not by tool. Then add up the @gmail.com and @googlemail.com recipients on your busiest day.
A worked example: a store has 12,000 customers and 4,000 use Gmail. One campaign to everyone stays under the line. Send it on a sale day with 1,100 order and shipping emails to Gmail addresses, and the domain has sent 5,100: it is a bulk sender from then on.
Yahoo looks at the sender “at the authenticated domain or From header domain level”, and a bulk sender is one “sending a significant volume of mail. We will not specify a volume threshold.” Spoofed mail counts too: asked whether it counts toward the bulk threshold, Yahoo answers “Yes, those emails will count towards the mail we look at for enforcement.” The rules cover every domain Yahoo Mail hosts, AOL included.[4] Microsoft counts 5,000 or more messages to its consumer services with “the same domain in the 5322.From address”,[6] meaning outlook.com, hotmail.com and live.com addresses.[5]
What each requirement means in practice
SPF, DKIM and alignment
Alignment is checked on the organizational domain, the name you registered, so mail.example.com aligns with example.com under relaxed alignment, the default; a record with adkim=s or aspf=s demands the exact name. Only SPF or DKIM has to align today, but Google says “It’s likely that DMARC alignment with both SPF and DKIM will eventually be a sender requirement.”[2] This is the row that fails when a provider signs with its own domain instead of yours; the mechanics are in DKIM, SPF and DMARC explained.
Gmail “requires a DKIM key of 1024 bits or longer” and recommends 2048.[1] The standard agrees: RFC 8301 says signers “MUST use RSA keys of at least 1024 bits for all keys” and “SHOULD use RSA keys of at least 2048 bits”, tightening RFC 6376, which set 1024 bits for long-lived keys only.[12][13]
DMARC: p=none meets the rule
Gmail says the policy “can be set to none”, Yahoo asks for “at least p=none”, and Microsoft gives v=DMARC1; p=none as its example.[1][3][6] The standard itself is RFC 9989, published in May 2026 to replace RFC 7489, and p=none is still a valid policy under it. Two changes touch this page: the pct tag is gone, and receivers find the organizational domain by walking up the DNS tree instead of reading the Public Suffix List.[14] What p=none does and does not protect, and how to move past it, is in moving DMARC from p=none to p=reject.
One-click unsubscribe, honoured within 48 hours
“Marketing messages and subscribed messages must support one-click unsubscribe, and include a clearly visible unsubscribe link in the message body.”[1] One-click means two headers from RFC 8058, with one HTTPS URL; a mailto: or body link alone does not meet Google’s rule, and the body link may go to a preferences page.[2]
List-Unsubscribe: <https://example.com/unsubscribe/7f3a9c>, <mailto:unsubscribe@example.com>
List-Unsubscribe-Post: List-Unsubscribe=One-ClickRFC 8058 adds three rules that break real setups: a DKIM signature must cover both headers, the POST carries no cookies or login, and your endpoint “MUST NOT return an HTTPS redirect”.[16] Google asks for unsubscribes to take effect within 48 hours, Yahoo within 2 days.[2][3] Building the endpoint is in how to set up one-click unsubscribe.
Spam rate: 0.3% is the rule, 0.1% the target
Gmail measures the rate against mail delivered to the inbox, as Postmaster Tools shows it, requires every sender to stay below 0.3% and asks for below 0.1%.[17][1] Counting only inbox mail makes the number harsher: 10 reports on 10,000 sent is 0.1%, but if 4,000 of them went to spam, the same 10 reports on 6,000 delivered is 0.17%. Postmaster Tools shows the rate for DKIM-authenticated mail only, and may leave out days when your volume is low. Between the two lines there is no cliff; Google calls the impact “graduated”, and says rates “greater than 0.1% have a negative impact on email inbox delivery for bulk senders.” Above 0.3%, a bulk sender also loses mitigation (Google looking into a delivery problem you report through its sender contact form) until the rate stays under it for 7 consecutive days.[2] Bringing it down is in the spam complaint rate guide.
Forwarders and mailing lists: Google no longer lists ARC
If you forward mail or run a list that resends it, the rules changed quietly. In mid-2024 Google’s guidelines told “a forwarding service, including mailing lists or inbound gateways” to “add ARC headers to outgoing email” and lists to add a List-id: header,[7] and its FAQ said “we require that these types of messages have ARC headers”.[8] The pages we read on 17 October 2026 mention neither. The FAQ now says only that “DMARC alignment isn’t required for forwarded or mailing list messages”,[2] and the guidelines link to a forwarding page that asks you to change the envelope sender to your forwarding domain, leave the body and the DKIM-signed headers (Subject, To, Cc, Date, Message-ID) untouched, and add an X-Forwarded-For: or X-Forwarded-To: header.[9] ARC (RFC 8617) is the set of headers a forwarder adds to record the checks it saw.[15] Our advice: if you already add ARC and List-id:, keep them; Google withdrew the request without saying ARC stopped mattering.
Receipts, onboarding and other product email
Every requirement applies to transactional mail except one-click unsubscribe. Google: “One-click unsubscribe is required only for marketing and promotional messages. Transactional messages are excluded from this requirement.” Its examples are password resets, reservation confirmations and form submission confirmations.[2] Yahoo names order confirmations and password resets.[4]
Google does not draw the line for you: “Message recipients, not Google, determine the nature of the messages they receive.”[2] A useful test is whether the email would still go to someone who opted out of marketing. Here is how that test sorts the usual product mail.
| Transactional or marketing | One-click unsubscribe | |
|---|---|---|
| Password reset, login code, security alert | Transactional | Not required |
| Receipt, invoice, shipping notice | Transactional | Not required |
| Trial ending, stating the date and the price | Transactional | Not required |
| Trial ending, with an upgrade discount | Marketing | Required for bulk senders |
| Onboarding tip that sells nothing; a new feature on their paid plan, with no upgrade link | Transactional | Not required |
| Newsletter, product announcement to every user, upgrade pitch | Marketing | Required for bulk senders |
| Abandoned cart, win-back, sale announcements | Marketing | Required for bulk senders |
Complaints about any of them count against the whole domain, so keep promotions out of receipts, as transactional vs marketing email explains. The law sorts the same mail its own way, with the same answer for these rows; it is in the marketing email guide, along with when an upgrade line flips a tip to marketing.
How to check where you stand in ten minutes
Send a real message from your production setup to a Gmail address you control and check that SPF, DKIM and DMARC pass and the DKIM line names your domain, not your provider’s (reading the headers in Gmail). Then look at the records themselves. The first two lines work for any provider; the last two use the return-path name and DKIM selector Rasket’s domain docs list,[10] and another provider will give you its own:
# Exactly one line should start with v=spf1; two is a permanent error
dig +short TXT example.com | grep spf1
dig +short TXT _dmarc.example.com
# If you send through Rasket: SPF is checked at the return path, then the DKIM key
dig +short TXT rasket.example.com
dig +short TXT rasket._domainkey.example.comFor the full picture at Gmail, add your domain to Postmaster Tools and open Compliance status. It is open to every sender and can take up to 7 days to reflect a fix. It reports primary domains only: add news.example.com and you see the status of all of example.com, built from every subdomain’s mail. “No data found” on a row means too little mail to judge, not a pass.[17] Setup is in the Google Postmaster Tools guide. Outside Gmail, Yahoo’s Complaint Feedback Loop sends you a copy of each spam report on DKIM-signed mail,[3] and Microsoft’s SNDS shows complaint data per sending IP, which on a shared IP is your provider’s number.[26]
The first two weeks after you cross 5,000
- Day one: confirm a DMARC record exists, and open Show original on your latest campaign to see
List-Unsubscribe-Post: List-Unsubscribe=One-Click. - If the domain never reached 5,000 before, Google calls it new: one that “hasn’t sent more than 5,000 emails a day to personal Gmail accounts since January 1, 2024”, enforced “on an accelerated timetable”.[2] Fix failures the day you see them.
- Read the spam rate in Postmaster Tools every day, and Compliance status again on day seven.
- Our rule, not Google’s: send the first campaign only to people who clicked or bought in the last 30 days, the second to the last 90 days, the third to the last 180 days. Move to the next group only if Postmaster Tools showed under 0.1% on the days after each send; otherwise repeat the last group that did. If it shows no data for a small send, count the spam reports your provider passes on instead, and wait a few days rather than one. More on pacing is in warming up a new domain.
Enforcement dates, and what failing looks like
| When | Provider | What changed |
|---|---|---|
| 3 October 2023 | Gmail | Requirements announced for senders of 5,000+ a day. |
| 1 February 2024 | Gmail | Requirements apply; a small share of failing mail gets temporary errors. |
| February 2024 | Yahoo | Enforcement begins, rolled out gradually. |
| April 2024 | Gmail | Gradual rejection of non-compliant traffic begins. |
| June 2024 | Gmail and Yahoo | Gmail: one-click unsubscribe deadline; a spam rate above 0.3% ends mitigation. Yahoo: List-Unsubscribe enforcement begins. |
| 5 May 2025 | Outlook.com | High-volume authentication rules in force. |
| November 2025 | Gmail | Enforcement ramps up: failing mail gets temporary and permanent rejections. |
Sources: Google’s announcement and FAQ,[18][2] the FAQ as archived in May 2024,[8] and Yahoo’s requirements page and FAQ.[3][4] Google’s November 2025 notice is about “Messages that fail to meet the email sender requirements”, not only bulk mail, and its error text for unauthenticated mail says “Gmail requires all senders to authenticate”.[2][19] A small sender failing an every-sender rule can be rejected too.
Microsoft’s pages do not agree on when failing mail is rejected. Its postmaster announcement says non-compliant messages will be sent to “the junk folder. Shortly we will reject the messages until the DNS records are corrected.”[20] Its Policies page also says junk folder first, and rejection “If issues remain unresolved”.[21] Its blog, updated in April 2025, says Microsoft decided “to reject messages that don’t pass the required authentication requirements” from 5 May 2025.[5] Plan for rejection, which reads:
550 5.7.515 Access denied, sending domain [SendingDomain] does not meet the required authentication level.For developers: Gmail’s codes and Rasket’s headers
Most Gmail requirements have a temporary code (with a 421 or 451 reply) and a permanent one (usually with 550, though Google lists 5.7.32 with 421, so a bounce classifier should read the 4.x.x or 5.x.x code; your mail server still retries any 4xx reply). Google pairs 4.7.23 with 5.7.25; the rest share a number.[19] Most temporary codes are the same failure as their permanent twin and will not clear on retry. Two can: 4.7.28 is a rate limit, and one 4.7.26 text says “temporary DNS failures prevent authentication”, which a later retry can get past.[19]
| Temporary / permanent | What failed | What to do |
|---|---|---|
| 4.7.26 / 5.7.26 | Neither SPF nor DKIM passed; or DNS failed temporarily (4.7.26 only) | Fix DNS and alert; retry only the DNS case |
| 4.7.23 / 5.7.25 | No PTR record, or it doesn’t match the IP | Ask your provider |
| 4.7.29 / 5.7.29 | Not sent over TLS | Ask your provider |
| — / 5.7.1 | One of several 5.7.1 texts: not RFC 5322 (missing or repeated From:, no Message-ID) | Read the text; fix the message |
| 4.7.27 / 5.7.27 | SPF did not pass (bulk) | Fix DNS and alert |
| 4.7.30 / 5.7.30 | DKIM did not pass (bulk) | Fix DNS and alert |
| 4.7.40 / 5.7.40, or 4.7.31 | No DMARC record, or no policy (bulk) | Publish DMARC; match all three codes |
| 4.7.32 / 5.7.32 | From: not aligned with SPF or DKIM (bulk) | Fix DKIM or return path |
| 4.7.28 / 5.7.28 | Unusual rate of mail from your IP or domain | Slow down; check complaints |
None of these says anything about the recipient, so a bounce handler should not suppress the address on them. Rasket’s handler does not make that distinction: any permanent bounce, these codes included, adds a suppression row. After fixing DNS, lift those rows as in recovering from a wave of bad bounces, which removes them 100 addresses per call with POST /suppressions/batch/remove.[25] 5.7.26 also appears when your own DMARC policy tells Gmail to reject a message, or when SPF ends in -all and fails.[19] The DMARC row lists three codes because Google’s FAQ still gives 4.7.31[2] while the SMTP reference gives 4.7.40 and 5.7.40; we cannot tell you which Gmail sends more often. Yahoo publishes reply classes rather than one code per rule: a 421 or 451 may be retried later, a 553 or 554 should not be.[22]
Frequently asked questions
Does Postmaster Tools tell me whether Gmail classes me as a bulk sender?
Not directly. Google's dashboard help says Compliance status is open to every sender and lists the bulk-only rows (DMARC, one-click unsubscribe, honouring unsubscribes) beside the rest, but it describes no label that says you are bulk. Your send logs are the evidence: one day close to 5,000 Gmail recipients is enough.
Does my email app already add one-click unsubscribe to my campaigns?
Check one real campaign rather than the feature list. Send it to a Gmail address you own, open Show original, and look for the line List-Unsubscribe-Post: List-Unsubscribe=One-Click. Gmail's own Unsubscribe link beside the sender name is not a reliable test, because Google shows it only for senders that pass its eligibility checks.
How should a SaaS send a product update to every user?
As subscribed mail, which needs one-click unsubscribe once you are a bulk sender. On Rasket, put the users in a segment and send a Campaign, from the dashboard or with the broadcasts endpoint. A note about a change to the plan someone pays for, receipts and password resets stay on the transactional API, so they still reach people who unsubscribed.
What changed at Gmail in November 2025?
Enforcement, not the rules. Google's FAQ says that starting November 2025 Gmail is “ramping up its enforcement on non-compliant traffic”, and failing messages “will experience disruptions, including temporary and permanent rejections.” The guidelines' own change log lists nothing added since the TLS requirement in December 2023, so the checklist is the same; the cost of failing it went up.
How soon does a growing SaaS reach 5,000 Gmail messages a day?
Count your busiest single day, not users per day. A product update to every user crosses the line on the day it goes out if 5,000 of them use @gmail.com or @googlemail.com, and that day's receipts, resets and help-desk replies from the same domain add to the count. Plan for the rules before your first all-users send.
Does Gmail reject marketing mail that has no one-click unsubscribe?
Not automatically. Google says it does not reject a message or mark it as spam just for missing the headers. But recipients who cannot leave easily report more mail as spam, which does push your future mail to the spam folder, and a bulk sender without one-click unsubscribe is ineligible for mitigation when delivery goes wrong.
Can I or my email provider get allowlisted instead of meeting the rules?
Not at Gmail. Google's Email sender guidelines say: “Google and Gmail don't accept allowlist requests from email providers. We can't guarantee messages sent by email providers will pass Gmail's spam filters.” The same page asks you to check that your provider follows the guidelines, so meeting the requirements is the only route.
Sources
28 primary sources, each read on the date shown.
See all sourcesHide sources
- 1.Email sender guidelines — Gmail Help, Google,
- 2.Email sender guidelines FAQ — Gmail Help, Google,
- 3.Sender Requirements & Recommendations — Yahoo Sender Hub,
- 4.FAQs: 2024 Email Sender Requirements — Yahoo Sender Hub,
- 5.Strengthening Email Ecosystem: Outlook’s New Requirements for High‐Volume Senders — Microsoft Defender for Office 365 Blog (2 April 2025, updated 29 April 2025),
- 6.Fix NDR error “550 5.7.515” in Outlook.com — Microsoft Support,
- 7.Email sender guidelines, as archived on 1 June 2024 — Gmail Help, Google (Internet Archive),
- 8.Email sender guidelines FAQ, as archived on 27 May 2024 — Gmail Help, Google (Internet Archive),
- 9.Best practices for forwarding email to Gmail — Gmail Help, Google,
- 10.Domains — Rasket docs,
- 11.Campaigns — Rasket,
- 12.RFC 8301: Cryptographic Algorithm and Key Usage Update to DomainKeys Identified Mail (DKIM) — IETF,
- 13.RFC 6376: DomainKeys Identified Mail (DKIM) Signatures — IETF,
- 14.RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC) — IETF,
- 15.RFC 8617: The Authenticated Received Chain (ARC) Protocol — IETF,
- 16.RFC 8058: Signaling One-Click Functionality for List Email Headers — IETF,
- 17.Postmaster Tools dashboards — Gmail Help, Google,
- 18.New Gmail protections for a safer, less spammy inbox — Google Blog (3 October 2023),
- 19.Gmail SMTP errors and codes — Google Workspace Help (updated 13 October 2026),
- 20.Outlook.com Postmaster: Announcements — Microsoft,
- 21.Outlook.com Postmaster: Policies — Microsoft,
- 22.SMTP Error Codes — Yahoo Sender Hub,
- 23.Emails API reference — Rasket docs,
- 24.SMTP relay — Rasket docs,
- 25.Suppressions API reference — Rasket docs,
- 26.Smart Network Data Services: FAQ — Microsoft,
- 27.Campaigns (broadcasts) API reference — Rasket docs,
- 28.Automations — Rasket,
Keep reading
- GuideHow to set up one-click unsubscribe (RFC 8058)Add the List-Unsubscribe and List-Unsubscribe-Post headers, sign both with DKIM and answer the POST: exact headers, a tested Node handler and curl checks.
- GuideHow to lower your email spam complaint rateWhat a good email spam complaint rate is, how Gmail and Yahoo measure it, how to read it on a small list, and the steps that bring it down.
- GuideDMARC p=reject: move from p=none safelyMove DMARC from p=none to p=reject without losing mail: read aggregate reports, align every sender with DKIM, quarantine, then reject, and roll back fast.
- GuideGoogle Postmaster Tools, explainedWhat Google Postmaster Tools shows, how to set it up, what each v2 dashboard means, how to query its API, and what to use when the charts stay empty.
- GlossaryDMARC alignmentAlignment is the part of DMARC that asks whether the domain that passed authentication is the same one the reader sees. A DKIM signature or an SPF check can pass for a domain that has nothing to do with the From header, and on its own that proves nothing. Alignment closes that gap by requiring the two to match, strictly or at the organisational level.
- GlossaryPTR record (reverse DNS)A PTR record maps an IP address back to a hostname, which is the reverse of an ordinary lookup. Receiving mail servers check it on the connecting address, and many refuse or penalise mail from an address with no reverse name, or one whose forward lookup does not return to the same address. It is configured by whoever owns the address block.
- FeatureCampaignsAn audience you own: contacts with typed properties, segments, topics people subscribe to, and campaigns sent through the same pipeline as your other mail.
- FeatureDomainsAdd a domain, publish the generated record set and send from it. A 2048-bit DKIM key per domain, a custom return path, and verification that runs on its own.
Written by the Rasket Team. First published ; last checked against its sources . See something out of date? How we correct guides.