MAILCRAFT
Start Funkcje Cennik O nas Blog Kontakt Zaloguj się Rozpocznij →
Dobre praktyki dostarczalności

List-Unsubscribe i wypis jednym kliknięciem

Drewniany organizer na listy z kopertami, żółte tło

Nagłówek List-Unsubscribe to jedna linia w źródle wiadomości, która decyduje o tym, czy odbiorca kliknie „wypisz mnie”, czy „to jest spam”. Dostawcy skrzynek czytają ją i rysują przycisk wypisu obok nazwy nadawcy, zanim ktokolwiek otworzy treść. Prowadzimy własną flotę serwerów wysyłkowych i widzimy to codziennie: ta sama lista, ta sama treść, brak nagłówka – i skarg więcej. A skarga siedzi na reputacji domeny i IP miesiącami. Wypis? Kasuje jeden rekord z bazy. No i tyle.

Czym jest List-Unsubscribe i dlaczego filtry go wymagają

Formalnie to opcjonalny nagłówek wiadomości, który podaje klientowi pocztowemu adres do rezygnacji z subskrypcji. Warianty są dwa. Starszy to mailto: – klient generuje pustą wiadomość zwrotną na wskazany adres, a nadawca musi ją odebrać i przetworzyć. Nowszy to https:, czyli link do endpointu po stronie systemu wysyłkowego.

Wypis jednym kliknięciem to osobna historia, nadbudowana nad tym drugim wariantem. Wymaga dodatkowego nagłówka List-Unsubscribe-Post o wartości List-Unsubscribe=One-Click. Dopiero on mówi klientowi pocztowemu: możesz wysłać żądanie sam, bez otwierania przeglądarki i bez pytania użytkownika o cokolwiek więcej.

Dlaczego filtry tego pilnują? Bo mają twarde dane o tym, jak ludzie reagują na niechciane wiadomości. Jeśli rezygnacja wymaga szukania odnośnika w stopce, przewijania do końca listu i przejścia przez stronę z formularzem, spora część odbiorców wybierze przycisk zgłoszenia spamu. Jest bliżej. Działa od razu. Cała mechanika List-Unsubscribe sprowadza się do przesunięcia tego wyboru: wypis ma być szybszy niż skarga.

Brak nagłówka w wysyłce masowej duzi operatorzy traktują jako sygnał negatywny sam w sobie, niezależnie od reszty. To nie jest kwestia dobrych praktyk. To wejściówka dla nadawcy, który chce mieć przewidywalną dostarczalność – obok pozostałych wymogów Gmaila i Yahoo wobec nadawców masowych.

Jak to działa technicznie: nagłówki, POST i odpowiedź serwera

W wysyłanej wiadomości umieszczasz dwa nagłówki. Pierwszy zawiera warianty rezygnacji w nawiasach ostrych, rozdzielone przecinkiem. Kolejność ma znaczenie praktyczne: wariant https podajesz jako pierwszy, mailto jako zapasowy dla starszych klientów. Drugi nagłówek, List-Unsubscribe-Post, przyjmuje jedną dozwoloną wartość i włącza obsługę jednego kliknięcia.

Reszta dzieje się bez udziału odbiorcy. Klient pocztowy wysyła żądanie POST na adres z nagłówka. Ciało żądania to List-Unsubscribe=One-Click, wysłane jako dane formularza. Użytkownik nie widzi żadnej strony. Nie ma przeglądarki, nie ma sesji, nie ma ciasteczek.

Endpoint musi więc radzić sobie sam. Wypis zapisujesz od razu, przy tym żądaniu, i odpowiadasz kodem z zakresu 2xx. Ekran potwierdzenia, przekierowanie na stronę marketingową albo prośba o zalogowanie psują całą operację – część klientów potraktuje odpowiedź jako błąd i pokaże odbiorcy komunikat o nieudanym wypisie.

Odbiorcę identyfikuje token w adresie. Podpisany, żeby nikt nie wypisał cudzego adresu przez podmianę parametru, i mapowany dokładnie na jedną parę: adres plus lista.

  • Metoda POST – GET może przyjść od skanera odnośników, więc na nim nie wypisujesz.
  • Brak uwierzytelniania – żadnego logowania, żadnego tokenu sesji.
  • Kod 2xx w odpowiedzi, bez przekierowań.
  • Idempotentność – drugie i trzecie żądanie kończy się tak samo jak pierwsze.
  • HTTPS z ważnym certyfikatem, pełny łańcuch zaufania.
  • Krótki czas odpowiedzi – liczą się sekundy, nie dziesiątki sekund.

