NetSendo Logo
Guides & Tips

Przewodnik dla deweloperów po wypisaniu jednym kliknięciem (RFC 8058)

NetSendo Team8 min czytania
Przewodnik dla deweloperów po wypisaniu jednym kliknięciem (RFC 8058)

Wypisanie jednym kliknięciem to standard poczty elektronicznej, który pozwala odbiorcom opuścić listę mailingową bezpośrednio z poziomu klienta poczty za pomocą jednej akcji. Jest to obowiązkowy wymóg dla masowych nadawców, narzucony przez głównych dostawców skrzynek odbiorczych, takich jak Google i Yahoo, w oparciu o specyfikację RFC 8058. Poprawna implementacja wymaga dodania określonych nagłówków e-mail i utworzenia punktu końcowego na serwerze, który natychmiast obsłuży żądanie rezygnacji.

TL;DR: Aby spełnić zasady Google i Yahoo dotyczące wysyłania ponad 5000 e-maili dziennie, musisz wdrożyć wypisanie jednym kliknięciem. Wymaga to dodania do wiadomości dwóch nagłówków: List-Unsubscribe z adresem URL HTTPS oraz List-Unsubscribe-Post z wartością List-Unsubscribe=One-Click. Twój serwer musi akceptować żądanie POST pod tym adresem URL i natychmiast wypisać użytkownika, bez konieczności logowania czy potwierdzania na stronie docelowej.

Czym jest wypisanie jednym kliknięciem (RFC 8058)?

Wypisanie jednym kliknięciem to mechanizm, który pozwala użytkownikowi zrezygnować z przyszłych e-maili od nadawcy poprzez kliknięcie jednego przycisku w interfejsie swojego klienta poczty (np. Gmail, Apple Mail). W przeciwieństwie do tradycyjnego linku do rezygnacji, który przenosi użytkownika na stronę internetową, proces ten jest obsługiwany automatycznie w tle. Standard techniczny tej funkcjonalności jest zdefiniowany w dokumencie RFC 8058.

RFC 8058

Dokument IETF (Internet Engineering Task Force), który określa, jak sygnalizować funkcję wypisu jednym kliknięciem w nagłówkach e-mail. Wprowadza on nagłówek List-Unsubscribe-Post, który informuje klientów poczty, że podany adres URL obsługuje natychmiastową rezygnację za pomocą żądania HTTP POST.

Kluczowa różnica polega na doświadczeniu użytkownika. Standardowy link do rezygnacji wymaga co najmniej dwóch kroków: kliknięcia linku, a następnie potwierdzenia na stronie docelowej. Wypisanie jednym kliknięciem to pojedyncza, natychmiastowa akcja inicjowana przez klienta poczty w imieniu użytkownika, komunikująca się bezpośrednio z serwerem nadawcy.

Dlaczego wypisanie jednym kliknięciem jest obowiązkowe?

Wypisanie jednym kliknięciem jest obowiązkowe, ponieważ poprawia doświadczenie użytkownika i pomaga zmniejszyć liczbę skarg na spam. Gdy rezygnacja z subskrypcji jest trudna, sfrustrowani użytkownicy częściej oznaczają wiadomości jako spam. Dla dostawców skrzynek odbiorczych skarga na spam to silny negatywny sygnał, który szkodzi Twojej reputacji nadawcy i dostarczalności e-maili.

Od lutego 2024 roku główni dostawcy skrzynek odbiorczych uczynili to formalnym wymogiem. Zgodnie z wytycznymi dla nadawców Google oraz dobrymi praktykami dla nadawców Yahoo, musisz zapewnić opcję wypisu jednym kliknięciem, jeśli wysyłasz ponad 5000 e-maili promocyjnych dziennie do ich użytkowników. Niezastosowanie się do tego wymogu może skutkować dostarczaniem Twoich wiadomości do folderu spam lub ich całkowitym odrzuceniem.

