Search “one-click unsubscribe” and you’ll get a straight yes on whether it’s required. That yes is only half true, and which half depends on which requirement you’re actually asking about.
There are two separate rules stacked on top of each other here, and most guides treat them as one. The first has applied to you since 2008, whether you send five emails a day or five million. It’s a federal law that says opting out can’t take more than one step. The second is newer and narrower: a technical header that Gmail, Yahoo, and now Microsoft check for specifically. It only kicks in once you’re sending in bulk. You can be fully compliant with one and still failing the other, and knowing which is which changes what you actually need to build.
We’ll walk through both: the actual RFC 8058 mechanics, and exactly where Google, Yahoo, and Microsoft diverge on what counts as compliant.
TL;DR on One-Click Unsubscribe
- One-click unsubscribe actually means two separate requirements: CAN-SPAM’s 2008 one-step law, which applies to every commercial sender, and RFC 8058’s List-Unsubscribe header mandate, which only applies to bulk senders since 2024.
- CAN-SPAM’s actual rule, 16 CFR § 316.5, prohibits requiring more than a reply email or a single web page to process an opt-out, and has applied since May 2008.
- RFC 8058 requires two headers, List-Unsubscribe and List-Unsubscribe-Post, both of which must sit inside a valid DKIM signature’s h= tag.
- The specification explicitly prohibits an HTTPS redirect on the unsubscribe endpoint, a common implementation mistake since many platforms redirect by default for tracking.
- The specification’s preferred POST encoding is multipart/form-data, not the x-www-form-urlencoded format many implementations default to.
- Google accepts only the RFC 8058 header method for one-click unsubscribe; a mailto link doesn’t qualify even as a fallback.
- Yahoo treats RFC 8058 as recommended but still accepts a mailto address as compliant, a more permissive stance than Google’s.
- A technically correct header doesn’t guarantee the native button displays: both Google and Yahoo separately gate that on the sending domain’s own reputation and history.
- Microsoft’s own guidance asks for a functional, visible unsubscribe link without naming the RFC 8058 header method specifically, making it encouraged rather than required, unlike Google and Yahoo.
- An unsubscribe-specific compliance failure typically costs a sender eligibility for Google’s own delivery support once spam complaints climb, a slower consequence than the outright rejection an authentication failure can trigger.
- MailCleanup’s own July 2026 Quality Report found role-based addresses at 1.37% of 653,070 processed, a category with heightened complaint risk since nobody personally opted a shared inbox into a list.
What Is One-Click Unsubscribe?
One-click unsubscribe lets a recipient leave your list with a single click, directly from their inbox, without opening the email or visiting a landing page. The button sits right next to your sender name, not buried in the footer. The direct answer to what is one-click unsubscribe starts there: it’s a header, not a link.
That’s different from a regular unsubscribe link. A footer link still works, but it depends on someone reading the email, finding the link, and clicking through to a page. That page may then ask them to confirm, log in, or wait for a follow-up email. One-click unsubscribe skips all of that. The mailbox provider reads a header in the email itself and builds its own button from it, before the recipient even opens the message.