Częste błędy wdrożenia i skutki dla dostarczalności

Najczęstszy błąd jest organizacyjny, nie techniczny: nagłówek trafia tylko do części wysyłek. Kampanie go mają, a wiadomości „transakcyjne” z doklejoną ofertą już nie. Ale filtr ocenia treść, nie twoją wewnętrzną klasyfikację. Jest w liście promocja? To jest wysyłka marketingowa.

Drugi błąd: adres https prowadzi na zwykłą stronę rezygnacji z przyciskiem do kliknięcia. Nagłówek jest, wypisu jednym kliknięciem nie ma. Klient pocztowy wyśle POST, dostanie HTML z formularzem i uzna operację za nieudaną.

Trzeci dotyczy domen. Endpoint pod domeną niepowiązaną z tą, która jest uwierzytelniona w DKIM i widnieje w polityce DMARC, wygląda podejrzanie dla filtra i dla odbiorcy, który podejrzy adres. Trzymaj go na subdomenie własnej domeny nadawczej.

Czwarty to token z adresem e-mail wpisanym jawnie. Adresy wyciekają wtedy przez logi serwerów pośredniczących i skanery bezpieczeństwa. Używaj wartości losowej albo podpisanego identyfikatora.

Piąty boli najbardziej: wypis zapisany, ale kolejka wysyłkowa już zbudowana. Odbiorca rezygnuje i dostaje kolejną wiadomość. Wtedy klika zgłoszenie spamu – i ma rację. Skutki są przewidywalne: skargi zamiast wypisów, spadek reputacji domeny oraz adresów IP, filtrowanie do katalogu ze spamem dla całej listy.

Tip: otwórz źródło ostatniej wysyłki w kliencie pocztowym, skopiuj adres z nagłówka i wyślij na niego zwykłe żądanie POST z ciałem List-Unsubscribe=One-Click. Sprawdź kod odpowiedzi i to, czy rekord w bazie faktycznie się zmienił. Zrób to przed startem kampanii, nie po.

Wypis a zgoda: RODO, PKE artykuł 398 i B2B

Techniczna poprawność nie zastępuje podstawy prawnej. Zgoda na wysyłkę handlową jest wymagana także wobec firm. Adres znaleziony w rejestrze przedsiębiorców albo na stronie kontaktowej nie jest zgodą – to tylko dane kontaktowe udostępnione w innym celu. Prawo komunikacji elektronicznej w artykule 398 wprost wiąże marketing bezpośredni z uprzednią zgodą odbiorcy, a RODO wymaga, by dało się ją wykazać.

Stąd bierze się reguła, na której opiera się cały mechanizm wypisu: wycofanie zgody musi być tak samo łatwe jak jej udzielenie. Skoro zapis nie wymagał logowania, wypis też nie może go wymagać. Formularz z prośbą o hasło albo o podanie powodu rezygnacji to naruszenie tej zasady, a nie retencja.

Dowód zgody to konkretny zestaw danych, który trzymasz razem z adresem:

  • data i godzina zapisu,
  • źródło – formularz, import, integracja z zewnętrznym systemem,
  • dokładna treść klauzuli w brzmieniu z dnia zapisu,
  • adres IP przy potwierdzeniu.

Rejestr wypisów prowadź jako osobną historię zdarzeń, nie jako pojedynczą flagę w kolumnie. Flagę da się nadpisać importem. Wpis w historii pokazuje, kiedy i przez jaki kanał ktoś zrezygnował, i pozwala wyłapać adres, który wrócił na listę z nowego pliku CSV. To kwestia procesu, nie samego kodu. U nas zgodność traktujemy jako część produktu: jeśli platforma pozwala łatwo zrobić coś niezgodnego z prawem, to jest wada platformy.

Nagłówek to jedno, uwierzytelnienie domeny to drugie

Wypis jednym kliknięciem nie działa w próżni. Wcześniej musi się zgadzać uwierzytelnienie. SPF, DKIM i DMARC mają być spójne z domeną w polu From oraz z Return-Path. Rozjazd między nimi to typowa przyczyna odrzuceń, którą widać dopiero w nagłówkach odbiorcy.

