2018/12/12 by Willem.
List-Unsubscribe header critical for sustained email delivery
In our daily work, we still encounter missing List-Unsubscribe headers in emails. Reason enough to publish another BLOG post on this important topic. Specially for PowerMTA users, we released an interesting add-on to streamline MAILTO unsubscribe requests.
What is a List-Unsubscribe header?
When subscribers want to unsubscribe from a mailing list and the unsubscribe process is too complex, subscribers will often use the SPAM button to unsubscribe from the mailing list. And using this SPAM button, will directly negatively impact sender reputation, thus lowering email delivery. That is, unless List-Unsubscribe is used. This feature gives an additional way to unsubscribe and the number of times the SPAM button gets hit will be reduced.
In GMAIL the List-Unsubscribe feature will be visualised for users as:
In the next two paragraphs we will explain the best practice set-up of the List-Unsubscribe header and will share a case study on the situation before and after a List-Unsubscribe header implementation with mailto:link.
Best practice set-up of the List-Unsubscribe header
The List-Unsubscribe is an additional header inserted by email applications. It provides two mechanisms for ISPs to unsubscribe the recipient from a mailing list:
- by following a http:// link, or
- by mailto:link in the email.
The List-Unsubscribe is a standard header and is defined in RFC 2369.
The List-Unsubscribe header formatting is:
Please note that the unsubscribe link (http:// link ) should not require further input from the user and the request should be processed after receiving a POST request. It should be one-click unsubscribe as described in RFC 8058 below :
Resulting POST request
POST /unsubscribe/opaquepart HTTP/1.1
Also, the local part of mailto:link address should not exceed more than 64 characters.
The importance of mailto:link!
Hotmail only supports the mailto:link. When a user clicks on the ‘unsubscribe’ option in Hotmail, Hotmail tries to read the mailto:link in the List-Unsubscribe header. If the mailto:link is missing, it moves all the messages to the Junk folder. All further emails from the same sender will be pre-routed to the Junk folder without notifying the sender through a JMRP complaint. For more information, please read Hotmail Email Sender Guidelines.
Gmail supports both the http:// link and the mailto:link. But when a Gmail user reports email as ‘SPAM’, Gmail will try to unsubscribe by sending empty message to the address in List-Unsubscribe (mailto:). Thereafter, it is more likely to put all new emails from that sender in the SPAM folder. For more information, please read Gmail Email Sender Guidelines.
The mailto:link is supported by Gmail, Hotmail, Yahoo, AOL, ATT, Time Warner and Comcast; European ISPs such as GMX, Libero, Ziggo, Orange, BTInternet; Russian ISPs such as mail.ru and Yandex; and the Chinese domains qq.com, naver.com etc. So most ISPs support (and prefer) mailto:link.
Case study: the effect of implementing a mailto:link
One of Postmastery’s clients implemented a List-Unsubscribe header, but without a mailto:link. As soon as the mailto:link was added, the MTA received 55,000 unsubscribe requests via the mailto:link in 30 days (150 million emails were delivered during this period, but it is still a significant number of unsubscribers). Of these:
- 20,000 unsubscribe requests were received from gmail.com (not including GSuite domains),
- 14,000 were from Yahoo related domains,
- 3,500 were from Hotmail related domains,
- 3,500 were from Apple domains such as icloud.com etc.,
- the remaining were from other ISPs.
Special PowerMTA add-on to process unsubmails
Postmastery built a Webhook programme (in GoLang) called ‘unsubmail’ which is spawned by PowerMTA. It receives emails from the PowerMTA pipe queue and converts them into a calling URL by mapping parameters from the local part of mailto:link to http://URL. Please follow this link for more details.
If you would like to know more about how we can help you solve delivery issues, just send us a message via our contact page.