SPF, DKIM i DMARC dla domeny wysyłkowej krok po kroku
Trzy rekordy DNS decydują o tym, czy twoja poczta w ogóle dostanie szansę u odbiorcy. SPF, DKIM i DMARC dla domeny wysyłkowej to nie zestaw opcjonalnych dodatków, tylko minimum, od którego zaczyna się każda rozmowa o dostarczalności. Każdy odpowiada za inny fragment tej samej układanki. SPF wskazuje serwery uprawnione do wysyłki w imieniu domeny. DKIM dokłada podpis kryptograficzny potwierdzający, że wiadomość nie została podmieniona w drodze. A DMARC spina oba mechanizmy z polem From i mówi filtrowi, co zrobić, gdy coś się nie zgadza.
Po co domenie wysyłkowej trzy rekordy zamiast jednego
Duzi odbiorcy traktują komplet jako warunek wstępny. Gmail, Microsoft, Yahoo, a u nas jeszcze WP i Onet sprawdzają uwierzytelnienie, zanim w ogóle spojrzą na treść. Brakuje jednego elementu? Startujesz z gorszej pozycji, zanim zdążysz cokolwiek udowodnić.
Ustawmy oczekiwania od razu. Poprawna konfiguracja nie gwarantuje folderu Odebrane. Ona potwierdza tożsamość nadawcy – resztę rozstrzyga reputacja domeny, reputacja adresu IP i to, jak odbiorcy reagują na twoje wiadomości. Uwierzytelnianie otwiera bramkę. Do skrzynki głównej za rękę nie prowadzi.
Jest jeszcze jeden argument, o którym na etapie wdrożenia mało kto mówi: bez DMARC nie masz żadnego wglądu w to, kto podszywa się pod twoją domenę. Nie wiesz, ile wiadomości wychodzi z adresami w twojej domenie z serwerów, których nigdy nie autoryzowałeś. Raporty agregowane zamieniają domysły w listę konkretnych źródeł.
Przygotowanie: subdomena wysyłkowa, Return-Path i PTR
Do masowej wysyłki używaj subdomeny. mail.twojafirma.pl albo news.twojafirma.pl, nigdy domeny głównej, z której lecą faktury i korespondencja handlowa. Powód jest czysto praktyczny: reputacja idzie za domeną. Kiedy newsletter oberwie u dużego filtra, poczta transakcyjna i firmowa działa dalej.
Return-Path, czyli envelope sender albo MAIL FROM, to adres, którego nie widać w kliencie poczty, a który decyduje o odbiciach i o wyniku SPF. Musi należeć do twojej domeny, nie do domeny platformy wysyłkowej. Inaczej SPF wypadnie pozytywnie, ale wyrównanie DMARC nie zadziała i cała konstrukcja się sypie. Ten punkt pomija się najczęściej ze wszystkich.
PTR, czyli reverse DNS adresu IP serwera wysyłkowego, musi rozwiązywać się do nazwy, która wskazuje z powrotem na to samo IP. U nas ustawiamy to po stronie floty – klient nie dotyka tu niczego. Na subdomenie potrzebujesz też rekordów MX i A, żeby odbierać bounce’y i odpowiedzi na adres z pola From.
Tip: obniż TTL do 300-600 sekund kilka godzin przed zmianami. Poprawki wchodzą wtedy w minuty, a nie w pół doby. Po ustabilizowaniu konfiguracji podnieś wartość z powrotem.
Krok 1: SPF bez przekroczenia limitu odwołań DNS
SPF to rekord TXT zaczynający się od v=spf1. Dalej idą mechanizmy: include, ip4, ip6, a, mx. Na końcu polityka – -all albo ~all. Jedna domena, dokładnie jeden rekord SPF. Dwa wpisy to błąd trwały, nie ostrzeżenie; trzeba je połączyć w jeden.
Najgroźniejsza jest granica dziesięciu odwołań DNS. Liczy się każdy include, każde a, mx i ptr. Przekroczenie daje permerror, a filtr traktuje permerror dokładnie tak samo jak całkowity brak SPF. Domena z pozornie poprawnym rekordem przestaje przechodzić uwierzytelnienie z dnia na dzień.
Jak zejść poniżej limitu:
- usuń include po narzędziach, których już nie używasz – zwykle wiszą tam latami,
- spłaszcz do ip4 tam, gdzie dostawca ma stabilną i udokumentowaną pulę adresów,
- rozdziel systemy na osobne subdomeny, każda z własnym rekordem,
- pomiń mechanizm ptr, przestarzały i zjadający odwołanie za nic.
Politykę zaostrzaj etapami. Na czas testów wystarczy ~all. Na -all przechodź dopiero wtedy, gdy potwierdzisz, że wszystkie źródła wysyłki znalazły się w rekordzie. Jeśli część wysyłki idzie przez CRM albo sklep, przejrzyj listę dostępnych integracji z zewnętrznymi systemami i dopisz do rekordu tylko te, z których faktycznie korzystasz.
Tip: policz odwołania przed dodaniem kolejnego include. Najczęstsza przyczyna nagłej utraty uwierzytelnienia to jeden wpis za dużo, dorzucony przez inny dział bez konsultacji.
Krok 2: DKIM, czyli podpis, który przeżywa przekierowanie
DKIM podpisuje wybrane nagłówki i treść kluczem prywatnym. Odbiorca pobiera klucz publiczny z rekordu TXT pod nazwą selektor._domainkey.twojadomena.pl i weryfikuje podpis. Jeśli cokolwiek po drodze ruszyło podpisane pola, weryfikacja pada.
Domyślnie wybieraj klucz 2048-bit. Bywa, że panel DNS nie przyjmuje tak długiej wartości w jednym stringu – wtedy podziel ją na łańcuchy w cudzysłowach, zamiast schodzić do 1024. Skracanie klucza dla wygody edytora to zły kompromis.
Selektory i rotacja kluczy
Jeden selektor na system wysyłkowy. Nazwa z systemem albo datą, na przykład mc2026a, upraszcza późniejszą rotację. Sama rotacja idzie bez przerwy w podpisywaniu: publikujesz nowy selektor, przełączasz podpisywanie na nowy klucz, po kilku dniach kasujesz stary rekord.
DKIM ma nad SPF jedną przewagę, która potrafi uratować kampanię. Podpis przetrwa przekierowanie wiadomości, bo wędruje razem z nagłówkami. SPF przy forwardzie się rozjeżdża, bo serwer przekazujący nie figuruje w twoim rekordzie. Dlatego DMARC akceptuje wyrównanie po którejkolwiek ze stron.
Błąd wdrożeniowy, który widujemy najczęściej: wartość klucza skopiowana z panelu razem ze spacjami i znakami nowej linii. Rekord wygląda poprawnie, a podpis nie weryfikuje się wcale.
Krok 3: DMARC od p=none do p=reject bez odcinania własnej poczty
DMARC to rekord TXT pod _dmarc.twojadomena.pl. Zawiera v=DMARC1, politykę p, adresy raportów rua i ruf, opcjonalnie pct oraz tryby wyrównania adkim i aspf.
Sedno stanowi wyrównanie. Domena z pola From musi zgadzać się z domeną z Return-Path albo z domeną podpisu DKIM. Sam pozytywny SPF nie da nic, jeśli Return-Path wskazuje na domenę platformy. Tryb relaxed dopuszcza subdomenę, strict wymaga dokładnej zgodności – zaczynaj od relaxed.
Ścieżkę wdrożenia prowadź etapami:
- p=none z adresem rua, przez kilka tygodni, bez wpływu na dostarczanie,
- analiza raportów agregowanych i uzupełnienie brakujących źródeł,
- p=quarantine z rosnącym stopniowo pct,
- p=reject dopiero po wyczyszczeniu listy nadawców.
Raporty rua to jedyne wiarygodne źródło wiedzy o tym, kto wysyła w twoim imieniu. Regularnie wychodzą z nich systemy, o których nikt już nie pamiętał: CRM, sklep, wtyczka do faktur, biuro rachunkowe. Raporty forensyczne ruf zawierają fragmenty wiadomości, więc z RODO w tle traktujemy je ostrożnie i domyślnie zostawiamy sam rua.
I nie przeskakuj od razu na p=reject na domenie, z której wychodzi poczta firmowa. Najpierw policz źródła, a potem zdecyduj, kiedy zaostrzyć politykę z p=none na quarantine i reject.
Weryfikacja i typowe błędy, które widujemy przy wdrożeniach
Sprawdzenie zacznij od konsoli. dig TXT na domenę, na selektor DKIM i na _dmarc. Potem test praktyczny: wiadomość na skrzynkę Gmail i Microsoft, podgląd oryginału, lektura nagłówków. W polu Authentication-Results szukasz trzech wyników – spf=pass, dkim=pass, dmarc=pass – wraz z informacją o wyrównaniu.
Lista usterek, które powtarzają się przy migracjach:
- dwa rekordy SPF na jednej domenie,
- permerror z przekroczonych odwołań DNS,
- rekord DMARC opublikowany pod złą nazwą, bez prefiksu _dmarc,
- selektor DKIM w domenie głównej zamiast w wysyłkowej,
- brak PTR dla adresu IP serwera,
- Return-Path pozostawiony na domenie dostawcy.
Zanim uznasz zmianę za nieudaną, sprawdź TTL poprzedniego wpisu. Stary rekord potrafi siedzieć w cache resolwerów długo po tym, jak podmieniłeś wartość w panelu.
Tip: po każdej zmianie rekordów wyślij wiadomość testową na własne konta w kilku dużych serwisach i przejrzyj nagłówki. Dopiero potem uruchamiaj kampanię do listy.
Uwierzytelnianie to warunek wstępny, nie cała dostarczalność
Trzy poprawne rekordy przepuszczają cię przez bramkę. O folderze docelowym decydują reputacja domeny oraz reputacja adresu IP. Nowa domena i nowe IP wymagają warmupu: małe wolumeny na start, wzrost dzień po dniu, najpierw najbardziej zaangażowani odbiorcy.
Z doświadczenia własnej floty serwerów wysyłkowych: przy blokadzie u dużego filtra liczy się tempo reakcji. Wstrzymujemy wysyłkę z danego IP, czyścimy listę z twardych bounce’ów, kontaktujemy się przez formularz operatora, a potem wracamy do wolumenu powoli. Bardzo powoli. Szarpanie ruchem po odblokowaniu kończy się drugą blokadą.
Higiena listy działa równolegle. Twarde bounce’y usuwaj natychmiast, skargi obsługuj bez zwłoki, rezygnację udostępniaj jednym kliknięciem z nagłówkiem List-Unsubscribe. Zgoda jest tu wymogiem technicznym, nie tylko prawnym – RODO i artykuł 398 Prawa komunikacji elektronicznej wymagają jej także w B2B, a lista zbudowana na zgodzie zwyczajnie lepiej się dostarcza.
Żadna konfiguracja DNS nie omija filtrów. Jeśli ktoś ci to obiecuje, sprzedaje problem na później. Konfigurację i utrzymanie prowadzimy razem z klientami w naszej platformie do email marketingu z własną flotą serwerów wysyłkowych, gdzie uwierzytelnianie domeny i raporty DMARC są częścią standardowej konfiguracji konta.
Podsumowanie: kolejność wdrożenia w skrócie
- Wydziel subdomenę wysyłkową.
- Ustaw PTR i Return-Path we własnej domenie.
- Zbuduj jeden rekord SPF poniżej limitu odwołań.
- Wygeneruj klucz DKIM 2048-bit z własnym selektorem.
- Opublikuj DMARC z p=none i adresem rua.
- Przeanalizuj raporty i uzupełnij źródła.
- Zaostrz politykę do quarantine, potem reject.
- Przeprowadź warmup domeny i IP.
Masz godzinę i chcesz wiedzieć, na czym stoisz? Sprawdź dwie rzeczy: ile rekordów SPF ma twoja domena i czy _dmarc w ogóle istnieje. To dwa najczęstsze miejsca, w których wszystko się zatrzymuje.
Konfiguracja jest robotą jednorazową, utrzymanie ciągłą. Raporty DMARC czytaj co miesiąc, klucze DKIM rotuj, a nowe systemy dopisywane do SPF trzymaj pod kontrolą. Przy migracji na własną domenę wysyłkową przechodzimy przez te kroki razem z klientem – odezwij się, jeśli chcesz to zrobić raz a porządnie.