Return-Path ustawiaj na własnej subdomenie, żeby odbicia wracały tam, gdzie system je przetworzy. Bez tego twarde odbicia giną, a lista puchnie od nieistniejących skrzynek. Do tego PTR dla adresu IP musi wskazywać nazwę hosta serwera wysyłkowego, a ta nazwa ma się rozwiązywać z powrotem na ten sam adres.

Z doświadczenia z własną flotą: nowy adres IP trzeba rozgrzewać. Wolumen rośnie stopniowo, zaczynając od najbardziej zaangażowanych odbiorców, według rozpisanego na osiem tygodni planu warmupu. Nagły skok wysyłki na świeżym adresie kończy się ograniczeniem przepustowości albo blokadą u dużego operatora. Widziałem to nie raz.

Wychodzenie z takiej blokady wygląda zawsze podobnie. Ograniczasz wysyłkę do minimum. Czyścisz listę z adresów, które nie odbierają. Wyłączasz twarde odbicia natychmiast, nie po trzech próbach. Potem wracasz z wolumenem powoli. Naprawdę powoli.

I rzecz najważniejsza: sam nagłówek nie naprawi listy zbudowanej bez zgody. Kolejność działań ma znaczenie. Najpierw podstawa prawna i czysta baza, potem uwierzytelnienie, na końcu mechanika wypisu.

Wdrożenie krok po kroku w praktyce

  1. Wygeneruj token dla pary odbiorca-lista, podpisany kluczem po stronie serwera.
  2. Dodaj oba nagłówki do każdej wysyłki masowej, bez wyjątków dla „półtransakcyjnych” wiadomości.
  3. Wystaw endpoint przyjmujący POST pod HTTPS, na subdomenie domeny nadawczej.
  4. Zapisz wypis w tej samej transakcji, w której odpowiadasz kodem 2xx.
  5. Wstrzymaj kolejkę dla tego adresu natychmiast, łącznie z wiadomościami już przygotowanymi do wysyłki.
  6. Przygotuj stronę potwierdzenia dla odbiorców, którzy trafią na link ręcznie – to osobna ścieżka niż POST.

Widoczny odnośnik rezygnacji w stopce zostaje. Nagłówek go nie zastępuje, bo nie każdy klient pocztowy pokaże przycisk. Dwa równoległe wejścia do tej samej operacji, tyle.

Jeśli odbiorcy tego oczekują, rozdziel listy tematycznie. Globalny wyłącznik jest prosty w kodzie, ale kosztuje cały kontakt tam, gdzie wystarczyłaby rezygnacja z jednego typu wiadomości. Segmentacja po wypisie zatrzymuje część adresów.

Monitoruj dwie liczby po każdej wysyłce: wskaźnik skarg w narzędziach dla nadawców u dużych operatorów i liczbę wypisów. No właśnie – skok wypisów przy stabilnym wskaźniku skarg to sygnał dobry, nie zły.

U nas w platformie do email marketingu MailCraft wysyłka idzie przez własne serwery, z pełnym uwierzytelnieniem domeny i obsługą odbić. Otwarcie o roadmapie: rozbudowane centrum preferencji z segmentacją tematyczną to rzecz, nad którą pracujemy, a nie funkcja, którą dziś zobaczysz w panelu. Pełny zakres możliwości platformy znajdziesz w opisie funkcji.

Podsumowanie: wypis jako element higieny wysyłki

Nagłówek List-Unsubscribe i wypis jednym kliknięciem to minimum przy wysyłce masowej. Nie funkcja premium, nie opcja do rozważenia w przyszłym kwartale. Łatwa rezygnacja zbija liczbę skarg, a skarga waży w ocenie nadawcy nieporównanie więcej niż utrata jednego adresu z listy.

Kolejność prac jest zawsze ta sama: uwierzytelnienie domeny, czysta lista oparta na zgodzie, poprawny endpoint, monitoring po każdej wysyłce. Odwróć ją, a dostaniesz ładny nagłówek na złej podstawie.

Sprawdź własną wysyłkę teraz. Podejrzyj źródło ostatniej kampanii, poszukaj obu nagłówków, wyślij testowy POST na swój endpoint i zobacz, czy rekord znika z kolejki od razu. Kwadrans pracy, który zwraca się przy pierwszej kampanii, która nie wyląduje w katalogu ze spamem.