We verify email lists for a living, and we see the same pattern constantly. The harder you make it to leave, the more likely someone is to hit “Report Spam” instead. One-click unsubscribe exists because that single click is genuinely easier than reporting spam. People who want out take the exit that doesn’t hurt your sender reputation.
Is One-Click Unsubscribe Legally Required?
Not by that exact name, but a version of the one-click unsubscribe law has been on the books since 2008. That’s years before RFC 8058 existed, and it has nothing to do with Gmail or Yahoo. Most coverage of one-click unsubscribe requirements skips this part entirely, part of why “is one-click unsubscribe mandatory” gets such inconsistent answers.
CAN-SPAM’s own regulations, specifically 16 CFR § 316.5, name the outer limit directly. You can’t require anything beyond “sending a reply electronic mail message or visiting a single Internet Web page” to process an opt-out. That’s the actual legal text, in effect since May 21, 2008. In practice, that rules out:
- Requiring a login before the opt-out is processed
- A second confirmation page after the first click
- A form asking why you’re leaving before the request is honored
If your opt-out process includes any of these, it’s already out of step with federal law. That’s true whether you send five emails a day or five million.
This is a genuinely different requirement from the one Google and Yahoo enforce. CAN-SPAM’s one-step rule applies to every commercial sender in the US, no volume threshold, no exemption for small lists. It doesn’t specify a technical header or a particular button. A working, one-step link on a landing page satisfies it. Whether the newer, provider-specific requirement also applies to you depends on your sending volume, covered next.
Our email compliance guide covers CAN-SPAM’s full seven requirements, opt-out timing, sender identification, and the current $53,088 per-email penalty, in depth. The one-step rule above is the piece that speaks directly to one-click unsubscribe; everything else CAN-SPAM requires lives there.
RFC 8058 and the List-Unsubscribe Header: The Technical Requirement Behind the 2024 Mandate
This is the requirement Google and Yahoo actually enforce on your sending, and it works nothing like the legal one-step rule above. CAN-SPAM asks for a single web page. This asks you for a specific pair of email headers, checked by machine before anyone opens the message. Getting the one-click unsubscribe header right is a different kind of task entirely.
RFC 8058 is the technical standard behind one-click unsubscribe. Published in January 2017 by the IETF, it sat mostly unused for seven years before Gmail and Yahoo actually started requiring it in 2024.
Why RFC 8058 Exists
Before this standard existed, the List-Unsubscribe header already had a problem. Anti-spam software routinely scans and fetches every URL sitting in an email’s headers, automatically, without any person clicking anything. If that header held a plain link, the scan itself could trigger a real unsubscribe nobody actually asked for.
You’ve probably experienced the fix senders came up with: a confirmation step. You click the link, land on a page, and click again to confirm. That stopped the automated scans from doing damage, but it also broke the one thing a one-click promise depends on, actually being one click. A real person now had two steps to do what an accidental script trigger did in one.
RFC 8058 solves this by splitting the action in two. A plain GET request, the kind an automated scanner makes without meaning to, does nothing. Only a POST request, something a script can’t trigger by simply fetching a URL, actually processes the unsubscribe. That’s the entire reason the List-Unsubscribe-Post header exists. It tells the mailbox provider it’s safe to skip the confirmation page on your emails, since one-click unsubscribe’s own mechanism already filters out accidental triggers.

The Two Headers and What Each Does
Two headers work together to make one-click unsubscribe function on your own emails. This mechanism is sometimes called one-click list unsubscribe, since it grew out of the older List-Unsubscribe standard. List-Unsubscribe isn’t new, it’s been part of email since 1998, and it can carry a mailto address, an https link, or both. List-Unsubscribe-Post is what RFC 8058 actually adds. Its job is narrow: telling the receiving mailbox that your https link supports true one-click behavior.
The second header only ever carries one exact value: List-Unsubscribe=One-Click. Nothing else. That fixed, predictable content is deliberate. A mailbox provider never has to guess what your POST request is for. The header can’t be used to smuggle in anything beyond a straightforward opt-out.
Here’s roughly what both look like on a real message:
List-Unsubscribe: <https://yourdomain.com/unsubscribe?id=abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-ClickWhen someone clicks the native button their inbox shows them, the mailbox provider sends a POST request straight to your URL. That request carries the fixed value as its body. Your server needs to be listening for that POST specifically. Process the removal the moment it arrives, no page, no second click, no waiting on your end either.
What Most Implementations Get Wrong
Three specific details separate a working one-click unsubscribe implementation from one that looks right but silently fails on you.
Redirects: the specification is explicit that a redirect on your unsubscribe endpoint isn’t allowed. Many platforms redirect by default, often for tracking or to route through a shortener. Browsers have historically turned a redirected POST into a GET, which quietly breaks the mechanism. The request looks like it worked on your end. The unsubscribe never actually processes.
POST encoding: the specification’s own preference is multipart/form-data, the same format a browser uses submitting an ordinary form. Sending it as application/x-www-form-urlencoded is also acceptable. Treating the encoding as an afterthought, or assuming any POST body will do, is a common enough gap. It’s worth checking that explicitly against what your own endpoint actually expects.
DKIM scope: your message needs a valid DKIM signature, and that signature specifically has to cover both List-Unsubscribe and List-Unsubscribe-Post. DKIM works by signing a defined set of headers, named in the signature’s own h= tag, and proving none of them changed in transit. If these two headers aren’t listed in that tag, your signature doesn’t actually cover them. The specification says the mailbox provider should decline to offer a one-click button at all in that case. That’s true even if every other header is present and correctly formatted.
Most ESPs handle this automatically as part of their existing DKIM setup. If you’re sending from your own infrastructure, this is the detail most likely to break your compliance silently. Everything else can look correctly configured while this one thing alone fails.Our DKIM guide covers how the signature and its h= tag actually work end to end.
The One-Click Unsubscribe Requirement Grid
Two very different requirements, one grid. Line them up side by side and the actual shape of whether one-click unsubscribe is mandatory becomes obvious. It depends entirely on which requirement you’re asking about, and satisfying one does nothing for the other. Anyone still asking what is one-click unsubscribe at this point has really been asking two separate questions the whole time.