✅ Zalety

  • Poprawa doświadczenia użytkownika: Zapewnia bezproblemowy sposób na zarządzanie skrzynką odbiorczą.
  • Redukcja skarg na spam: Łatwy sposób rezygnacji zmniejsza prawdopodobieństwo, że użytkownicy klikną przycisk spam.
  • Ochrona reputacji nadawcy: Mniejsza liczba skarg na spam bezpośrednio przekłada się na lepszą dostarczalność.
  • Budowanie zaufania: Demonstruje szacunek dla preferencji subskrybentów i transparentne zarządzanie listą.

❌ Wady

  • Brak możliwości odzyskania subskrybenta: Nie możesz przedstawić ankiety ani opcji ograniczenia subskrypcji na stronie docelowej. Działanie jest natychmiastowe.
  • Wdrożenie techniczne: Wymaga pracy programistycznej w celu stworzenia zgodnego punktu końcowego.
  • Dotyczy maili marketingowych: Wymóg dotyczy wiadomości promocyjnych lub masowych, a nie czysto transakcyjnych, jak reset hasła czy potwierdzenie zamówienia.

Jak działają nagłówki List-Unsubscribe i List-Unsubscribe-Post?

Zgodność osiąga się poprzez dodanie dwóch specyficznych nagłówków do surowego źródła każdej wychodzącej wiadomości promocyjnej. Te nagłówki to metadane, które klienci poczty odczytują, aby zrozumieć, jak zaoferować funkcję wypisu jednym kliknięciem.

1. Nagłówek List-Unsubscribe

Ten nagłówek dostarcza niezbędnych linków do rezygnacji. Istnieje od lat i może zawierać link mailto: (do rezygnacji przez e-mail) i/lub link HTTPS (do rezygnacji na stronie internetowej). Aby zapewnić nowoczesną zgodność, musisz zawrzeć co najmniej jeden adres URL HTTPS.

List-Unsubscribe: <https://api.twojadomena.com/unsubscribe/v1/a1b2c3d4e5>, <mailto:unsubscribe@twojadomena.com?subject=list-id-123>

Adres URL powinien być unikalny dla każdego subskrybenta, aby Twój system wiedział, kogo usunąć. Zazwyczaj robi się to poprzez umieszczenie bezpiecznego, trudnego do odgadnięcia tokenu w ścieżce.

2. Nagłówek List-Unsubscribe-Post

To kluczowy dodatek z RFC 8058. Jawnie informuje on klienta poczty, że adres URL HTTPS w nagłówku List-Unsubscribe obsługuje bezpośrednie żądanie POST w celu natychmiastowej rezygnacji. Wartość jest zawsze taka sama.

List-Unsubscribe-Post: List-Unsubscribe=One-Click

Podsumowanie

Gdy klient poczty, taki jak Gmail, otrzyma e-mail z oboma nagłówkami, wie, że może wyświetlić własny, natywny przycisk "Wypisz się" w interfejsie. Gdy użytkownik kliknie ten przycisk, klient wysyła żądanie HTTP POST na adres URL z nagłówka List-Unsubscribe. Twój serwer odbiera to żądanie i wykonuje operację rezygnacji — bez udziału przeglądarki ani strony docelowej.

Oto pełny przykład wymaganych nagłówków w źródle wiadomości e-mail:

From: "Mój Newsletter" <newsletter@twojadomena.com>
To: "Subskrybent" <jan.kowalski@example.com>
Subject: Nasza cotygodniowa aktualizacja
List-Unsubscribe: <https://api.twojadomena.com/unsubscribe/v1/f6g7h8i9j0>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

...Treść e-maila...
⚠️ Ważne: Adres URL musi obsługiwać żądania POST. Użycie standardowej strony do rezygnacji, która oczekuje żądania GET, nie zadziała i nie przejdzie testów zgodności. Metoda POST jest określona, aby zapobiec przypadkowemu wypisywaniu użytkowników przez skanery bezpieczeństwa i proxy, które mogą wstępnie pobierać linki.

