List-Unsubscribe a odhlášení jedním kliknutím (RFC 2369 a RFC 8058)
Poštovní klienti jako Gmail nebo Yahoo Mail umí u hromadných e-mailů zobrazit vlastní tlačítko pro odhlášení. Odkud ho berou, určují dvě specifikace IETF: RFC 2369 zavedlo hlavičku List-Unsubscribe, RFC 8058 k ní přidalo odhlášení jedním kliknutím. Obě jsou standardy IETF (Standards Track).
Proč na odhlášení záleží
Možnost odmítnout další sdělení vyžaduje zákon: v Česku § 7 odst. 4 písm. c) zákona č. 480/2004 Sb. zakazuje posílat obchodní sdělení bez platné adresy, na kterou může adresát poslat, že další sdělení nechce, na Slovensku obdobně § 116 ods. 15 zákona č. 452/2021 Z. z. Čl. 21 odst. 2 a 3 GDPR dává příjemci právo kdykoli vznést námitku proti přímému marketingu. Hlavička List-Unsubscribe je technický způsob, jak odhlášení nabídnout přímo v rozhraní poštovního klienta. Odkaz pro odhlášení v textu e-mailu tím nenahrazuje: Gmail i Yahoo u hromadných odesílatelů vyžadují obojí (Požadavky Gmailu a Yahoo).
RFC 2369: hlavička List-Unsubscribe
RFC 2369 (červenec 1998) definuje hlavičky pro e-mailové konference: List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner a List-Archive. Hlavička List-Unsubscribe popisuje příkaz, kterým se uživatel přímo odhlásí ze seznamu.
List-Unsubscribe: <mailto:list-off@example.com>
List-Unsubscribe: <https://example.com/unsubscribe?list=news>, <mailto:unsubscribe@example.com?subject=unsubscribe>- Adresy URL jsou v lomených závorkách. Víc alternativ lze oddělit čárkou a pořadí zleva doprava je pořadí preference (oddíl 2).
- Klient má použít první protokol zleva, který podporuje, a další jen tehdy, když první selže (oddíl 2).
- Proměnné části vyplňované klientem, například adresu uživatele, syntaxe nepodporuje (oddíl 2). U odhlášení jedním kliknutím proto RFC 8058 požaduje, aby příjemce a seznam identifikovala sama adresa URL (oddíl 3.1).
RFC 8058: odhlášení jedním kliknutím
RFC 8058 (leden 2017) v úvodu popisuje problém běžného odkazu HTTPS v hlavičce List-Unsubscribe: antispamové programy často automaticky stahují všechny adresy z hlaviček zprávy a odesílatel nepozná, zda požadavek poslal program, nebo člověk. Aby nedocházelo k nechtěnému odhlášení, odesílatelé vraceli stránku s potvrzovacím krokem, takže odhlášení nebylo na jedno kliknutí. RFC 8058 proto zavádí druhou hlavičku, kterou odesílatel signalizuje, že odhlášení proběhne jediným požadavkem POST.
List-Unsubscribe: <https://example.com/unsubscribe/opaque-token>
List-Unsubscribe-Post: List-Unsubscribe=One-ClickPožadavky na odesílatele (oddíly 3.1 a 4):
- Zpráva obsahuje jednu hlavičku List-Unsubscribe a jednu hlavičku List-Unsubscribe-Post.
- List-Unsubscribe musí obsahovat jednu adresu HTTPS. Může obsahovat i adresy jiného typu než HTTP(S), například mailto.
- List-Unsubscribe-Post musí obsahovat přesně dvojici
List-Unsubscribe=One-Click. - Adresa musí obsahovat dost informací k identifikaci příjemce a seznamu, aby odhlášení proběhlo automaticky. Má obsahovat neprůhledný (opaque) nebo těžko padělatelný identifikátor, který server ověří.
- Odpověď na požadavek POST nesmí být přesměrování HTTPS.
- Zpráva musí mít platný podpis DKIM, který pokrývá aspoň hlavičky List-Unsubscribe a List-Unsubscribe-Post (jsou uvedené v tagu
h=). Bez něj by poštovní klient jedno kliknutí nabízet neměl.
Požadavky na příjemce (oddíly 3.1 a 3.2):
- Poštovní klient pošle požadavek POST na adresu HTTPS a v těle předá dvojici z hlavičky List-Unsubscribe-Post, jako
multipart/form-data(doporučeno) neboapplication/x-www-form-urlencoded. - Požadavek nesmí obsahovat cookies, autorizaci HTTP ani jiné kontextové informace.
- Klient nesmí požadavek POST poslat bez souhlasu uživatele. Kdy a jak souhlas získá, specifikace neurčuje.
Proč POST, a ne jen odkaz
Podle úvodu RFC 8058 umožňuje požadavek POST odesílateli odlišit odhlášení jedním kliknutím od ostatních požadavků na adresu, například od automatického stažení antispamovým programem, a zpracovat ho bez dalšího zásahu příjemce. Pro ruční odhlášení přes stejnou adresu (GET) může odesílatel dál zobrazit stránku s potvrzením: cílem požadavku POST je podle oddílu 3.2 stejná adresa jako u ručního odhlášení, takže obojí obslouží stejný server.
Časté otázky
Stačí hlavička List-Unsubscribe s adresou mailto?
Pro RFC 2369 ano. Pro odhlášení jedním kliknutím podle RFC 8058 musí hlavička obsahovat adresu HTTPS. Google uvádí, že odkazy mailto jeho požadavek na jedno kliknutí nesplňují, Yahoo metodu mailto označuje za přijatelnou a metodu POST podle RFC 8058 silně doporučuje.
Smí stránka pro odhlášení přesměrovat?
Odpověď na požadavek POST podle RFC 8058 nesmí být přesměrování HTTPS (oddíl 3.1).
Proč Gmail tlačítko pro odhlášení nezobrazuje, i když hlavičky mám?
RFC 8058 v oddíle 4 uvádí, že bez platného podpisu DKIM, který obě hlavičky pokrývá, by příjemce jedno kliknutí nabízet neměl. Google v častých otázkách k pravidlům uvádí, že tlačítko pro odhlášení zobrazuje vedle jména odesílatele jen u zpráv, které projdou jeho automatickými kontrolami způsobilosti: zprávy musí splňovat požadavky na odesílatele a mít správné hlavičky pro odhlášení jedním kliknutím, a to i tehdy, když odkaz pro odhlášení obsahují v těle.
Nahrazuje hlavička odkaz pro odhlášení v textu e-mailu?
Ne. Gmail i Yahoo u hromadných odesílatelů vyžadují kromě hlavičky i jasně viditelný odkaz pro odhlášení v těle zprávy.
Související
- Požadavky Gmailu a Yahoo na hromadné odesílatele
- SPF, DKIM a DMARC podle specifikací RFC
- GDPR a e-mail marketing
- Slovník pojmů
Zdroje
- RFC 2369: The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields: oddíly 2 a 3.2
- RFC 8058: Signaling One-Click Functionality for List Email Headers: oddíly 1, 3.1, 3.2 a 4
- Google: Email sender guidelines FAQ
- Yahoo: Sender Best Practices
- Zákon č. 480/2004 Sb.: § 7 odst. 4
- Zákon č. 452/2021 Z. z., Slov-Lex: § 116 ods. 15
- Nařízení (EU) 2016/679 (GDPR), české znění, EUR-Lex: čl. 21