Mail z linkiem do resetowania hasła to jeden z najbardziej krytycznych typów wiadomości e-mail. Jeśli użytkownik go nie dostanie, nie będzie w stanie zalogować się do konta — a dla niego oznacza to stres i wątpliwości co do wiarygodności Twojej usługi. Dla Ciebie to utrata angażu, potencjalnie nowe zgłoszenia do supportu i spadek zaufania.
Jeśli te maile systematycznie nie dochodzą lub trafiają do spamu, powód jest praktycznie zawsze jeden z trzech: niepoprawnie skonfigurowana autentykacja (SPF, DKIM, DMARC), zbyt mała reputacja domeny wysyłającego, albo problem z samym kodem lub procesem wysyłania na stronie aplikacji. W tym poradniku idziesz przez każdy z nich.
Dlaczego maile resetujące hasło trafiają do spamu?
Nowoczesne dostawcy e-maili (Gmail, WP.pl, Outlook, Onet, Interia) korzystają z algorytmów reputacyjnych, które decydują o tym, czy wiadomość trafi do Inbox czy Spam. Te algorytmy patrzą na wiele sygnałów:
- Autentykacja domeny: czy SPF, DKIM i DMARC są skonfigurowane. Bez nich wiadomość jest „potencjalnym fałszerstwem".
- Historia domeny: jak długo domena istnieje, czy wysyła regularnie, czy ma negatywne skargi na listach blokad.
- Zawartość wiadomości: czy nie zawiera podejrzanych linków, agresywnych CTA, słów kluczowych dla spamu.
- Dynamika wysyłania: jeśli nagle wysyłasz 1000 maili resetów w ciągu godziny, algorytm widzi anomalię.
- Zachowanie użytkownika: jeśli poprzednie maile z Twojej domeny były spamowane, filtr zapamiętuje to.
Szczególnie polska infrastruktura (WP.pl, Onet) jest znana z konserwatywnego podejścia do nowych domen — nawet z poprawną autentykacją mail bez historii może trafić do spamu. Dlatego profilaktyka jest kluczowa.
Krok 1: Weryfikacja SPF, DKIM i DMARC
To są trzy różne mechanizmy autentykacji, które pracują razem. Zanim cokolwiek więcej robisz, musisz mieć je wszystkie skonfigurowane.
SPF (Sender Policy Framework): Dodaj rekord TXT do DNS Twojej domeny:
v=spf1 include:_spf.google.com include:sendgrid.net ~all(Zamień sendgrid.net na IP lub domenę Twojego SMTP-dostawcy. ~all oznacza „soft fail" — to OK dla testów; -all to „hard fail", ale tylko jeśli jesteś pewny, że to jedyne źródło.)
DKIM (DomainKeys Identified Mail): Twój ESP/SMTP-dostawca powinien dać Ci publiczny klucz DKIM. Dodaj go jako rekord TXT w DNS:
selector._domainkey.twoja-domena.pl TXT "v=DKIM1; k=rsa; p=MIGfMA0BGQ..."(Dokładny format zależy od dostawcy — sprawdź jego dokumentację.)
DMARC (Domain-based Message Authentication, Reporting, and Conformance): Dodaj rekord DMARC w DNS:
_dmarc.twoja-domena.pl TXT "v=DMARC1; p=none; rua=mailto:admin@twoja-domena.pl"p=none oznacza „monitoruj, ale nie blokuj". Jak będziesz pewny, zmień na p=quarantine albo p=reject.
Zamiast szukać w panelu DNS, użyj dig lub nslookup:
dig twoja-domena.pl TXT
dig selector._domainkey.twoja-domena.pl TXT
dig _dmarc.twoja-domena.pl TXTJeśli rekordy pojawią się, czekaj 24–48 godzin aż rozpropagują się globalnie.
Krok 2: Testowanie dostarczalności za darmo
Teraz, zanim pchasz zmiany SPF/DKIM na produkcję, test jest obowiązkowy. Chcesz wiedzieć dokładnie, gdzie ląduje mail: w Inbox czy Spam u Gmaila, WP.pl, Outlook itp.
check.live-direct-marketing.online to bezpłatny test dostarczalności: wysyłasz przykładowy mail z Twojej domeny na seed-adresy u 20+ popularnych operatorów. Dostajesz raport:
- Papka (Inbox / Spam / Promotions) dla każdego operatora.
- Werdykty spamowe (ClamAV, SpamAssassin itp.).
- Zdjęcie maila w rzeczywistym ящику — jak wygląda w light/dark mode.
- Szczegóły autentykacji (czy SPF/DKIM/DMARC przeszły).
Wynik pokazuje Ci natychmiast, czy zmiana DNS rzeczywiście działa, zanim dasz ją produkcji.
Krok 3: Diagnostyka aplikacji i SMTP
Jeśli autentykacja jest OK, ale maile ciągle nie dochodzą, szukamy dalej:
- Czy mail w ogóle jest wysyłany? Sprawdź logi aplikacji. Szukaj komunikatów o błędach przy wysłaniu — połączenie do SMTP, timeout, błędy hosta. Jeśli widzisz błędy, przyczyna znaleziona: albo błędny host SMTP, albo błędna autentykacja (hasło/token).
- Czy jest w queue? Jeśli aplikacja wysłała maila do SMTP, ale SMTP zwróci błąd „Spróbuj później", mail czeka w queue dostawcy. Może to trwać minuty lub godziny. Sprawdź panel administratora SMTP-dostawcy (SendGrid, Mailgun, Amazon SES) — tam widzisz status każdego maila.
- Czy jest rate limiting? Jeśli wysyłasz zbyt wiele maili resetów w krótkim czasie, SMTP może zablokować połączenie ze względu na limit. Typowy limit to 100–1000 maili/godzinę. Dodaj queue do aplikacji (Bull w Node.js, Celery w Pythonie) i wysyłaj maile sekwencyjnie.
- Czy mail trafia do spamu? Zaloguj się na testowy account odbiorcy (Gmail, WP.pl, Outlook) i sprawdź folder Spam/Junk. Czasem mail dochodzi, ale użytkownik go nie widzi.
Krok 4: Reputacja domeny i warmup
Jeśli zmieniłeś niedawno domenę wysyłającą (albo to nowa domena), algorytmy filtrów mogą być ostrożne. Rozwiąż to:
- Nie wysyłaj masowo w pierwszy dzień: zamiast 10 000 resetów, zacznij od 50–100 dziennie przez tydzień, potem zwiększaj. To się zwie „warmup".
- Monitoruj bounce-rate: jeśli dużo maili wraca z błędem „user not found" (hard bounce), domena trafia na czarne listy. Czyść bazę z nieaktywnych adresów.
- Unikaj spamowych słów: treść maila resetującego powinna być prosta: „Tutaj Twój link resetowania". Unikaj CTA w stylu „KLIKAJ TERAZ!!!", linków skróconych (bit.ly) czy dużych obrazów — to znaki ostrzegawcze dla spamowych filtrów.
Checklist — przed wdrażaniem zmian
- ✓ SPF rekord w DNS — zaktualizowany i rozpropagowany (24–48h).
- ✓ DKIM rekord w DNS — klucz publiczny zarejestrowany.
- ✓ DMARC rekord w DNS — skonfigurowany na
p=nonelubp=quarantine. - ✓ Test za darmo (check.live-direct-marketing.online) — mail dochodzi do Inbox u co najmniej Gmail i WP.pl.
- ✓ Logi aplikacji — brak błędów połączenia do SMTP.
- ✓ Limit wysyłania na SMTP — sprawdzony u dostawcy.
- ✓ Test ręczny — zaloguj się na konto odbiorcy i zażądaj resetowania hasła. Czy mail przychodzi w ciągu 1–5 minut?
Ile czasu zajmuje rozpropagowanie rekordu SPF/DKIM w DNS?
Zwykle 24–48 godzin, ale może być szybciej (nawet pół godziny). To zależy od TTL (Time To Live) ustawionego na rekordzie. Aby przyspieszyć, zmniejsz TTL przed dodaniem rekordu (zmień na 300 sekund), dodaj rekord, czekaj minimum 1 godzinę, a potem zmień TTL z powrotem na normalną wartość (3600+).
Co to znaczy 'soft fail' vs 'hard fail' w SPF?
SPF ~ (tilda) to soft fail — mówi odbiorcy „ten mail może nie być od nas, ale nie odrzucaj go na pewno". Używaj tego w fazie testów. SPF - (minus) to hard fail — „nie akceptuj tego maila, jeśli nie pochodzi z wylistowanego IP". Hard fail może być ryzykowny, jeśli źle skonfigurujesz SPF i blokujesz legalne maile. Zmień na hard fail tylko jak jesteś pewny.
Czy sam DMARC wystarczy bez SPF i DKIM?
Nie. DMARC to policja — mówi co robić, gdy SPF lub DKIM zawiedzie. Ale jeśli SPF i DKIM nie są skonfigurowane, DMARC ma mało do powiedzenia. Wszystkie trzy działają razem: SPF i DKIM autentykują mail, DMARC egzekwuje politykę i daje raport o awariach.