One-click unsubscribe is not the link in your footer. It’s a pair of headers (RFC 8058) that let the mail client itself offer an Unsubscribe button in its UI:
List-Unsubscribe: <https://example.com/unsubscribe?id=abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
When the recipient clicks the client’s button, their provider sends a POST to your URL. You return a 200 or 202 and actually unsubscribe them—no landing page, no “are you sure”, no login wall.
Why this is a yes
- It’s required for bulk senders. Since February 2024, Gmail and Yahoo require one-click unsubscribe on bulk mail—their threshold is around 5,000 messages a day—alongside DMARC and a spam complaint rate below 0.3%. Microsoft followed with equivalent requirements in 2025. Non-compliance means filtering, not a warning letter.
- It protects the metric that matters. The client-level button catches the frustrated recipient before they reach for the spam button. Every complaint avoided is reputation preserved—you want complaints far under the 0.3% ceiling (under 0.08% is the healthy zone).
- It’s nearly free. Good sending platforms set these headers automatically for broadcast mail (Resend does on Broadcasts). If you’re rolling your own: add the headers, handle the
POST, done.
The gotchas
- Both headers, exactly.
List-Unsubscribealone gives you the older mailto/link behavior; theList-Unsubscribe-Postheader is what makes it one-click. - Handle POST without ceremony. The one-click endpoint must unsubscribe on the
POSTitself. Save the preference-center tour for people who click the link in your footer. - Process it fast. Providers allow a couple of days to honor the request; treating it as instant is both easier and better for trust.
- Keep the footer link too. Headers are for clients that support them; the visible link is for humans and the law.