Skupvhs.pl – Mocna baza firm. Znajdź lokalnych ekspertów

Dlaczego formularz na WordPress nie wysyła maili? Napraw to

14 lipca 2026 · Internet · 9 min czytania
Dlaczego formularz na WordPress nie wysyła maili? Napraw to

Klienci piszą do Ciebie przez formularz, a Ty dowiadujesz się o tym dopiero po dwóch tygodniach, gdy wściekły kontrahent dzwoni z pytaniem, dlaczego go ignorujesz? Problem polega na tym, że Twój serwer udaje, że wysyła maile, a serwery odbiorców (Gmail, Outlook czy Onet) traktują je jak śmieci i odrzucają na starcie. Rozwiązaniem nie jest instalacja kolejnej wtyczki do formularzy, ale wyrzucenie domyślnej metody wysyłki wp_mail do kosza i zastąpienie jej autoryzowanym połączeniem SMTP.

Dlaczego funkcja mail() w PHP to proszenie się o kłopoty?

Większość początkujących użytkowników WordPressa zakłada, że skoro zainstalowali Contact Form 7 czy WPForms, to wszystko powinno po prostu działać. Niestety, WordPress domyślnie korzysta z funkcji PHP mail(). Problem w tym, że ta metoda jest ulubionym narzędziem spamerów na całym świecie. Serwery hostingowe często są skonfigurowane tak, by pozwalać na tę wysyłkę, ale nie dają żadnych gwarancji, że wiadomość dotrze do celu.

Kiedy serwer pocztowy odbiorcy (np. Google) dostaje wiadomość wysłaną przez PHP mail(), widzi, że mail "twierdzi", że pochodzi z Twojej domeny [email protected], ale tak naprawdę został wygenerowany przez skrypt systemowy serwera, który nie przeszedł żadnej weryfikacji. Dla filtrów antyspamowych to czerwona flaga wielkości prześcieradła. Efekt? Mail albo trafia do folderu SPAM, albo – co gorsza – zostaje całkowicie odrzucony na poziomie serwera (tzw. blackhole), a Ty nawet nie dostajesz powiadomienia, że coś poszło nie tak.

Z mojego doświadczenia wynika, że około 90% problemów z brakiem maili z formularzy to kwestia braku autoryzacji nadawcy. Serwer odbiorcy zadaje pytanie: "Czy ten serwer ma prawo wysyłać maile w imieniu tej domeny?". Jeśli używasz standardowego formularza bez dodatkowej konfiguracji, odpowiedź brzmi "Nie wiem" lub "Nie", więc wiadomość jest kasowana.

Złudne poczucie bezpieczeństwa, czyli dlaczego maile dochodzą "czasem"

Najgorszy scenariusz to taki, w którym formularz działa wybiórczo. Testujesz go na swoim mailu w tej samej domenie i wszystko gra. Potem klient z Gmailem wysyła zapytanie i cisza. Dlaczego tak się dzieje? Serwery pocztowe wewnątrz tego samego hostingu często ufają sobie nawzajem bardziej. Jednak gdy wiadomość musi wyjść "na zewnątrz", do globalnych dostawców, zaczynają obowiązywać restrykcyjne zasady DMARC, SPF i DKIM.

Brak tych rekordów w połączeniu z wysyłką przez PHP sprawia, że Twoja domena zyskuje złą reputację. Jeśli z Twojego serwera (współdzielonego z setkami innych stron) ktoś inny wysyła spam, adres IP tego serwera trafia na czarne listy (RBL). Używając domyślnej wysyłki WordPressa, dzielisz ten problem z innymi. Rozwiązaniem jest przejście na własne, autoryzowane konto e-mail, gdzie każda wysłana wiadomość jest podpisana Twoim hasłem i loginem.

Jak sprawdzić, czy problem leży w WordPressie, czy w serwerze?

Zanim zaczniesz grzebać w kodzie, musisz zdiagnozować, w którym miejscu łańcuch pęka. Wykonaj prosty test krok po kroku:

Jeśli w logach widzisz, że mail został wysłany, oznacza to, że WordPress wykonał swoją robotę, a problem leży po stronie serwera lub filtrów antyspamowych odbiorcy. Jeśli w logach nie ma nic, problemem jest sama wtyczka formularza lub konflikt skryptów na stronie. W 99% przypadków logi pokazują, że WordPress wysłał maila, ale ten nigdy nie dotarł do skrzynki odbiorczej.

Warto też zajrzeć do ustawień samej wtyczki formularza. Często spotykam błąd, gdzie w polu "Od" (From) wpisany jest adres e-mail klienta, który wypełnia formularz. To kardynalny błąd! Twój serwer nie może wysyłać maili "jako" [email protected]. W polu "Od" musi być zawsze adres w Twojej domenie, np. [email protected]. Adres klienta powinien lądować jedynie w polu "Reply-to" (Odpowiedz do).

Konfiguracja SMTP – jedyne skuteczne lekarstwo