Jak zaimplementować zgodny punkt końcowy do wypisu jednym kliknięciem?

Implementacja backendu dla wypisu jednym kliknięciem polega na stworzeniu punktu końcowego HTTPS, który przestrzega określonych zasad. Jedynym zadaniem tego punktu końcowego jest odebranie żądania POST od dostawcy poczty i natychmiastowe wypisanie użytkownika zidentyfikowanego przez token w adresie URL.

  1. Wygeneruj bezpieczny, unikalny adres URL dla każdego subskrybenta

    Nigdy nie umieszczaj adresu e-mail użytkownika bezpośrednio w adresie URL. Zamiast tego wygeneruj długi, losowy i nieprzejrzysty token, który jest unikalny dla każdego subskrybenta. Przechowuj ten token w swojej bazie danych, powiązany z rekordem subskrybenta. Adres URL w nagłówku będzie wyglądał następująco: https://api.twojadomena.com/unsubscribe/{token}

  2. Utwórz punkt końcowy HTTPS, który akceptuje żądania POST

    Twoja aplikacja internetowa potrzebuje ścieżki (route), która pasuje do struktury adresu URL i jest skonfigurowana do akceptowania tylko metody POST. Ten punkt końcowy musi być publicznie dostępny i zabezpieczony protokołem TLS (HTTPS).

  3. Zaimplementuj logikę rezygnacji

    Gdy punkt końcowy otrzyma żądanie, Twój kod powinien:

    1. Wyodrębnić token z adresu URL żądania.
    2. Znaleźć odpowiedniego subskrybenta w bazie danych.
    3. Zmienić jego status subskrypcji na "wypisany".
    4. Zarejestrować zdarzenie w logach.
    Kluczowe jest, aby ten proces nie wymagał plików cookie, logowania użytkownika ani dalszego potwierdzenia.

  4. Zwróć odpowiedź o powodzeniu

    Punkt końcowy powinien zwrócić kod statusu HTTP 200 OK, aby zasygnalizować klientowi poczty, że żądanie zostało pomyślnie przetworzone. Możesz dołączyć prosty komunikat w treści, np. "Wypisano", ale użytkownik nigdy go nie zobaczy.

Przykładowy kod backendu (Node.js z Express)

Ten przykład demonstruje podstawową implementację zgodnego punktu końcowego.

const express = require('express');
const app = express();

// Przykładowy obiekt bazy danych do demonstracji
const db = {
  findSubscriberByToken: async (token) => { /* ... znajduje użytkownika ... */ },
  updateSubscriptionStatus: async (userId, status) => { /* ... aktualizuje status ... */ }
};

