Dlaczego maile trafiają do spamu i co naprawdę pomaga
Typowe porady kręcą się wokół tematu wiadomości. O dostarczeniu decydują trzy rekordy DNS, reputacja twojej domeny i jakość twojej listy.
Scenariusz jest zwykle ten sam. Potwierdzenie z formularza nigdy nie dociera do klienta, newsletter u połowy odbiorców ląduje w karcie „Oferty” albo w folderze spam, a pierwsze wyszukiwanie rozwiązania prowadzi do listy słów, których należy unikać w temacie wiadomości. Wykreśla się więc wykrzyknik i przeformułowuje „za darmo”. Potem nic się nie zmienia.
Dzieje się tak, bo te porady sięgają po najmniejszą dźwignię. Serwer pocztowy odbiorcy najpierw pyta, kto pisze, a dopiero potem, co jest w środku. Na pierwsze pytanie odpowiadają trzy rekordy DNS i to, jak twoja domena wysyłała pocztę w ostatnich tygodniach. Ani jednego, ani drugiego nie ma w temacie wiadomości.
Ten artykuł porządkuje dźwignie według skuteczności. Na koniec będziesz wiedzieć, którym rekordem zająć się jako następnym.
W tej kolejności praca się opłaca
Większość list kontrolnych dotyczących dostarczalności wrzuca dwadzieścia punktów do jednego worka i niczemu nie nadaje wagi. Po uporządkowaniu według skuteczności sprawa wygląda przejrzyściej:
- Uwierzytelnianie. SPF, DKIM i DMARC są skonfigurowane, a zgodność domen jest zachowana.
- Droga wysyłki. Twoje maile wychodzą z serwera, który według twoich własnych rekordów DNS może wysyłać pocztę w imieniu domeny.
- Jakość listy. Na liście są adresy z udokumentowaną zgodą, odbicia są usuwane.
- Reputacja nadawcy. Wolumen i częstotliwość wysyłek pasują do tego, co ta domena wysyłała do tej pory.
- Treść. Temat, tekst, proporcja obrazów do tekstu, liczba linków i miejsca, do których prowadzą.
O punkcie piątym pisze się najwięcej. Działa jednak dopiero wtedy, gdy cztery wcześniejsze są na miejscu. Kto odwraca kolejność, dopracowuje sformułowania w mailu, którego odbiorca i tak nie potrafi przypisać do nadawcy.
Co SPF, DKIM i DMARC faktycznie sprawdzają po stronie odbiorcy
Te trzy mechanizmy wymienia się ciągle jednym tchem, a mimo to regularnie się je myli. Odpowiadają na trzy różne pytania.
SPF mówi, które serwery mogą wysyłać
SPF jest opisany w RFC 7208. To rekord TXT w twojej domenie, w którym zapisano, które serwery mogą dostarczać pocztę w imieniu tej domeny. Serwer odbiorcy porównuje adres IP serwera, który dostarcza wiadomość, z tą listą i w ten sposób otrzymuje odpowiedź na pytanie, czy ta droga wysyłki jest dozwolona.
Właśnie tutaj tkwi drugi najczęstszy błąd w praktyce: rekord SPF może podczas sprawdzania wywołać najwyżej dziesięć zapytań DNS. Każda dołączona usługa zużywa co najmniej jedno z nich. Kto po kolei dopisuje swoją skrzynkę pocztową, usługę newsletterową, narzędzie księgowe i system ticketowy, w końcu przekracza ten limit. Wynikiem jest błąd permerror, a rekord SPF z błędem permerror jest bezwartościowy. Mimo to w DNS wygląda zupełnie niepozornie.
DKIM dowodzi, że po drodze nic nie zostało zmienione
DKIM jest opisany w RFC 6376. Podczas wysyłki w nagłówku wiadomości umieszczany jest podpis kryptograficzny, a pasujący do niego klucz publiczny znajduje się w DNS twojej domeny. Odbiorca sprawdza dzięki temu dwie rzeczy naraz: wiadomość naprawdę pochodzi z tej domeny, a podpisana część nie zmieniła się po drodze.
DMARC łączy jedno i drugie z poleceniem
DMARC jest opisany w RFC 7489. To rekord, który na podstawie dwóch wyników sprawdzania podejmuje decyzję. Określasz w nim, co odbiorca ma zrobić, gdy sprawdzenie się nie powiedzie. Są trzy wartości: none oznacza „nic nie rób”, quarantine oznacza „do folderu spam”, reject oznacza „odrzuć”. Do tego DMARC tworzy kanał zwrotny, przez który dostajesz raporty o tym, kto wysyła pocztę w twoim imieniu.
Zdecydowanie najczęstszy błąd w praktyce: rekord jest ustawiony na p=none i zostaje tak na zawsze. Na początek to właściwe ustawienie, bo najpierw chcesz zobaczyć, co w ogóle jest wysyłane w twoim imieniu. Jako stan trwały to linijka w DNS bez żadnego skutku. Rekord, który ma naprawdę działać, wygląda docelowo tak:
_dmarc.twojafirma.pl. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@twojafirma.pl"
Zgodność domen to miejsce, w którym zawodzi większość konfiguracji
Tu pojawia się kwestia, którą pomija prawie każdy poradnik. DMARC sprawdza nie tylko, czy SPF lub DKIM dały wynik pozytywny. Wymaga dodatkowo, żeby widoczna domena nadawcy pasowała do domeny, która została sprawdzona. Nazywa się to zgodnością domen, po angielsku alignment.
W praktyce dzieje się tak: wysyłasz newsletter przez usługę wysyłkową. W polu nadawcy jest twój własny adres. Technicznie jednak wiadomość dostarcza usługa, a ta ma dla swojej domeny poprawny rekord SPF. SPF przechodzi więc pomyślnie. Podpis również jest wystawiany na domenę usługi. Z perspektywy DMARC wygląda to tak: sprawdzono obcą domenę, a widoczna jest twoja. Zgodność domen nie jest zachowana, więc DMARC nie przechodzi, choć w każdym narzędziu diagnostycznym SPF świeci na zielono.
U każdego poważnego dostawcy rozwiązanie wygląda tak samo: dodajesz własną domenę na koncie usługi wysyłkowej i wpisujesz do swojego DNS klucz DKIM, który usługa ci w tym celu wygeneruje. Od tej chwili podpis jest wystawiany na twoją domenę, zgodność domen jest zachowana, a DMARC przechodzi.
Czego Google, Yahoo i Microsoft wymagają od masowych nadawców
Od lutego 2024 Google i Yahoo stawiają wymagania masowym nadawcom, czyli z grubsza wszystkim, którzy wysyłają na konta Gmail więcej niż około 5 000 wiadomości dziennie. Wymagane są SPF, DKIM i DMARC, działające wypisanie jednym kliknięciem w nagłówku wiadomości zgodnie z RFC 8058 oraz wskaźnik zgłoszeń spamu poniżej 0,3%. Microsoft w 2025 roku zapowiedział i wprowadził podobne wymagania dla Outlook.com.
Jeśli wysyłasz znacznie mniej, formalnie nie jesteś masowym nadawcą. Tyle że w konfiguracji niczego to nie zmienia: trzy rekordy zajmą ci jednorazowo godzinę, o wypisanie jednym kliknięciem zadba twoje narzędzie do wysyłki, a wskaźnik zgłoszeń spamu, bez względu na skalę, zależy od stanu twojej listy. Jedyna różnica polega na tym, że poniżej progu nikt cię z tego nie rozlicza.
Znajdź swój przypadek w tej tabeli
| Objaw | Prawdopodobna przyczyna | Co sprawdzić |
|---|---|---|
| Potwierdzenia z formularza nigdzie nie docierają | Wysyłka standardową drogą PHP z serwera WWW, bez SPF i bez podpisu | Przejrzeć nagłówki wiadomości testowej i sprawdzić, który serwer ją dostarczył |
| Gmail przyjmuje maile, Outlook.com je odsiewa | Brak DMARC albo ustawienie p=none | Odpytać rekord TXT pod _dmarc i odczytać wartość po p |
| Newsletter trafia do spamu, maile z fakturami nie | Dwie drogi wysyłki, tylko jedna podpisuje wiadomości twoją domeną | Porównać podpis DKIM w nagłówkach obu rodzajów maili |
| SPF przechodzi, a DMARC mimo to nie | Zgodność domen: widoczna domena nadawcy nie pasuje do sprawdzonej | Obejrzeć wiersz Authentication-Results, widnieje tam spf=pass obok dmarc=fail |
| Narzędzia diagnostyczne zgłaszają permerror dla SPF | Rekord wywołuje więcej niż dziesięć zapytań DNS | Policzyć wszystkie wpisy include i usunąć usługi, których już nie używasz |
| Najpierw dobra dostarczalność, potem nagle spam | Zbyt szybko zwiększona liczba wysyłanych wiadomości albo wzrost wskaźnika zgłoszeń spamu | Przejrzeć liczbę wysłanych wiadomości z ostatnich tygodni i liczbę wypisań po każdej wysyłce |
Dlaczego pierwsza duża wysyłka prawie zawsze jest hamowana
Systemy odbiorców prowadzą dla każdej wysyłającej domeny coś w rodzaju historii. Domena, która przez lata nic nie wysyłała, a potem we wtorek przed południem dostarcza naraz 2 000 maili, wygląda jak przejęte konto. Jest hamowana, i to niezależnie od tego, jak poprawne są rekordy DNS.
Wyjściem jest rozgrzewanie domeny (warm-up) i nie ma w nim nic spektakularnego. Zacznij od niewielkich wysyłek i stopniowo zwiększaj ich wolumen przez kilka tygodni. Na początek wybierz odbiorców, którzy ostatnio otwierali, klikali albo kupowali, bo to ich reakcje budują twoją reputację. Dopiero potem przychodzi kolej na kontakty, które od dłuższego czasu nie dały znaku życia.
Jeśli najświeższy kontakt na twojej liście ma trzy lata, samo rozgrzewanie niewiele pomoże. Wtedy przed wysyłką trzeba najpierw popracować nad listą.
Zadbana lista daje więcej niż jakakolwiek optymalizacja tekstu
Kupione listy, adresy sprzed lat i ignorowane odbicia szkodzą twojej dostarczalności bardziej niż wszystkie słowa spamowe, których kiedykolwiek udało ci się uniknąć w temacie wiadomości. Powód jest prosty: każdy mail na martwy adres i każde zgłoszenie spamu to dla odbiorcy sygnał, który bezpośrednio obciąża twoją reputację.
Zasady są krótkie. Twarde odbicia (hard bounces), czyli adresy trwale niedostarczalne, od razu usuwasz z listy mailingowej. Przy miękkich odbiciach (soft bounces) możesz kilka razy ponowić próbę, a potem usuwasz te adresy. Zgłoszenie spamu oznacza natychmiastowe wypisanie, bez dopytywania. Adresy, które od lat niczego nie otworzyły, są ryzykiem dla wszystkich pozostałych na twojej liście.
Lista zaczyna się od zgody. Jak wygląda porządny double opt-in (podwójne potwierdzenie zapisu), co trzeba rejestrować i dlaczego pomaga to także technicznie, opisuje artykuł o double opt-in i RODO. W tym miejscu to ocena z praktyki, a nie porada prawna. Do wiążącej oceny twojej sytuacji potrzebujesz kogoś z uprawnieniami do świadczenia pomocy prawnej.
WordPress domyślnie wysyła pocztę niewłaściwą drogą
To osobny punkt, bo w małych projektach jest to najczęstsza pojedyncza przyczyna. WordPress wysyła maile przez wp_mail, a bez dodatkowej konfiguracji sprowadza się to do funkcji PHP mail(). Ta przekazuje wiadomość bezpośrednio serwerowi WWW. Ten serwer z reguły nie figuruje w żadnym rekordzie SPF twojej domeny i niczego też nie podpisuje. Mail wychodzi więc w świat i od razu odpada na obu sprawdzeniach.
Standardowe wyjście z tej sytuacji to kierowanie wysyłki przez SMTP albo API twojego dostawcy usługi wysyłkowej, z twoją własną zweryfikowaną domeną. Dotyczy to wszystkiego, co twoja strona wysyła automatycznie: potwierdzeń z formularzy, maili do resetowania hasła, potwierdzeń zamówień i faktur. Te maile są dla klienta ważniejsze niż jakikolwiek newsletter i to właśnie one znikają najciszej.
Na co tracisz czas
Zostaje jeszcze pytanie, co ocalało z typowych porad. Słowa spamowe w temacie to klasyka i dziś są w dużej mierze folklorem. Filtry przywiązują większą wagę do zachowania nadawcy niż do pojedynczych słów. Słowo „za darmo” w temacie nie jest problemem, dopóki nadawca ma dobrą reputację, i niczego nie ratuje, dopóki jej nie ma.
Nie znaczy to, że praca nad tematem wiadomości jest bezsensowna. Przekłada się tylko na współczynnik otwarć, a nie na dostarczenie. Rozdzielenie tych dwóch obszarów oszczędzi ci mnóstwa bezowocnych przeróbek.
p=none, masz raporty, ale żadnego skutku. Jeśli nie ma tam nic, nie masz nawet raportów.Newsletter z własnego WordPressa, z myślą o dostarczalności
Wtyczka Kurato wysyła przez twoje własne konto u dostawcy i ma wbudowane wypisanie jednym kliknięciem zgodnie z RFC 8058, obsługę odbić i zgłoszeń spamu oraz sygnalizator dostarczalności dla SPF, DKIM i DMARC. Dane kontaktowe zostają w twojej bazie danych.
Co obejmuje wersja Free i gdzie zaczyna się Pro, znajdziesz na stronie z cennikiem. Uczciwie trzeba dodać: rozgałęzione sekwencje automatyzacji we wtyczce Kurato są jeszcze w przygotowaniu.
Najczęściej zadawane pytania
Czym różnią się SPF, DKIM i DMARC?
SPF (RFC 7208) określa, które serwery mogą wysyłać pocztę w imieniu twojej domeny. DKIM (RFC 6376) dodaje podpis kryptograficzny, dzięki któremu odbiorca sprawdza, czy wiadomość pochodzi z twojej domeny i czy nie została zmieniona po drodze. DMARC (RFC 7489) łączy oba wyniki z poleceniem, co ma się stać w razie niepowodzenia, i uruchamia raporty. Dopiero wszystkie trzy razem dają pełny obraz.
Mój rekord DMARC jest ustawiony na p=none. Czy to wystarczy?
Na początek tak, na stałe nie. Przy p=none w razie niepowodzenia nic się nie dzieje, dostajesz jedynie raporty. Sens tego etapu polega na tym, żeby przez kilka tygodni obserwować, kto wysyła pocztę w twoim imieniu. Potem polecenie trzeba zmienić na quarantine, a później na reject, bo inaczej rekord pozostaje linijką bez żadnego skutku.
SPF przechodzi, a DMARC mimo to nie. Jak to możliwe?
Prawie zawsze chodzi o zgodność domen. DMARC wymaga, żeby widoczna domena nadawcy pasowała do domeny, którą sprawdził SPF lub DKIM. Kto wysyła przez usługę wysyłkową, nie weryfikując tam własnej domeny i nie podpisując nią wiadomości, przechodzi SPF dla domeny usługi, ale nie przechodzi DMARC. Rozwiązaniem jest klucz DKIM dla twojej własnej domeny.
Czy unikanie słów spamowych w temacie wiadomości pomaga?
Niewiele. Nowoczesne filtry przywiązują większą wagę do zachowania nadawcy niż do pojedynczych słów. Nadawca z dobrą reputacją bez problemu przechodzi przez filtry ze słowem „za darmo” w temacie, a nadawca bez reputacji odpada nawet przy najgrzeczniejszym sformułowaniu. Praca nad tematem wiadomości opłaca się ze względu na współczynnik otwarć, dla dostarczenia daje niewiele.
Dlaczego potwierdzenia z formularzy w WordPressie trafiają do spamu?
Bo bez dodatkowej konfiguracji WordPress wysyła pocztę przez funkcję PHP mail(), a więc wiadomość wychodzi z serwera WWW. Ten serwer zwykle nie figuruje w żadnym rekordzie SPF twojej domeny i niczego nie podpisuje, dlatego SPF i DKIM zawodzą jednocześnie. Standardowym rozwiązaniem jest kierowanie wysyłki przez SMTP albo API twojego dostawcy usługi wysyłkowej, z twoją własną zweryfikowaną domeną.