Maile ze sklepu trafiają do spamu: SPF, DKIM, DMARC – diagnoza
Sklep działa, zamówienia spływają, płatności się księgują. A potem przychodzi telefon: „nie dostałem potwierdzenia”. Sprawdzasz w panelu, mail wysłany. Klient sprawdza spam i faktycznie tam leży. Albo nie leży nigdzie, bo serwer odbiorcy odrzucił go po cichu.
W większości takich przypadków przyczyna nie leży w WordPressie ani we wtyczce. Leży w rekordach DNS Twojej domeny. Poniżej pokazuję, jak ustawić SPF, DKIM i DMARC krok po kroku, w jakiej kolejności to robić i jak sprawdzić, że faktycznie zadziałało.
Najpierw ustal, czy maile w ogóle wychodzą
Zanim ruszysz DNS, odróżnij dwa zupełnie różne problemy:
- Maile nie wychodzą z serwera. Nie ma ich w logach, wtyczka testowa zgłasza błąd, klient nie ma nic ani w skrzynce, ani w spamie. To problem konfiguracji wysyłki, nie uwierzytelnienia. Rozpisałem go osobno w tekście o tym, co zrobić, gdy sklep nie wysyła maili z potwierdzeniem zamówienia.
- Maile wychodzą, ale lądują w spamie albo są odrzucane przez serwer odbiorcy. To jest problem reputacji i uwierzytelnienia. Tym zajmuje się ten artykuł.
Szybki test: wyślij testową wiadomość na własny adres w Gmailu. Jeśli dotarła (choćby do spamu), wysyłka działa i czytamy dalej. Jeśli nie dotarła w ogóle, wróć do diagnostyki wysyłki.
Dlaczego filtry antyspamowe w ogóle Cię blokują
Serwer odbiorcy dostaje wiadomość, która twierdzi, że pochodzi od sklep@twojadomena.pl. Sam SMTP nie ma żadnego mechanizmu, który by to weryfikował. Każdy może wpisać w polu nadawcy dowolny adres. Dlatego powstały trzy standardy, które razem odpowiadają na pytanie „czy ten serwer ma prawo wysyłać w imieniu tej domeny”:
- SPF mówi, które serwery mogą wysyłać pocztę z Twojej domeny.
- DKIM podpisuje wiadomość kluczem kryptograficznym, żeby dało się potwierdzić nadawcę i sprawdzić, czy treść nie została podmieniona po drodze.
- DMARC spina jedno z drugim, mówi odbiorcy co zrobić, gdy weryfikacja się nie powiedzie, i przysyła Ci raporty.
Od 2024 roku Gmail i Yahoo wymagają uwierzytelnienia od wszystkich nadawców, a od nadawców masowych dodatkowo DMARC i jednoklikowego wypisu. Microsoft dołączył z podobnymi wymaganiami. Brak tych rekordów to dziś nie „drobna niedoskonałość”, tylko realne ryzyko, że połowa Twoich potwierdzeń zamówień nie dotrze.
Krok 0. Sprawdź, czym wysyłasz pocztę
Domyślnie WordPress używa funkcji mail() z serwera. To najgorszy możliwy wariant: wysyłka bez uwierzytelnienia, z adresu typu wordpress@twojadomena.pl, często z współdzielonego IP hostingu obciążonego cudzą reputacją. Żaden rekord DNS tego w pełni nie naprawi.
Zanim zaczniesz cokolwiek wpisywać w DNS, przepnij wysyłkę na SMTP konkretnego dostawcy. Do wyboru masz między innymi Google Workspace, Microsoft 365, Brevo, Mailgun, Postmark, Amazon SES czy SMTP Twojego hostingu. Po stronie WordPressa wystarczy jedna wtyczka typu FluentSMTP, WP Mail SMTP lub Post SMTP.
Zapisz sobie dwie rzeczy, bo będą potrzebne za chwilę:
- Nazwa dostawcy, przez którego wychodzi poczta.
- Adres nadawcy ustawiony w WooCommerce > Ustawienia > E-maile. Musi to być adres w Twojej domenie, nie na Gmailu czy WP.pl.
Jeżeli w tym samym miejscu widzisz, że sklep bywa niestabilny albo panel odpowiada z opóźnieniem, warto przy okazji zajrzeć do wpisu o tym, dlaczego sklep WooCommerce działa wolno. Wysyłka maili potrafi się wykładać właśnie przez timeouty.
Krok 1. SPF
SPF to rekord TXT w głównej domenie, który wymienia serwery uprawnione do wysyłki. Wygląda tak:
Typ: TXT
Nazwa: @ (czyli twojadomena.pl)
Wartość: v=spf1 include:_spf.google.com include:spf.brevo.com ~all
Zasady, których warto się trzymać:
- Jeden rekord SPF na domenę. Dwa osobne rekordy zaczynające się od
v=spf1to błąd i skutkuje wynikiem permerror. Jeśli masz kilku nadawców, łączysz ich w jednym rekordzie przez kolejneinclude:. - Maksymalnie 10 zapytań DNS. Każde
include:,a,mxczyredirectzużywa limit. Po przekroczeniu cały SPF przestaje działać. - Nie kopiuj cudzego rekordu. Widziałem sklepy z rekordem SPF przeklejonym z poradnika, który autoryzował serwery zupełnie innej firmy.
- Zacznij od
~all(miękkie odrzucenie), a po kilku tygodniach obserwacji przełącz na-all, jeśli masz pewność, że wszyscy legalni nadawcy są wymienieni. Nigdy nie zostawiaj+all.
Pamiętaj o wszystkich systemach, które wysyłają w imieniu domeny: sklep, skrzynka firmowa, system fakturowy, newsletter, CRM, system opinii. Każdy z nich musi znaleźć się w rekordzie albo jego maile będą odpadać.
Krok 2. DKIM
DKIM to podpis cyfrowy dodawany do nagłówka każdej wiadomości. Odbiorca pobiera klucz publiczny z Twojego DNS i weryfikuje podpis. Klucz prywatny zostaje po stronie dostawcy poczty.
Procedura jest zawsze taka sama:
- W panelu dostawcy poczty włączasz DKIM dla swojej domeny.
- Dostawca generuje klucz i podaje Ci selektor oraz wartość rekordu.
- Dodajesz rekord w DNS pod nazwą
selektor._domainkey.twojadomena.pl. - Wracasz do panelu dostawcy i klikasz weryfikację.
Przykładowy rekord:
Typ: TXT
Nazwa: google._domainkey
Wartość: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...
Trzy rzeczy, które najczęściej idą tu nie tak:
- Zły selektor. Nazwa rekordu musi być dokładnie taka, jaką podał dostawca. Część usług używa CNAME zamiast TXT (na przykład
s1._domainkeywskazujące na domenę dostawcy). - Ucięty klucz. Klucze 2048-bitowe bywają dłuższe niż limit pojedynczego łańcucha TXT. Niektóre panele DNS wymagają rozbicia wartości na części w cudzysłowach.
- Kilku nadawców, jeden klucz. Każdy dostawca ma własny selektor i własny rekord. Możesz mieć ich obok siebie kilka, to normalne i pożądane.
Jeśli miałbyś wdrożyć tylko jedną rzecz z tego artykułu, wdróż DKIM. Powód wyjaśniam przy okazji wyrównania domen.
Krok 3. DMARC
DMARC dokłada trzy rzeczy: sprawdza zgodność domeny nadawcy, mówi odbiorcy jak traktować wiadomości, które nie przeszły weryfikacji, i wysyła Ci raporty o tym, kto wysyła pocztę w imieniu Twojej domeny.
Zaczynasz od trybu obserwacyjnego:
Typ: TXT
Nazwa: _dmarc
Wartość: v=DMARC1; p=none; rua=mailto:dmarc@twojadomena.pl; fo=1
Co oznaczają poszczególne parametry:
p=noneto obserwacja, nic nie jest blokowane.p=quarantinekieruje niezweryfikowane wiadomości do spamu.p=rejectkaże je odrzucać.rua=to adres, na który mają przychodzić zbiorcze raporty.pct=pozwala objąć polityką tylko część ruchu, na przykładpct=25przy stopniowym zaostrzaniu.
Nie ustawiaj od razu p=reject. Przez pierwsze dwa, trzy tygodnie zbierasz raporty i sprawdzasz, czy wszystkie legalne systemy przechodzą weryfikację. Dopiero potem przechodzisz na quarantine, a po kolejnych tygodniach na reject. Odwrotna kolejność kończy się tym, że sam blokujesz sobie faktury albo newsletter.
Raporty DMARC przychodzą jako pliki XML i są nieczytelne gołym okiem. Skieruj je na dedykowany adres i podłącz darmowy analizator (dmarcian, Postmark DMARC Digests albo podobny), który przetłumaczy je na normalny raport.
Krok 4. Wyrównanie domen, czyli element pomijany najczęściej
To miejsce, w którym większość wdrożeń „na szybko” się wykłada. SPF i DKIM mogą przechodzić poprawnie, a DMARC i tak zwróci porażkę.
DMARC nie sprawdza tylko tego, czy weryfikacja przeszła. Sprawdza, czy domena z weryfikacji zgadza się z domeną widoczną w polu „Od”. I tu pojawia się pułapka:
- SPF weryfikuje domenę z koperty SMTP (Return-Path), nie z pola „Od”. Korzystając z zewnętrznego dostawcy, Return-Path bardzo często wskazuje na jego domenę, na przykład bounces.dostawca.com. SPF przechodzi, ale wyrównanie nie.
- DKIM podpisuje wiadomość parametrem
d=. Jeśli dostawca podpisuje Twoją domeną, wyrównanie jest zachowane.
DMARC przechodzi, gdy wyrównany jest choć jeden z dwóch mechanizmów. Dlatego poprawnie skonfigurowany DKIM ratuje sytuację nawet wtedy, gdy SPF się nie wyrównuje. Jeśli chcesz wyrównać także SPF, u większości dostawców da się ustawić własną domenę zwrotną (custom Return-Path lub własna subdomena bounce).
Krok 5. Jak sprawdzić, czy zadziałało
Po dodaniu rekordów odczekaj na propagację. Zwykle to od kilkunastu minut do kilku godzin, w zależności od TTL. Potem:
- Wyślij testową wiadomość na mail-tester.com i sprawdź wynik. Poniżej 8/10 warto szukać dalej, bo narzędzie od razu wskazuje, co kuleje.
- Otwórz wiadomość w Gmailu i wybierz „Pokaż oryginał”. W nagłówku muszą się pojawić trzy pozycje ze statusem PASS: SPF, DKIM i DMARC.
- Sprawdź rekordy w MXToolbox lub podobnym narzędziu, żeby wykluczyć duplikaty i przekroczony limit zapytań.
- Załóż konto w Google Postmaster Tools, jeśli wysyłasz więcej niż kilkaset wiadomości dziennie. Pokaże Ci reputację domeny i odsetek zgłoszeń spamu.
- Zrób realny test zamówienia na trzy różne skrzynki: Gmail, Outlook i któryś polski darmowy dostawca. To najbardziej wiarygodny sprawdzian.
Co jeszcze wypycha maile do spamu, mimo poprawnego DNS
Uwierzytelnienie jest warunkiem koniecznym, ale nie zawsze wystarczającym. Jeśli rekordy są poprawne, a wiadomości nadal lądują nie tam, gdzie trzeba, sprawdź:
- Adres nadawcy w polu „Od”. Formularze kontaktowe często wstawiają tam adres klienta, przez co Twój serwer podszywa się pod obcą domenę. Adres klienta powinien trafić do pola „Odpowiedz do”, nie do „Od”.
- Mieszanie transakcyjnych i marketingowych. Newsletter z wysokim odsetkiem zgłoszeń spamu potrafi zabić reputację całej domeny, razem z potwierdzeniami zamówień. Rozdziel je na osobne subdomeny albo osobnych dostawców.
- Brak wypisu w mailingach. Nagłówek List-Unsubscribe z opcją jednego kliknięcia jest dziś wymagany przy wysyłce masowej.
- Higiena listy. Twarde odbicia i nieaktywne adresy podnoszą wskaźnik odrzuceń. Trzymaj odsetek zgłoszeń spamu poniżej 0,3 procent.
- Treść i szablon. Sam obraz bez tekstu, skracacze linków, agresywny język promocyjny, załączniki wykonywalne. Warto też sprawdzić, czy linki w mailu prowadzą na tę samą domenę, z której wysyłasz.
- Reputacja adresu IP. Na hostingu współdzielonym dzielisz IP z innymi. Jeden zainfekowany sąsiad wystarczy, żeby cała pula trafiła na czarną listę.
- Infekcja Twojej strony. Zdarza się, że sklep sam rozsyła spam z powodu złośliwego kodu. Jeśli podejrzewasz taki scenariusz, zacznij od wpisu o tym, jak odwirusować stronę na WordPressie.
Najczęstsze błędy, które widzę w konfiguracjach
- Dwa rekordy SPF obok siebie, dodane przy okazji podłączania drugiego narzędzia.
- Rekordy dodane u rejestratora domeny, podczas gdy serwery nazw wskazują na Cloudflare lub hosting. Zawsze edytuj DNS tam, gdzie faktycznie wskazuje delegacja.
- DKIM włączony u dostawcy, ale rekord nigdy nie dodany do DNS. Albo dodany, ale bez kliknięcia weryfikacji po stronie dostawcy.
p=rejectustawione pierwszego dnia, bez raportów. Efekt: znikające faktury i wściekły dział księgowości.- SPF opisujący tylko hosting, przy jednoczesnej wysyłce z Google Workspace i systemu newsletterowego.
- Zmiana dostawcy poczty bez aktualizacji rekordów. Stary
include:zostaje, nowy nie zostaje dodany.
Kolejność wdrożenia w skrócie
- Przepnij wysyłkę WordPressa na SMTP konkretnego dostawcy.
- Ustaw adres nadawcy w domenie sklepu.
- Spisz wszystkie systemy wysyłające pocztę w imieniu domeny.
- Dodaj jeden poprawny rekord SPF obejmujący je wszystkie.
- Włącz i zweryfikuj DKIM u każdego dostawcy osobno.
- Dodaj DMARC z
p=nonei adresem na raporty. - Przez dwa, trzy tygodnie czytaj raporty i naprawiaj to, co odpada.
- Przejdź na
p=quarantine, potem nap=reject. - Ustaw sobie przypomnienie na przegląd rekordów raz na pół roku.
Dlaczego to się przekłada na pieniądze
Potwierdzenie zamówienia w spamie to nie tylko problem techniczny. Klient, który nie dostał maila, zakłada, że coś poszło nie tak. Dzwoni, pisze, czasem składa zamówienie drugi raz, czasem żąda zwrotu. Każda taka sytuacja kosztuje Cię czas i nadszarpuje zaufanie, które budujesz innymi kanałami. Pisałem o tym szerzej w tekście o tym, jak budować zaufanie w sklepie internetowym.
Drugi wymiar to sprzedaż. Maile odzyskujące porzucone koszyki mają sens tylko wtedy, gdy docierają do skrzynki odbiorczej. Jeśli walczysz o ten wskaźnik, poprawna dostarczalność jest warunkiem wstępnym każdej taktyki opisanej we wpisie o tym, jak zmniejszyć liczbę porzuconych koszyków w WooCommerce.
Najczęstsze pytania
Czy DMARC jest obowiązkowy?
Formalnie nie ma przepisu, który go nakazuje. Praktycznie Gmail, Yahoo i Microsoft wymagają go od nadawców masowych, a jego brak obniża szanse na dotarcie do skrzynki odbiorczej także przy mniejszym wolumenie. Traktuj go jako standard, nie jako opcję.
Czy sam SPF wystarczy?
Nie. SPF nie chroni przed podszywaniem się w polu „Od”, nie przetrwa przekierowań wiadomości i bez DKIM bardzo często nie daje wyrównania wymaganego przez DMARC.
Ile trwa propagacja zmian w DNS?
Zwykle od kilkunastu minut do kilku godzin. Zależy od TTL rekordu. Warto obniżyć TTL przed planowanymi zmianami i podnieść po zakończeniu prac.
Mam kilka subdomen. Czy każda potrzebuje własnych rekordów?
Jeśli z subdomeny wychodzi poczta, tak: potrzebuje własnego SPF i DKIM. DMARC z domeny głównej domyślnie obejmuje subdomeny, ale możesz to nadpisać parametrem sp=.
Czy trzeba wymieniać klucze DKIM?
Rotacja raz na rok to dobra praktyka. U większości dostawców odbywa się automatycznie, o ile korzystasz z rekordów CNAME zamiast wklejonego na sztywno klucza.
Co zrobić, gdy moja domena trafiła na czarną listę?
Najpierw usuń przyczynę: zamknij lukę, przez którą wysyłany był spam, i uporządkuj konfigurację. Dopiero potem złóż wniosek o usunięcie z listy. Zgłoszenie bez usunięcia przyczyny kończy się powrotem na listę w ciągu kilku dni.
Nie chcesz robić tego samodzielnie?
Zajmę się tym za Ciebie. Napisz krótko, co się dzieje - odpowiem tego samego dnia roboczego.