Die beiden Kopfzeilen
List-Unsubscribe allein gibt es seit den Neunzigern und erzeugt heute in den meisten Programmen keinen Knopf. Erst die zweite Zeile nach RFC 8058 macht daraus die Ein-Klick-Abmeldung: Sie sagt dem Empfänger, dass er die HTTPS-Adresse per POST aufrufen darf, ohne dass der Nutzer die Seite je sieht.
Was der Endpunkt können muss
- POST verarbeiten — der Empfänger sendet
List-Unsubscribe=One-Clickals Formularinhalt. Ein Endpunkt, der nur GET kennt, tut nichts. - Ohne Anmeldung funktionieren. Der Aufruf kommt vom Mailanbieter, nicht vom Nutzer. Eine Login-Seite dahinter macht die Abmeldung unmöglich.
- Ohne Rückfrage abschließen. Keine Bestätigungsseite, kein zweiter Klick, keine Umfrage. Die Abmeldung ist mit der Antwort erledigt.
- Schnell antworten und mit einem 2xx-Status. Fehler werden von manchen Anbietern als nicht funktionierende Abmeldung gewertet.
- Innerhalb von zwei Tagen wirken. Die Verarbeitung darf asynchron sein, aber nicht wochenlang in einer Warteschlange liegen.
Der Fehler, der Empfänger versehentlich austrägt
Wenn in der Kopfzeile eine HTTPS-Adresse steht, die schon per GET abmeldet, trägt jeder Sicherheits-Scanner, der Links in Mails vorab prüft, den Empfänger aus. Solche Scanner rufen alle URLs in einer Nachricht auf — und die Kopfzeilen gehören dazu.
Deshalb: Die Adresse in List-Unsubscribe darf auf GET nichts verändern. Entweder sie beantwortet GET mit einer Bestätigungsseite und meldet nur auf POST ab, oder sie ist eine eigene Adresse, die ausschließlich POST akzeptiert.
Der Token gehört in die Adresse
Der Endpunkt bekommt keine Anmeldung und keine Sitzung — er muss aus der Adresse allein erkennen, wer sich abmeldet. Dafür gehört in jede Nachricht ein eigener, nicht erratbarer Token, der Empfänger und Liste identifiziert. Eine Adresse mit der E-Mail-Adresse im Klartext ist beides nicht: Sie lädt dazu ein, fremde Empfänger auszutragen.
Und der Link im Fußtext?
Der bleibt. Die Kopfzeile bedient den Knopf im Programm, der sichtbare Link bedient alle, deren Programm den Knopf nicht anzeigt. Beide sollten dieselbe Abmeldung auslösen — unterschiedliche Wege mit unterschiedlichem Ergebnis sind die häufigste Ursache für „ich habe mich abgemeldet und bekomme trotzdem Post“.
Wo die Kopfzeilen nicht hingehören
In Transaktionsmails — Rechnungen, Passwortmails, Bestellbestätigungen — haben sie nichts zu suchen. Ein Empfänger, der sich dort abmeldet, bekommt anschließend keine Rechnungen mehr, was niemand beabsichtigt hat.
Die Kopfzeilen müssen signiert sein
Beide gehören in die h=-Liste einer gültigen DKIM-Signatur — RFC 8058 §4 verlangt das für die Abmeldung mit einem Klick ausdrücklich, ohne diese Abdeckung gilt sie nicht als One-Click. Der Grund: Stehen sie nicht in h=, kann ein Server auf dem Weg sie ändern oder entfernen, ohne dass die Signatur bricht — und die Abmeldung zeigt dann auf eine fremde Adresse. Die meisten Signierer nehmen sie nicht von selbst auf, weil sie nicht zu den Standard-Kopfzeilen zählen.