How we improved unsubscribe links to boost your deliverability

If you've been sending emails for a while, you know that deliverability can feel like a moving target. Inbox providers are constantly tweaking their rules, and what worked yesterday might cause problems tomorrow. Recently, we made some behind-the-scenes improvements to how Postmark generates unsubscribe links. And while you might not have noticed anything different, these changes are helping your emails land in more inboxes.
The problem: header length matters more than you'd think #
Email headers have character limits defined by RFC standards. Most of the time, you don't need to think about this, headers are usually well within bounds. But the List-Unsubscribe header can get surprisingly long depending on what information gets encoded into it.
When unsubscribe URLs exceed certain lengths, some inbox providers (Microsoft in particular) can reject the message entirely, even if everything else about the email is perfectly valid and RFC-compliant. The email passes DKIM checks on other platforms but fails on delivery to Microsoft recipients (not exactly the behavior you'd expect).
What we changed #
We redesigned how we generate unsubscribe links to keep them significantly shorter. Instead of encoding extensive tracking information directly into the URL, we now store that data in our backend and reference it with a compact identifier.
The results speak for themselves: before this change, roughly 1 in 1,000 unsubscribe URLs exceeded RFC standards for header length. Since we deployed the update in December, we've generated over 1.1 billion unsubscribe links with virtually none exceeding safe limits.
This means fewer delivery failures, better inbox placement at Microsoft and other providers, and one less thing you need to worry about.
What you can do to help your own deliverability #
While we've fixed things on our end, there are a few practices that can help keep your email headers lean and your deliverability strong.
Keep metadata concise #
The Metadata object in your API calls is incredibly useful for tracking purposes, but every key-value pair you add contributes to header length. Review your metadata periodically and ask yourself: do you actually use all of this information? Removing unnecessary fields can make a meaningful difference.
Be mindful of subject line length #
Long subject lines, especially those with emojis or special characters, add overhead to encoded headers. Emojis in particular can take up significantly more bytes than plain text when encoded. This doesn't mean you can't use them—but if you're seeing unexplained delivery issues, it's worth checking whether trimming your subject lines helps.
Test with varied recipients #
Delivery behavior isn't uniform across inbox providers. What works for Gmail might not work for Outlook. If your recipients skew heavily toward one provider, consider running periodic tests to catch provider-specific issues early.
If you manage your own unsubscribe process #
By default, Postmark handles the entire unsubscribe flow for your Broadcast emails: lists, landing pages, headers, and links. But if you already have your own systems in place, you can manage unsubscribes yourself. Just keep in mind that this means you're responsible for including the required list-unsubscribe headers and staying compliant with inbox provider requirements from Gmail, Yahoo, and others.
If you're considering this route (or already doing it), our support article on managing your own unsubscribe process covers what you need to know, including how to properly include list-unsubscribe headers in your API or SMTP requests.
Looking ahead #
We're exploring other options to further simplify the recipient experience while keeping header requirements minimal. If you're interested in updates on this feature, keep an eye on our blog and product updates.
Got questions about deliverability or email headers? Our support team is always happy to dig into the details with you. Reach out anytime.