| Dimension | Legal Requirement (CAN-SPAM) | Technical Requirement (RFC 8058) |
|---|---|---|
| Since when | May 2008 | 2024 at Google and Yahoo; 2025 at Microsoft, as a recommendation |
| Applies to | Every commercial sender in the US | Bulk senders only, 5,000 or more emails a day |
| What satisfies it | A working one-step opt-out, any format | Specific List-Unsubscribe and List-Unsubscribe-Post headers, DKIM-signed |
| Who enforces it | The FTC and state attorneys general | The mailbox provider itself |
| What non-compliance costs you | Legal exposure and FTC penalty risk | A lost native unsubscribe button, and real delivery consequences |
Notice what doesn’t overlap. The legal side is broad but shallow: it reaches every sender, but only asks for one working step. The technical side is narrow but exacting. It only reaches bulk senders, but your format has to be exactly right or it doesn’t count at all. A small list sending under the one-click unsubscribe law’s radar for volume has never had to think about RFC 8058. A high-volume sender with a technically perfect header setup can still be sitting on a violation of that same law. A quietly required login is enough to do it.
Meeting the technical one-click unsubscribe requirements on the right side of this grid says nothing about the left side. Neither requirement substitutes for the other.
How Gmail, Yahoo, and Outlook Actually Implement This
RFC 8058 is one specification, but Google, Yahoo, and Microsoft don’t all treat it identically. Google one-click unsubscribe compliance turns out to be the strictest of the three. Knowing where each provider aligns and where they don’t matters before you build one implementation and assume it satisfies all three.
Gmail accepts the RFC 8058 header method specifically, and nothing else satisfies it. This is the strictest reading of Gmail one-click unsubscribe compliance among the three providers covered here. Google’s own guidance rules out the alternative directly: it still supports mailto links technically, but says plainly that they don’t meet the one-click unsubscribe requirement. A visible link in the email body doesn’t qualify either, no matter how prominent, unless it’s paired with the correct header. That’s a stricter reading than you might assume if you’ve already got a working unsubscribe link somewhere in your template.
Yahoo takes the more permissive position, and most one-click unsubscribe Yahoo comparisons start right here. Its own best-practices documentation calls RFC 8058 the recommended method, but states plainly that a mailto address is also acceptable. The same technical setup, header and all, can be fully compliant at Yahoo while falling short at Google. Google’s own FAQ closes the door on the fallback Yahoo still allows.
There’s a second layer both providers share, separate from whether your header is technically correct. Getting the format right doesn’t automatically mean a recipient sees the native button. At Google, that also depends on a sending history the domain has already built. At Yahoo, it depends on what Yahoo calls sufficient reputation and engagement. A brand-new sending domain with a flawless List-Unsubscribe header can still show nobody the button, at either provider. Neither one trusts the domain enough yet to display it. The header satisfies your requirement either way. Whether a recipient actually sees a button is a separate question neither provider ties directly to compliance.

