Digizap

Jouw digitale zakmes.

Jouw IP: 216.73.217.62

Kennisbank

List-Unsubscribe: de uitschrijflinks die Gmail en Yahoo eisen

Wie nieuwsbrief verzendt, belooft een weg terug: de lezer moet ergens kunnen uitschrijven. Sinds februari 2024 vragen Gmail en Yahoo die belofte expliciet van bulkverzenders — ruw vijfduizend berichten per dag is hun grens — en één van de meest gemaakte fouten is halve ondersteuning: de ene kop staat er, de andere niet, of de twee spreken elkaar tegen. Het artikel leest wat er in de koppen van zo’n bericht staat, en wat de platforms daar dan in zien.

Uitschrijven leest die koppen in jouw browser: `List-Unsubscribe` entry voor entry uit de hoekhaken-list, de waarde van `List-Unsubscribe-Post` op de letters, en — staat er een DKIM-handtekening in hetzelfde bericht — elke linknaam naast het `d=`-domein ervan. De mail zelf verlaat de browser niet; er wordt geen enkel verzoek gedaan, en geen enkele link uit het bericht bezocht.

Wat erbij hoort is de grens: de tool zegt niet of een link echt uitschrijft, niet of een verzender onder de bulk-eis valt, en niet of een bericht in de inbox belandt. Hij legt de aanbod-kant van de kop op — de beslissing is van het platform, en het schrijven is van jou.

1. Twee koppen, één aanbod

De uitschrijflink heeft een oudere broer: RFC 2369 beschrijft `List-Unsubscribe` als een lijst van URI’s in hoekhaken — één of meer `mailto:`-adressen, één of meer webadressen, of allebei. Ze zegt welke opties er zijn, maar niet hoe makkelijk ze zijn: een `mailto`-optie betekent dat de ontvanger zelf een mail schrijft, een webadres betekent dat de ontvanger klikt, invult en bevestigt.

RFC 8058 voegde de tweede kop toe: `List-Unsubscribe-Post`, met één voorgeschreven waarde, `Unsubscribe=One-Click`. Die zegt dat naar het webadres uit de lijst een POST gestuurd mag worden met precies die inhoud, waarna de ontvanger is uitgeschreven — zonder login, bevestigingsvraag of omweg. Dat is de aanbieding die Gmail en Yahoo bedoelen als ze “one-click unsubscribe” zeggen, en die staat of valt met beide koppen samen: de POST-regel belooft, en alleen een https-link in de lijst maakt haar inlossbaar.

2. Hoe de lijst geschreven wordt

De lezing van de lijst is per entry, want de praktijk is rommelig. Zonder hoekhaken — in strijd met de RFC, maar in het wild veel geschreven — is een entry leesbaar maar kan hij bij strikte parsers verdwijnen. Een paar lege hoekhaken is geen link. Een `mailto` zonder @ is geen adres. Een mailto-query met een onderwerp is netjes wanneer spaties percent-encoded zijn (`?subject=Nieuwsbrief%20afmelden`) en rommelig wanneer er ruwe spaties in staan, want een URI hoort zonder spaties te staan en sommige agents knippen de lijst op een spatie af.

De waarde van de Post-regel wordt op de letters beoordeeld: RFC 8058 kent één vorm. `unsubscribe=one-click` is inhoudelijk hetzelfde aanbod maar schriftelijk afwijkend, en strikte lezers hoeven dat niet te accepteren. Een regel als `Unsubscribe=Later` is geen variatie maar iets anders — en meerdere instanties van beide headers zijn toegestaan (lijst) of niet (POST), dus die worden apart gelezen en apart geteld. En omdat deze lezing alleen het kopengedeel ziet — wat na de eerste lege regel staat, is body — verdwijnt een uitschrijflink die in een handtekeningblok in de body staat niet in de telling, terwijl diezelfde regel in de kop wél meetelt.

3. Link en ondertekening horen bij elkaar

Staat er een DKIM-handtekening in hetzelfde bericht, dan zegt haar `d=`-tag door welk domein het bericht ondertekend werd. Gmail en Yahoo raden aan de uitschrijflink op dat domein te zetten — zelfde domein, of een subdomein ervan — want dan ziet de ontvanger dat link en afzender bij elkaar horen, en een ontvanger die de handtekening vertrouwt, vertrouwt meteen de uitschrijflink.

Een uitschrijflink op een ander domein is niet verboden — mailingdiensten werken er normaal mee — maar het is wel het eerste punt waar een ontvanger twijfelt: hij kan niet uit de kop afleiden of de link bij de afzender hoort of bij een derde. De alignering die hier gemeten wordt, is een naamvergelijking tussen wat een `d=` in de kop zegt en wat een link in de kop zegt; voor de cryptografische waarheid achter die handtekening is er DKIM controle.

4. Waar lezen ophoudt

Beide koppen kunnen perfect geschreven zijn en de uitschrijflink kan nog steeds stuk zijn: een web-adres dat een foutpagina geeft, een mailto die nergens aankomt, een POST die de ontvanger niet uitschrijft. Daarover zegt deze tool niets — hij opent geen enkele link uit de kop. Wat gemeten wordt, is de belofte, niet de inlossing.

En de eis zelf heeft een grens: de platform-eisen gelden voor bulkverzenders, en of een verzender daar onder valt, staat in diens verzendvolume, niet in de kop van één bericht. Voor persoonlijke mail is een uitschrijflink een gebrek als hij ontbreekt, geen regelbreuk. Mailheader analyse legt de reis van hetzelfde bericht op de tijdlijn, e-mailkoppen lezen leest alle koppen die er staan, en SPF, DKIM en DMARC hoort bij de andere helft van wat platforms wegen: wie er zendde, niet alleen wat er beloofd werd.

Meet het zelf: Uitschrijven

Plak de koppen van een nieuwsbrief of mailing en lees de uitschrijflinks: List-Unsubscribe entry voor entry, de one-click-regel op de letters en de verhouding van elke linknaam tot het DKIM-domein. De mail verlaat je browser niet.

Lees verder