SMTP (Simple Mail Transfer Protocol) to standard wysyłania poczty, który wymaga zalogowania się do skrzynki. Kiedy konfigurujesz SMTP w WordPressie, mówisz stronie: "Nie próbuj sama wysyłać maili. Zaloguj się na moje konto [email protected] i wyślij to tak, jakbym ja to robił przez Outlooka".

Do tego celu najlepiej użyć wtyczki WP Mail SMTP (wersja darmowa w zupełności wystarczy) lub FluentSMTP. Proces konfiguracji wygląda zazwyczaj tak:

Dane, których będziesz potrzebować od swojego hostingu:

Po wpisaniu tych danych wtyczka przeprowadzi test. Jeśli zobaczysz zielony komunikat "Success", Twoje problemy z niedochodzącymi mailami właśnie się skończyły. Teraz każda wiadomość z formularza będzie miała cyfrowy "paszport", który pozwoli jej przejść przez kontrole graniczne serwerów Google czy Microsoftu.

Pułapki przy wyborze dostawcy poczty do wysyłki

Wielu moich klientów próbuje używać do SMTP swoich prywatnych kont Gmail. To rozwiązanie na krótką metę. Google ma bardzo restrykcyjne limity wysyłki dla darmowych kont i często blokuje takie połączenia, uznając je za mniej bezpieczne (chyba że wygenerujesz specjalne hasło aplikacji). Jeśli prowadzisz biznes, korzystaj z profesjonalnych rozwiązań.

Jeżeli Twój serwis generuje setki maili dziennie (np. sklep WooCommerce), standardowy serwer współdzielony może zacząć blokować wysyłkę, by chronić swoje zasoby. Wtedy warto rozważyć zewnętrzne serwisy typu SendGrid, Mailgun czy Amazon SES. Są one zaprojektowane typowo do wysyłki masowej i transakcyjnej, co gwarantuje niemal 100% dostarczalności. Kosztują kilka dolarów miesięcznie, ale święty spokój i pewność, że każde zamówienie dotarło do klienta, są tego warte.

Jeśli potrzebujesz profesjonalnego wsparcia przy optymalizacji swojej strony lub jej infrastruktury, warto sprawdzić ekspertów takich jak Smartwww Kraków, którzy od lat zajmują się stabilnością systemów webowych. Często jeden źle skonfigurowany rekord w strefie DNS może zniweczyć cały wysiłek włożony w budowę strony.

SPF, DKIM i DMARC – trzy filary Twojej wiarygodności

Nawet najlepsza konfiguracja SMTP może zawieść, jeśli Twoja domena nie ma odpowiednich wpisów w strefie DNS. To są te "techniczne nudziarstwa", które sprawiają, że maile nie wpadają do spamu. Jeśli sam zarządzasz domeną, musisz sprawdzić te trzy rzeczy:

SPF (Sender Policy Framework) to rekord TXT w Twoim DNS, który mówi: "Pozwalam serwerowi o tym IP wysyłać maile w moim imieniu". Jeśli go nie ma, serwer odbiorcy traktuje maila jako podejrzanego. Wygląda to mniej więcej tak: v=spf1 include:_spf.google.com ~all (dla Google).

DKIM (DomainKeys Identified Mail) to rodzaj cyfrowego podpisu dodawanego do nagłówka maila. Serwer odbiorcy sprawdza ten podpis z kluczem publicznym w Twoim DNS. Jeśli się zgadzają, ma pewność, że treść maila nie została zmieniona w drodze. To absolutna podstawa w 2024 roku.

DMARC to instrukcja dla serwera odbiorcy: "Co masz zrobić, jeśli SPF lub DKIM się nie zgadza?". Możesz ustawić, żeby takie maile były odrzucane, trafiały do spamu lub były ignorowane. Brak DMARC powoduje, że Gmail czy Yahoo od razu patrzą na Twoje maile krzywo.

Najczęstsze błędy, które widzę u klientów

Przez lata naprawiania "niedziałających formularzy" zauważyłem pewną powtarzalność błędów. Sprawdź, czy nie popełniasz któregoś z nich:

Co zrobić, gdy formularz pokazuje "Wiadomość wysłana", a maila nie ma?

To najbardziej irytująca sytuacja. Skrypt PHP wykonał się poprawnie, wtyczka nie zgłosiła błędu, a skrzynka jest pusta. W 99% przypadków oznacza to, że mail został zatrzymany przez filtr antyspamowy na poziomie serwera odbiorcy lub firewall serwera wysyłającego.

Sprawdź folder Spam – to oczywiste. Ale sprawdź też folder "Oferty" lub "Powiadomienia" w Gmailu. Jeśli tam jest, musisz popracować nad treścią maila. Unikaj słów takich jak "promocja", "kup teraz", "darmowy" oraz nadmiaru wykrzykników w temacie wiadomości generowanej przez formularz. Upewnij się też, że nie wysyłasz samego linku bez żadnego tekstu – to pewny bilet do spamu.

Kolejnym krokiem jest sprawdzenie tzw. Bounce messages. Jeśli masz dostęp do konta e-mail, z którego wysyłasz przez SMTP, sprawdź tam folder "Wysłane" oraz "Odebrane". Często serwery odbiorców odsyłają informację zwrotną z kodem błędu (np. 550 Blocked). Z tego kodu dowiesz się dokładnie, dlaczego Twój mail został odrzucony.

