What is RFC 8058 (List-Unsubscribe)?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

If you've ever clicked "Unsubscribe" directly inside Gmail without leaving your inbox, that's RFC 8058 doing its job.

RFC 8058 is the technical standard that defines one-click unsubscribe for email. It specifies two email headers that senders can include in their messages: List-Unsubscribe and List-Unsubscribe-Post. Together, they let mailbox providers surface a visible "Unsubscribe" button right in the email client, and process the unsubscribe automatically behind the scenes.

Here's how the two headers divide the work. The older List-Unsubscribe header (which predates RFC 8058) carries either a mailto address or an HTTPS URL. The newer List-Unsubscribe-Post header is what RFC 8058 actually adds. It tells the receiving client to send an HTTP POST request to that URL when the reader clicks unsubscribe, rather than requiring them to click through to a webpage. That's the "one click" part. The subscriber never leaves their inbox.

Why does this matter for deliverability? When someone can't easily unsubscribe, they hit "Spam" instead. Spam complaints hurt your sender reputation far more than unsubscribes do. Making the exit door easy to find is genuinely good for your deliverability.

RFC 8058 was published in 2017 but was largely optional for years. That changed in 2024. Yahoo Mail and Gmail both announced new requirements for bulk senders, and one-click unsubscribe was on the list. If you send over 5,000 messages a day to Gmail addresses, you need these headers. It's not optional anymore.

Most major ESPs now handle this automatically. If you're using Mailchimp, Klaviyo, or a similar platform, the headers are likely already being added for you. If you're sending via a custom setup or API, you'll need to add them manually. A valid implementation looks something like this:

List-Unsubscribe: <https://yourdomain.com/unsubscribe?uid=abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Still the URL in your List-Unsubscribe header needs to handle POST requests, process the unsubscribe immediately, and return a 200 response. If your endpoint only handles GET requests, the one-click POST will fail silently (which is worse than it sounds).

If you're not sure whether your emails are sending these headers correctly, our free Email Header Analyzer can parse a raw email and show you exactly what's there. Or if something's broken and you need a second set of eyes, our SOS hotline is free.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get a step-by-step implementation checklist for your setup

I need to implement RFC 8058 one-click unsubscribe headers in my email setup. Based on my sending platform and volume, tell me: (1) which headers I need to add and in what format, (2) what my unsubscribe endpoint needs to handle (POST vs GET), (3) how to verify the headers are being sent correctly, and (4) any common mistakes that cause silent failures. My setup is: describe your ESP, custom SMTP setup, or sending API.

Edit the yellow boxes, then send to the AI of your choice.