Our Google and Yahoo bulk sender requirements guide covers the full authentication, spam-rate, and enforcement picture behind both providers’ bulk sender rules. Everything here stays focused on one-click unsubscribe alone.
Does Microsoft Actually Require RFC 8058?
Coverage of this question is genuinely split, and it’s worth being precise about why. Microsoft’s own April 2025 announcement lists SPF, DKIM, and DMARC as requirements your domain must pass, with rejection as the consequence for getting them wrong. A working, visible unsubscribe link sits in a separate part of that same announcement. It’s grouped with sender-address hygiene as a practice for maintaining quality and trust, not in the same must-pass category as authentication. RFC 8058 and the List-Unsubscribe header aren’t named specifically anywhere in Microsoft’s own materials.
That’s a structural difference from Google and Yahoo, not a gap in Microsoft’s documentation. Microsoft supports the RFC 8058 method and will display a native one-click unsubscribe button when it’s present. But a functional unsubscribe link of any kind, including a plain link in the message body, appears to satisfy what Microsoft actually asks of you. That’s the real answer behind most one-click unsubscribe Outlook searches: encouraged, not required, the opposite of Google’s stance. If your setup already meets Google’s stricter bar, you’re covered at Microsoft by default. The reverse isn’t true: meeting Microsoft’s requirement alone wouldn’t get you to Google’s.
How to Implement One-Click Unsubscribe Correctly
Everything above explains what is one-click unsubscribe and what it actually requires. Building the right one-click unsubscribe header depends entirely on how you send. Meeting the one-click unsubscribe requirements correctly means treating that difference seriously from the start.
If You Use an ESP
Most senders don’t build this from scratch. Klaviyo confirms it directly in its own documentation: there’s no manual setup required to meet Google and Yahoo’s one-click unsubscribe requirement. The platform adds both headers to every send automatically.
That automatic handling comes with real conditions attached, not a blanket guarantee regardless of your own setup. The headers only go out correctly if your sending domain is actually authenticated, SPF, DKIM, and DMARC all in place. An unauthenticated send can drop the unsubscribe headers in transit even when your platform generated them correctly. The message also needs to be tagged as marketing, not transactional, in your platform’s own system. Transactional sends are built to skip these headers by design, the same scoping distinction covered earlier.
Don’t assume compliance just because you’re on a major platform. Send yourself a real test email, open it in Gmail, and check the raw headers directly. Don’t just trust a settings page that says everything’s already on.
If You’re Self-Hosting
Building one-click unsubscribe yourself means implementing every piece already covered above, not just adding a one-click unsubscribe header and calling it done:
- A unique, unguessable token per recipient, so a POST request can identify exactly who to remove
- An endpoint that accepts POST requests specifically, using multipart/form-data as the specification’s own preferred encoding
- DKIM signing that explicitly includes both headers in its h= tag, not just DKIM turned on somewhere in your pipeline
- No redirect anywhere in that endpoint’s response
A header that looks syntactically correct can still fail silently, in two specific ways. Your endpoint might not process the fixed List-Unsubscribe=One-Click value correctly. Or your DKIM signing might happen at a different point in your pipeline than where these headers get added. That’s a common gap when unsubscribe handling and message signing live in separate systems.
What Happens If You Don’t Comply
Knowing what is one-click unsubscribe and meeting the one-click unsubscribe requirements on paper isn’t the same as never facing a consequence for getting it wrong. A malformed or missing one-click unsubscribe setup doesn’t fail the same way everywhere, and the actual chain matters more than a bare warning does.
The immediate consequence is technical: if your DKIM signature doesn’t cover both headers, the mailbox provider should decline to show a native unsubscribe button. Your message still delivers. The recipient just doesn’t get the one-click option, even though you technically sent the header.
That’s where the real cost starts, not ends. Someone who can’t find an easy way out doesn’t stop wanting out. Google and Yahoo’s own bulk sender rules classify unsubscribe failures separately from authentication failures for exactly this reason. Getting DKIM or SPF wrong can mean outright rejection. An unsubscribe failure works differently: it typically costs you eligibility for Google’s own delivery support once your spam complaint rate climbs. That’s a slower, compounding consequence, not an immediate one. The full detail on how that enforcement actually escalates lives in that guide; what matters here is the specific mechanism connecting the two.
Some recipients are far more likely to make that connection than others. In MailCleanup’s July 2026 Quality Report, role-based addresses, info@, support@, sales@, and similar shared inboxes, made up 1.37% of the 653,070 addresses processed. Nobody personally opted a shared inbox into your list. Whoever happens to check it has no real ownership over the subscription and far less patience for hunting down an unsubscribe option, one-click or otherwise. A frictionless native button is the one thing standing between that recipient and a spam report. A broken one removes it. Verifying your list before you send is what catches a role-based address before it ever reaches this point.

