Preskočiť na obsah
Návody a zdroje

List-Unsubscribe a odhlásenie jedným kliknutím (RFC 2369 a RFC 8058)

Poštoví klienti ako Gmail alebo Yahoo Mail vedia pri hromadných e-mailoch zobraziť vlastné tlačidlo na odhlásenie. Odkiaľ ho berú, určujú dve špecifikácie IETF: RFC 2369 zaviedlo hlavičku List-Unsubscribe, RFC 8058 k nej pridalo odhlásenie jedným kliknutím. Obe sú štandardy IETF (Standards Track).

Prečo na odhlásení záleží

Možnosť odmietnuť ďalšie správy vyžaduje zákon: na Slovensku § 116 ods. 15 zákona č. 452/2021 Z. z. vyžaduje možnosť jednoducho a bezplatne odmietnuť používanie kontaktných údajov pri každej doručenej správe a zakazuje e-maily bez adresy, na ktorú možno poslať žiadosť o skončenie zasielania, v Česku obdobne § 7 odst. 4 písm. c) zákona č. 480/2004 Sb. Čl. 21 ods. 2 a 3 GDPR dáva príjemcovi právo kedykoľvek namietať proti priamemu marketingu. Hlavička List-Unsubscribe je technický spôsob, ako odhlásenie ponúknuť priamo v rozhraní poštového klienta. Odkaz na odhlásenie v texte e-mailu tým nenahrádza: Gmail aj Yahoo pri hromadných odosielateľoch vyžadujú oboje (Požiadavky Gmailu a Yahoo).

RFC 2369: hlavička List-Unsubscribe

RFC 2369 (júl 1998) vymedzuje hlavičky pre e-mailové konferencie: List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner a List-Archive. Hlavička List-Unsubscribe opisuje príkaz, ktorým sa používateľ priamo odhlási zo zoznamu.

Príklady podľa RFC 2369
List-Unsubscribe: <mailto:list-off@example.com>
List-Unsubscribe: <https://example.com/unsubscribe?list=news>, <mailto:unsubscribe@example.com?subject=unsubscribe>
  • Adresy URL sú v lomených zátvorkách. Viac alternatív možno oddeliť čiarkou a poradie zľava doprava je poradie preferencie (oddiel 2).
  • Klient má použiť prvý protokol zľava, ktorý podporuje, a ďalší len vtedy, keď prvý zlyhá (oddiel 2).
  • Premenné časti, ktoré by vypĺňal klient, napríklad adresu používateľa, syntax nepodporuje (oddiel 2). Pri odhlásení jedným kliknutím preto RFC 8058 požaduje, aby príjemcu a zoznam identifikovala sama adresa URL (oddiel 3.1).

RFC 8058: odhlásenie jedným kliknutím

RFC 8058 (január 2017) v úvode opisuje problém bežného odkazu HTTPS v hlavičke List-Unsubscribe: antispamové programy často automaticky sťahujú všetky adresy z hlavičiek správy a odosielateľ nespozná, či požiadavku poslal program, alebo človek. Aby nedochádzalo k nechcenému odhláseniu, odosielatelia vracali stránku s potvrdzovacím krokom, takže odhlásenie nebolo na jedno kliknutie. RFC 8058 preto zavádza druhú hlavičku, ktorou odosielateľ signalizuje, že odhlásenie prebehne jedinou požiadavkou POST.

Hlavičky podľa RFC 8058
List-Unsubscribe: <https://example.com/unsubscribe/opaque-token>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Požiadavky na odosielateľa (oddiely 3.1 a 4):

  1. Správa obsahuje jednu hlavičku List-Unsubscribe a jednu hlavičku List-Unsubscribe-Post.
  2. List-Unsubscribe musí obsahovať jednu adresu HTTPS. Môže obsahovať aj adresy iného typu ako HTTP(S), napríklad mailto.
  3. List-Unsubscribe-Post musí obsahovať presne dvojicu List-Unsubscribe=One-Click.
  4. Adresa musí obsahovať dosť informácií na identifikáciu príjemcu a zoznamu, aby odhlásenie prebehlo automaticky. Má obsahovať nepriehľadný (opaque) alebo ťažko sfalšovateľný identifikátor, ktorý server overí.
  5. Odpoveď na požiadavku POST nesmie byť presmerovanie HTTPS.
  6. Správa musí mať platný podpis DKIM, ktorý pokrýva aspoň hlavičky List-Unsubscribe a List-Unsubscribe-Post (sú uvedené v tagu h=). Bez neho by poštový klient jedno kliknutie ponúkať nemal.

Požiadavky na príjemcu (oddiely 3.1 a 3.2):

  • Poštový klient pošle požiadavku POST na adresu HTTPS a v tele odovzdá dvojicu z hlavičky List-Unsubscribe-Post, ako multipart/form-data (odporúčané) alebo application/x-www-form-urlencoded.
  • Požiadavka nesmie obsahovať cookies, autorizáciu HTTP ani iné kontextové informácie.
  • Klient nesmie požiadavku POST poslať bez súhlasu používateľa. Kedy a ako súhlas získa, špecifikácia neurčuje.

Prečo POST, a nie len odkaz

Podľa úvodu RFC 8058 umožňuje požiadavka POST odosielateľovi odlíšiť odhlásenie jedným kliknutím od ostatných požiadaviek na adresu, napríklad od automatického stiahnutia antispamovým programom, a spracovať ho bez ďalšieho zásahu príjemcu. Pri ručnom odhlásení cez tú istú adresu (GET) môže odosielateľ naďalej zobraziť stránku s potvrdením: cieľom požiadavky POST je podľa oddielu 3.2 tá istá adresa ako pri ručnom odhlásení, takže oboje obslúži ten istý server.

Časté otázky

Stačí hlavička List-Unsubscribe s adresou mailto?

Pre RFC 2369 áno. Na odhlásenie jedným kliknutím podľa RFC 8058 musí hlavička obsahovať adresu HTTPS. Google uvádza, že odkazy mailto jeho požiadavku na jedno kliknutie nespĺňajú, Yahoo metódu mailto označuje za prijateľnú a metódu POST podľa RFC 8058 silne odporúča.

Smie stránka na odhlásenie presmerovať?

Odpoveď na požiadavku POST podľa RFC 8058 nesmie byť presmerovanie HTTPS (oddiel 3.1).

Prečo Gmail tlačidlo na odhlásenie nezobrazuje, aj keď hlavičky mám?

RFC 8058 v oddiele 4 uvádza, že bez platného podpisu DKIM, ktorý obe hlavičky pokrýva, by príjemca jedno kliknutie ponúkať nemal. Google v častých otázkach k pravidlám uvádza, že tlačidlo na odhlásenie zobrazuje vedľa mena odosielateľa len pri správach, ktoré prejdú jeho automatickými kontrolami spôsobilosti: správy musia spĺňať požiadavky na odosielateľov a mať správne hlavičky na odhlásenie jedným kliknutím, a to aj vtedy, keď odkaz na odhlásenie obsahujú v tele.

Nahrádza hlavička odkaz na odhlásenie v texte e-mailu?

Nie. Gmail aj Yahoo pri hromadných odosielateľoch vyžadujú okrem hlavičky aj jasne viditeľný odkaz na odhlásenie v tele správy.

Súvisiace

Zdroje

Všetky články