Czy wtyczka formularza ma znaczenie dla dostarczalności?

Z technicznego punktu widzenia – niewielkie. Contact Form 7, WPForms, Ninja Forms czy Elementor Forms wszystkie używają tej samej funkcji wp_mail() do przekazania wiadomości do WordPressa. Różnią się one jednak tym, jak budują nagłówki wiadomości.

Elementor Forms bywa problematyczny, bo ma tendencję do nadpisywania ustawień "From Name" i "From Email", co czasem gryzie się z globalnymi ustawieniami wtyczek SMTP. Contact Form 7 z kolei jest bardzo surowy i jeśli nie skonfigurujesz go idealnie zgodnie z dokumentacją (zakładka "Mail"), często wyświetla komunikat o błędzie z pomarańczową ramką, co zazwyczaj oznacza właśnie problem z konfiguracją nagłówków lub brakiem SPF.

Zamiast zmieniać wtyczkę formularza co tydzień, skup się na poprawnym wdrożeniu SMTP. To jest fundament, na którym opiera się cała komunikacja Twojej strony ze światem zewnętrznym. Bez tego nawet najdroższa wtyczka "premium" nie zapewni Ci dotarcia do klienta.

Ile kosztuje naprawa wysyłki maili?

Jeśli robisz to sam, kosztuje Cię to około 30-60 minut pracy. Jeśli zlecasz to specjaliście, ceny wahają się zazwyczaj od 150 do 400 zł netto, w zależności od tego, czy trzeba tylko skonfigurować wtyczkę, czy również prostować rekordy DNS u zewnętrznego rejestratora domeny. To jednorazowy koszt, który zwraca się przy pierwszym zapytaniu ofertowym, które dzięki temu do Ciebie dotrze.

FAQ - Najczęstsze pytania o maile w WordPress

1. Czy muszę mieć osobne konto e-mail do formularza?
Nie, możesz używać swojego głównego konta biznesowego, ale dobrą praktyką jest stworzenie dedykowanego adresu, np. [email protected], aby oddzielić komunikację automatyczną od osobistej.

2. Dlaczego maile z WordPressa trafiają do spamu, a te wysyłane z Outlooka nie?
Outlook wysyła maile przez serwery Microsoftu z pełną autoryzacją i historią. WordPress (bez SMTP) wysyła je jako anonimowy skrypt, co dla serwerów odbiorczych jest sygnałem ostrzegawczym.

3. Czy wtyczka SMTP spowalnia stronę?
Minimalnie, w momencie wysyłania formularza. Musi ona nawiązać połączenie z serwerem pocztowym, co trwa ułamek sekundy dłużej niż wysłanie maila przez systemową funkcję PHP, ale korzyści z dostarczalności miażdżą tę drobną niedogodność.

4. Mam ustawione SMTP, a maile dalej nie dochodzą. Co teraz?
Sprawdź, czy Twój adres e-mail nie trafił na czarną listę (np. na stronie MXToolbox). Sprawdź też, czy Twój hosting nie ma nałożonych limitów dziennych na liczbę wysyłanych wiadomości (niektóre mają limit np. 50 maili na godzinę).

Jak utrzymać wysoką dostarczalność na dłuższą metę?

Konfiguracja SMTP to nie koniec. Regularnie sprawdzaj, czy Twoje maile nie są oznaczane przez odbiorców jako spam. Jeśli prowadzisz sklep, monitoruj, czy klienci dostają potwierdzenia zamówień. Raz na kwartał wyślij testowy formularz z różnymi adresami e-mail (Gmail, WP.pl, firmowy), by mieć pewność, że nic się nie zmieniło w polityce dostawców poczty.

Pamiętaj też o aktualizacji wtyczek odpowiedzialnych za wysyłkę. Deweloperzy często wprowadzają poprawki związane ze zmianami w API dużych dostawców (jak Google czy Microsoft). Utrzymywanie wtyczki SMTP w najnowszej wersji to nie tylko kwestia bezpieczeństwa, ale przede wszystkim ciągłości Twojego biznesu.

Jeśli zauważysz, że mimo poprawnej konfiguracji maile zaczynają docierać z dużym opóźnieniem (kilka-kilkanaście minut), może to oznaczać, że serwer SMTP, z którego korzystasz, jest przeciążony. W takim przypadku warto rozważyć przejście na profesjonalny relay SMTP, który odciąży Twój serwer hostingowy i zapewni błyskawiczną wysyłkę powiadomień.

Polecane firmy: Internet

Smartwww - strony internetowe, pozycjonowanie SEO, Al, tworzenie stron www KrakówSmartwww - strony internetowe, pozycjonowanie SEO, Al, tworzenie stron www Kraków
Internet Małopolskie
📍 Tatarska 5, 30-103 Kraków
📞 123502505
✉️ [email protected]
🌐
🕒 Cały tydzień
NIP: 677-234-88-58 · REGON: 0000366216 · KRS: 0000366216
Udostępnij:FacebookXLinkedIn

« wróć na bloga