Common One-Click Unsubscribe Mistakes
- Treating the footer link as covering everything: a working, one-step opt-out link satisfies the one-click unsubscribe law behind CAN-SPAM. It does nothing for Google’s one-click unsubscribe requirement, which checks for a specific header no matter how good your visible link is.
- Redirecting the unsubscribe endpoint: many platforms do this by default for tracking. It silently breaks the one-click mechanism even though the request looks like it succeeded.
- Leaving List-Unsubscribe and List-Unsubscribe-Post outside the DKIM signature’s h= tag: DKIM turned on generally isn’t enough. Your one-click unsubscribe header needs to actually sit inside that signature’s coverage.
- Treating Yahoo’s mailto acceptance as a universal pass: a setup that satisfies Yahoo can still fail Google’s stricter, header-only standard. It can even still fail the older one-click unsubscribe law behind CAN-SPAM, if the flow it points to isn’t genuinely one step.
- Mislabeling promotional content as transactional to dodge the requirement: neither provider polices this distinction from their own side. A newsletter with a receipt bolted onto it is still a newsletter, and treating it otherwise just invites the complaints the requirement exists to prevent.
- Trusting your ESP’s dashboard without a real test: automatic header generation depends on your sending domain actually being authenticated. An unauthenticated send can drop the headers in transit even on a platform that handles this by default.
Verify Your Own One-Click Unsubscribe Setup Next
Everything above covers what one-click unsubscribe actually requires and why. What matters now is confirming your own one-click unsubscribe header setup actually meets it. Don’t assume it does just because a dashboard says compliance is on. That’s especially true if Google one-click unsubscribe compliance is the bar you’re actually being held to.
Start with Google’s own Postmaster Tools, specifically the Compliance status dashboard. It checks your outgoing mail against the exact requirements covered here, alongside authentication and spam rate. If you’re on an ESP, confirm your sending domain is fully authenticated first, since that’s the condition automatic header generation actually depends on. If you’re self-hosting, send yourself a real test message and inspect the raw headers directly. Don’t just trust that your endpoint works because it was built to.
One check now costs a few minutes. Finding out from a spam-folder problem costs considerably more.
FAQs on One-Click Unsubscribe
What is one-click unsubscribe?
The plain answer to what is one-click unsubscribe starts with a single click. A recipient opts out of an email list directly from their inbox, without opening the message or visiting a landing page first. Gmail, Yahoo, and Outlook read a pair of headers on the email itself, List-Unsubscribe and List-Unsubscribe-Post, sometimes called one-click list unsubscribe. They use these headers to build a native “Unsubscribe” button next to your sender name. It’s different from a body link, which still works but usually asks a person to click through, confirm, or wait for a follow-up message.
Is one-click unsubscribe mandatory?
Yes, but under two separate requirements that don’t overlap. A version of the one-click unsubscribe law has required a working one-step opt-out from every commercial sender since 2008, regardless of volume. A separate technical requirement from Google and Yahoo, based on RFC 8058, only applies once you’re sending 5,000 or more emails a day. It specifically requires the header method rather than any working link. You can meet one and fail the other, which is why “is one-click unsubscribe mandatory” rarely gets a single clean answer.
What are the one-click unsubscribe requirements?
The one-click unsubscribe requirements start with two headers: List-Unsubscribe with an HTTPS link, and List-Unsubscribe-Post carrying the fixed value List-Unsubscribe=One-Click. Both also need a valid DKIM signature that explicitly covers them. Your endpoint has to process a POST request instantly, without redirecting anywhere or asking for confirmation. Bulk senders at Google and Yahoo need all of this; smaller senders still need CAN-SPAM’s separate one-step opt-out, just not this specific header setup.
Does my visible unsubscribe link need to be one-click too?
No, and this is a common point of confusion. The one-click requirement applies specifically to the List-Unsubscribe header mechanism, the button your inbox generates on its own. Your visible body link can still lead to a landing page asking for confirmation. That’s actually a reasonable way to filter out accidental clicks from bots and security scanners. Just don’t confuse that link with the header-based mechanism; they’re allowed to behave differently.
Is one-click unsubscribe required for transactional emails?
No. Google’s own exceptions cover password resets, reservation confirmations, and form submission confirmations specifically, and the requirement is scoped to marketing and promotional mail. The harder part is honest labeling: a newsletter with a receipt attached to it doesn’t become transactional just because you call it that. If a message’s real purpose is promotional, it needs the header regardless of what else is in it.
Does Gmail one-click unsubscribe accept a mailto link?
No. For Gmail one-click unsubscribe compliance, Google’s own guidance is explicit: a mailto link doesn’t satisfy the requirement, even as an HTTPS fallback. Yahoo takes a more permissive position here and does accept mailto as compliant on its own. Most one-click unsubscribe Yahoo comparisons come down to that one difference. If you send to both providers, build for Google’s stricter standard first.
Is one-click unsubscribe required in Outlook?
One-click unsubscribe Outlook compliance isn’t required in the same way it is at Google and Yahoo. Microsoft’s own requirements ask for a functional, visible unsubscribe link, without naming the RFC 8058 header method specifically the way Google and Yahoo do. Outlook does support and display the native button when the header is present, so building it doesn’t hurt you there. It just isn’t the specific bar Microsoft itself is checking for yet.
Can a bot accidentally trigger a one-click unsubscribe?
Not through the header mechanism, which is exactly why it was built the way it was. RFC 8058 requires a POST request to actually process the unsubscribe. Automated scanners that fetch links in your headers only ever send a GET, which does nothing. That protection doesn’t extend to a plain link sitting in your visible email body. That’s one reason a confirmation step there still makes sense even after your headers are fully compliant.
