## Why the Unsubscribe Link Became a Deliverability Feature For years, the unsubscribe link was treated as a legal checkbox: a tiny line of gray text in the footer, often buried under addresses and disclaimers. That era is over. Major mailbox providers now expect bulk senders to support **one-click unsubscribe** through email headers, and they factor how easily people can leave into how much they trust you. The logic is simple.
A subscriber who can't find a clean way out will use the one button that is always visible: "Report spam." Every complaint chips away at your sender reputation, and once complaint rates climb past roughly 0.3%, inbox placement can collapse for your entire domain, not just the campaign that annoyed people. Making it effortless to leave sounds counterintuitive, but it is one of the highest-leverage deliverability moves you can make.
This guide walks through how the List-Unsubscribe header works, how to implement one-click unsubscribe correctly, and how to process opt-outs so they protect your list rather than shrink it unnecessarily. ## What List-Unsubscribe Actually Is `List-Unsubscribe` is an email header defined back in RFC 2369. It tells the receiving mail client where a recipient can opt out, separately from anything in the body of your message.
When a mailbox provider sees a valid header, it can show its own native "Unsubscribe" button near the sender name, which is far more visible than a footer link. The header supports two kinds of targets: - **mailto:** an address the client emails on the user's behalf, for example `mailto:unsubscribe@example.com?subject=unsubscribe`. - **https:** a URL your system controls, ideally one that identifies the recipient and the list.
A typical header that includes both looks like this: ``` List-Unsubscribe: , ``` ### One-Click Unsubscribe (RFC 8058) The classic header has a problem: when a client opens an HTTPS link, security scanners and link previewers can "click" it too, accidentally unsubscribing people.
RFC 8058 fixed this by adding a second header: ``` List-Unsubscribe-Post: List-Unsubscribe=One-Click ``` When both headers are present, the mail client sends an **HTTP POST** request to your HTTPS URL with the body `List-Unsubscribe=One-Click`. No landing page, no confirmation screen, no login. Because scanners typically issue GET requests, the POST requirement separates real opt-outs from automated traffic.
This combination is what providers mean by "one-click unsubscribe," and it is now expected for anyone sending marketing or bulk email at volume. ## The Requirements Bulk Senders Need to Meet The exact thresholds vary by provider, but the common expectations for bulk and marketing mail look like this: 1. **Include both headers** on every marketing and promotional message: `List-Unsubscribe` with an HTTPS URL, and `List-Unsubscribe-Post: List-Unsubscribe=One-Click`. 2.
**Sign the headers with DKIM.** Both headers should be covered by your DKIM signature so they can't be tampered with in transit. 3. **Honor requests quickly.** Process opt-outs within two days. Many senders aim for near-real-time suppression. 4. **Keep a visible body link too.** The header doesn't replace the footer link; regulations and good practice still require a clear unsubscribe option in the message itself. 5.
**Keep complaint rates low.** One-click unsubscribe exists to divert would-be complainers into a harmless exit. Transactional messages such as password resets, receipts, and security alerts generally don't need the header, because users can't meaningfully opt out of them. Be honest about the line, though: a "transactional" email packed with promotions will be judged as marketing.
## How to Implement One-Click Unsubscribe Step by Step ### Step 1: Generate a Unique, Unguessable Token per Message Each URL should identify who is unsubscribing and from what, without exposing raw email addresses. A common pattern is a signed token that encodes the recipient ID, the list or category ID, and a timestamp, verified with an HMAC secret on your server. Avoid sequential IDs or plain email addresses in the URL.
Anyone who can guess a token could unsubscribe someone else. ### Step 2: Add the Headers at Send Time Insert both headers when the message is built, before DKIM signing. Make sure your signing configuration includes `List-Unsubscribe` and `List-Unsubscribe-Post` in the signed header list. If your sending platform builds headers for you, verify the output by viewing the raw source of a test email.
### Step 3: Build a POST Endpoint That Does One Thing Your endpoint should: - Accept `POST` requests with the body `List-Unsubscribe=One-Click`. - Validate the token signature and expiry tolerance. - Add the recipient to the right suppression list immediately. - Return a `200` or `202` status with no redirect and no required interaction. Keep it idempotent. Mail clients may retry, and a second request for an already-unsubscribed address should simply succeed again.
### Step 4: Handle GET Requests Gracefully People will still open the HTTPS link directly from the footer or from some clients. For `GET` requests, show a simple confirmation page with a single button that performs the POST. Don't unsubscribe on GET alone, since that reintroduces the scanner problem. This page is also a good place to offer lighter options, which we'll cover below.
### Step 5: Test Before You Trust It Send test messages to accounts at several mailbox providers and check: - The raw source shows both headers, correctly formatted with angle brackets. - DKIM passes and lists both headers as signed. - The native unsubscribe button appears (this can take time and depends on reputation). - A POST to your endpoint suppresses the test address within seconds.
## Processing Opt-Outs Without Losing More Than You Should One-click means the recipient leaves without seeing your preference page. That's the point, but it raises a fair question: which list did they actually leave? ### Scope Unsubscribes Deliberately Decide in advance what a header unsubscribe means for your program: - **Per-category scope:** the request removes the person from the stream that email belonged to, such as "weekly deals," while keeping product updates.
Encode the category in the token. - **Global scope:** the request removes the person from all marketing email. Simpler, safer, and the right default if you can't clearly separate streams. Whatever you choose, be consistent and conservative. If a subscriber unsubscribes from deals and keeps receiving near-identical promotions under another name, the complaint button is the next stop. ### Suppress Across Channels Thoughtfully An email unsubscribe is not automatically an SMS opt-out, and vice versa.
Store consent per channel. That said, if someone opts out of email, review whether your SMS cadence to them still makes sense. A person who just declined one channel is a warning sign for the other.
### Offer a Softer Landing on the Confirmation Page For people who reach the GET confirmation page, you can present alternatives alongside the unsubscribe button: - Pause emails for 30 or 90 days - Switch to a monthly digest - Choose specific topics Never make these alternatives a hurdle. The unsubscribe action should remain the most obvious control on the page.
## Measuring the Impact Once one-click unsubscribe is live, track these metrics week over week: | Metric | What healthy looks like | |---|---| | Complaint rate | Trending down, ideally below 0.1% | | Unsubscribe rate | May rise slightly at first, then stabilize | | Inbox placement | Stable or improving in seed tests | | Engagement per send | Often improves as disengaged readers leave | A modest rise in unsubscribes is
normal and usually healthy. Those were readers who weren't engaging and who might otherwise have reported spam. The trade is almost always worth it: an unsubscribe costs you one contact, while a complaint costs you reputation with everyone on the list. Pair your unsubscribe data with engagement scoring and sunset policies. If a segment shows rising unsubscribes after a specific campaign type, that's feedback on content or frequency, not just churn.
## Common Mistakes to Avoid - **Unsubscribing on GET.** Link scanners will silently remove real subscribers. - **Requiring a login or extra confirmation** for the one-click POST. - **Forgetting DKIM coverage** of the new headers. - **Using mailto only.** Many providers expect an HTTPS one-click target. - **Slow suppression.** Batch jobs that run weekly will keep emailing people who left, which drives complaints.
- **Sharing one suppression list poorly** across sending domains or brands, so an opt-out on one brand is ignored by another the person considers the same company. - **Reusing tokens indefinitely** without signatures, making them easy to forge. ## How SESender Helps SESender is built so senders can focus on campaigns rather than headers. Unsubscribe handling, suppression lists, and bounce and complaint
Related Articles
Cross-border SMS can outperform email for time-sensitive offers and alerts. It can also become expensive and non-compliant quickly if you treat every...
Marketing automation should reduce busywork and increase relevance. Too often it only increases message volume.
Quiet subscribers drag engagement and inbox placement. Build a sunset ladder that re-engages, offers preferences, then suppresses safely.
Learn how to build a seed panel, read inbox vs spam results, and turn placement signals into fixes—without confusing delivery with engagement.
Email still delivers strong ROI for many brands. AI and machine learning now change how teams personalize, test, and protect inbox placement. Understanding...
Explore the critical shifts in email deliverability for 2026. Learn how to adapt your strategies to ensure optimal inbox placement and maximize your email marketing ROI.
Unlock the secrets to crafting email subject lines that get opened. Dive into 2026's data-driven insights, personalization tactics, and optimization best practices for maximum
Customers jump across devices and channels. One channel rarely carries the full relationship. Coordinating SMS, email, and push keeps brands relevant...
Explore SESender
SESender brings audience preparation, contact validation, sender and provider controls, scheduling, delivery tracking, and campaign reporting into one workspace. Review the current product and pricing information before deciding whether the platform fits your messaging workflow.
Explore the platform or review pricing.