// Punkt końcowy do wypisu jednym kliknięciem
app.post('/unsubscribe/:token', async (req, res) => {
  const { token } = req.params;

  try {
    // 1. Znajdź subskrybenta powiązanego z bezpiecznym tokenem
    const subscriber = await db.findSubscriberByToken(token);

    if (subscriber) {
      // 2. Wypisz użytkownika z list mailingowych
      await db.updateSubscriptionStatus(subscriber.id, 'unsubscribed');
      console.log(`Użytkownik ${subscriber.id} wypisany jednym kliknięciem.`);
    } else {
      // Nawet jeśli token nie zostanie znaleziony, nie chcemy sygnalizować błędu
      console.warn(`Nie znaleziono tokenu do wypisu: ${token}`);
    }

    // 3. Zawsze zwracaj odpowiedź 200 OK zgodnie z RFC 8058
    res.status(200).send('Żądanie przetworzone. Zostałeś wypisany.');

  } catch (error) {
    console.error('Błąd podczas przetwarzania wypisu jednym kliknięciem:', error);
    // Dla bezpieczeństwa zwróć 200 nawet w przypadku błędu wewnętrznego.
    // Błąd 500 może spowodować, że dostawca poczty ponowi próbę lub zgłosi problem.
    res.status(200).send('Żądanie przetworzone.');
  }
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Usługa wypisów nasłuchuje na porcie ${PORT}`);
});

Jak NetSendo automatycznie obsługuje wypisanie jednym kliknięciem?

Dla tych, którzy samodzielnie hostują swoją automatyzację marketingu, NetSendo dostarcza kompletne, gotowe rozwiązanie zapewniające zgodność z RFC 8058. Platforma automatycznie obsługuje wszystkie wymagania techniczne, oszczędzając deweloperom konieczności budowania i utrzymywania tej logiki samodzielnie.

Począwszy od wersji 2.0.11, funkcja Globalnego Wypisu w NetSendo zapewnia, że każda promocyjna wiadomość e-mail jest zgodna z wymogami. Oto jak to działa:

  • Automatyczne wstawianie nagłówków: Gdy wysyłasz kampanię, NetSendo automatycznie generuje i wstawia poprawnie sformatowane nagłówki List-Unsubscribe i List-Unsubscribe-Post do każdej wiadomości.
  • Generowanie bezpiecznego punktu końcowego: Dla każdego subskrybenta w Twojej bazie danych tworzony jest unikalny, bezpieczny adres URL do rezygnacji. Ten adres URL wskazuje bezpośrednio na Twoją instancję NetSendo.
  • Wbudowany handler POST: Twoja instalacja NetSendo zawiera wymagany punkt końcowy HTTPS POST. Gdy dostawca poczty, taki jak Google, wyśle żądanie rezygnacji pod ten adres URL, NetSendo odbierze je, zweryfikuje token i natychmiast oznaczy kontakt jako globalnie wypisany.
💡 Wskazówka: Ponieważ NetSendo jest hostowane samodzielnie, masz pełną kontrolę i przejrzystość. Możesz przeglądać logi serwera, aby zobaczyć przychodzące żądania POST i zweryfikować, że system działa zgodnie z oczekiwaniami, jednocześnie przechowując dane subskrybentów na własnej infrastrukturze.

Jak przetestować implementację wypisu jednym kliknięciem?

Weryfikacja implementacji jest kluczowa dla zapewnienia dostarczalności i zgodności. Proces polega na wysłaniu prawdziwego e-maila i sprawdzeniu zarówno nagłówków, jak i funkcjonalności backendu.

📋 Lista kontrolna

  • Wyślij e-mail testowy na adres Gmail lub Yahoo. Ci klienci mają najlepsze wsparcie dla wyświetlania przycisku wypisu.
  • Sprawdź surowe źródło e-maila. W Gmailu kliknij trzy kropki i wybierz "Pokaż oryginał". Wyszukaj "List-Unsubscribe" i potwierdź, że oba nagłówki są obecne, a adres URL HTTPS jest poprawny.
  • Poszukaj natywnego przycisku rezygnacji. W interfejsie internetowym Gmaila pojawia się on obok adresu e-mail nadawcy na górze wiadomości. Kliknij go.
  • Zweryfikuj działanie backendu. Sprawdź bazę danych swojej aplikacji lub CRM, aby potwierdzić, że status subskrybenta testowego został zmieniony na "wypisany".
  • Sprawdź logi serwera. Powinieneś zobaczyć przychodzące żądanie POST do Twojego punktu końcowego rezygnacji z adresu IP należącego do dostawcy poczty (np. Google).

Jeśli nagłówki są obecne, ale przycisk rezygnacji się nie pojawia, może to być spowodowane niską reputacją nadawcy. Dostawcy skrzynek odbiorczych często czekają, aż zaufają nowemu nadawcy, zanim wyraźnie wyświetlą tę funkcję. Jednak dopóki nagłówki są poprawnie zaimplementowane, jesteś technicznie zgodny z wymogami.

🎯 Wskazówki ekspertów

1
Używaj nieprzejrzystych, jednorazowych tokenów

Aby zwiększyć bezpieczeństwo, generuj tokeny do rezygnacji, które nie są powiązane z ID użytkownika ani jego adresem e-mail. Po użyciu tokenu unieważnij go, aby zapobiec możliwości ponownego użycia, jakkolwiek mało prawdopodobne by to było.

2
Rozróżniaj listy od globalnych rezygnacji

Chociaż wypisanie jednym kliknięciem często prowadzi do globalnej rezygnacji, Twój system może być bardziej precyzyjny. Punkt końcowy można zaprojektować tak, aby wypisywał użytkownika tylko z określonej listy, z której wysłano e-mail, a nie ze wszystkich komunikatów.

3
Oddziel strumienie maili marketingowych i transakcyjnych

Wypisanie jednym kliknięciem dotyczy e-maili marketingowych. Wysyłanie treści promocyjnych przez strumień e-maili transakcyjnych w celu uniknięcia tego wymogu jest naruszeniem zasad, które może doprowadzić do zablokowania Twojej domeny. Utrzymuj osobne subdomeny lub adresy IP dla każdego rodzaju poczty.

4
Loguj każde żądanie rezygnacji

Prowadź szczegółowe logi serwera wszystkich przychodzących żądań POST dotyczących wypisu jednym kliknięciem. Powinny one zawierać znacznik czasu, otrzymany token i adres IP żądającego. Te logi są nieocenione przy debugowaniu i udowadnianiu zgodności w razie problemów.

Najczęściej zadawane pytania

Czy wypisanie jednym kliknięciem jest obowiązkowe?

Tak, dla nadawców wysyłających ponad 5000 e-maili promocyjnych dziennie do użytkowników Google lub Yahoo, jest to obowiązkowe od lutego 2024 roku. Jest to warunek utrzymania dobrej reputacji nadawcy i dostarczalności.

Jaka jest różnica między standardowym wypisaniem a wypisaniem jednym kliknięciem?

Standardowy link do wypisu przenosi użytkownika na stronę internetową w celu potwierdzenia wyboru. Wypisanie jednym kliknięciem to natychmiastowy proces backendowy, wyzwalany bezpośrednio z interfejsu klienta poczty za pomocą żądania HTTP POST, zgodnie ze specyfikacją RFC 8058.

Jak dodać nagłówek List-Unsubscribe?

Dodajesz go do surowego źródła wiadomości e-mail przed wysłaniem. Zazwyczaj odbywa się to poprzez skonfigurowanie aplikacji lub usługi wysyłającej e-maile tak, aby wstawiała nagłówki `List-Unsubscribe` i `List-Unsubscribe-Post` do każdej wiadomości promocyjnej.

Co to jest RFC 8058?

RFC 8058 to standard techniczny, który definiuje, jak sygnalizować funkcję wypisania jednym kliknięciem w wiadomościach e-mail. Określa on użycie nagłówka `List-Unsubscribe-Post`, aby poinformować klientów poczty, że natychmiastowa rezygnacja jest możliwa za pomocą żądania HTTP POST.

Czy e-maile transakcyjne wymagają opcji wypisu jednym kliknięciem?

Generalnie nie. Wymóg ten dotyczy e-maili promocyjnych, marketingowych lub masowych wiadomości komercyjnych. Czysto transakcyjne wiadomości, takie jak reset hasła, potwierdzenia zakupu czy powiadomienia o wysyłce, są zwolnione, ale należy poprawnie klasyfikować swoje wiadomości.

Źródła

Zachowaj zgodność z NetSendo

Nasza platforma self-hosted daje Ci pełną kontrolę nad danymi, jednocześnie automatycznie obsługując standardy dostarczalności.

#email deliverability#rfc 8058#one-click unsubscribe#email marketing#google sender requirements
Udostępnij