WordPress nie wysyła maili z formularza kontaktowego
Zespół Businesshost · Ostatnia aktualizacja: lipiec 2026
Rekomendowany plan
Start
39 zł
/ mies
brutto z VAT 23%: 47,97 zł
Dlaczego ten plan?
Bo zaznaczyłeś: 1 strona i WordPress. Plan Start w zupełności wystarczy na jedną firmową stronę: codzienny backup, SSL i wsparcie po polsku w cenie.
Bez karty. Płacisz dopiero, gdy będziesz zadowolony.
WordPress nie wysyła maili najczęściej dlatego, że próbuje to zrobić funkcją PHP mail(), której większość hostingów już nie obsługuje albo blokuje jako źródło spamu. Rozwiązaniem jest wysyłka przez SMTP na uwierzytelnionym koncie w Twojej domenie, ustawiona raz i sprawdzona testową wiadomością. Objaw jest zawsze ten sam i zawsze kosztowny: formularz kontaktowy pokazuje zielony komunikat "wiadomość wysłana", a do skrzynki nic nie trafia. Zapytania od klientów przepadają po cichu, czasem tygodniami, bo nikt nie dostaje żadnego błędu.
Dlaczego WordPress w ogóle nie wysyła maili
WordPress domyślnie nie ma własnego mechanizmu poczty. Wywołuje wbudowaną w PHP funkcję mail(), która przekazuje wiadomość lokalnemu programowi pocztowemu na serwerze, a ten próbuje dostarczyć ją dalej. Ten model powstał dwadzieścia lat temu, w czasach, gdy każdy serwer WWW był jednocześnie serwerem poczty. Dziś jest odwrotnie: wiadomość wysłana w ten sposób nie ma nadawcy, który dałby się zweryfikować, więc filtry antyspamowe traktują ją jak podejrzaną z definicji.
Dlatego kolejni dostawcy hostingu ograniczają albo całkowicie wyłączają funkcję mail() na kontach współdzielonych. Powód jest prozaiczny: jedna zainfekowana strona na serwerze potrafi wysłać dziesiątki tysięcy wiadomości w ciągu godziny i doprowadzić do wpisania całego adresu IP na czarne listy, co uderza we wszystkich klientów tej maszyny. Blokada jest więc formą ochrony pozostałych stron, tylko rzadko ktokolwiek informuje o niej właściciela witryny.
Z perspektywy firmy wygląda to tak, jakby strona działała bez zarzutu. Nie ma komunikatu błędu, nie ma wpisu w widocznym miejscu panelu, formularz zachowuje się normalnie. Problem wychodzi na jaw dopiero wtedy, gdy klient dzwoni z pretensją, że wysłał zapytanie trzy tygodnie temu i nikt nie odpowiedział.
Sprawdź w pięć minut, gdzie leży problem
Zanim zaczniesz instalować wtyczki, warto ustalić, czy wiadomość w ogóle opuszcza serwer. Kolejność testów wygląda tak:
- Wymuś systemowy e-mail z WordPressa. Wejdź w Narzędzia, a potem Zdrowie witryny. Zakładka Informacje pokaże, czy WordPress wykrywa problemy z pocztą. Alternatywnie użyj funkcji resetowania hasła dla własnego konta administratora: jeśli link do zmiany hasła nie przychodzi, poczta nie działa na poziomie całego WordPressa, a nie tylko formularza.
- Sprawdź folder spam i kwarantannę. Brzmi banalnie, ale w około jednej trzeciej zgłoszeń, które do nas trafiają, wiadomości są wysyłane poprawnie i lądują w spamie odbiorcy. To zupełnie inny problem i inna naprawa.
- Włącz dziennik wysyłki. Wtyczki SMTP zapisują każdą próbę wysłania razem z odpowiedzią serwera. Bez takiego dziennika diagnozujesz po omacku. Jeśli w dzienniku widnieje błąd uwierzytelnienia, masz gotową odpowiedź.
- Wyślij wiadomość na dwa różne adresy. Jeden w Twojej domenie firmowej, drugi u dużego dostawcy poczty. Jeśli dociera tylko jeden, problem dotyczy reputacji nadawcy, a nie samej wysyłki.
Ten kwadrans oszczędza zwykle kilka godzin. Naprawianie SMTP, gdy w rzeczywistości masz źle ustawiony rekord SPF, kończy się tym, że wszystko wygląda poprawnie, a wiadomości dalej nie docierają.
Pięć najczęstszych przyczyn i co je odróżnia
| Przyczyna | Jak się objawia | Naprawa |
|---|---|---|
| Funkcja mail() wyłączona przez hosting | Nie działa nic, łącznie z resetem hasła administratora | Przejście na wysyłkę SMTP z uwierzytelnieniem |
| Adres nadawcy spoza Twojej domeny | Wiadomości wychodzą, ale są odrzucane lub trafiają do spamu | Ustawienie nadawcy na adres w domenie firmowej |
| Błędne dane SMTP lub hasło | Dziennik pokazuje błąd uwierzytelnienia albo odmowę połączenia | Poprawienie hosta, portu, loginu i hasła skrzynki |
| Zablokowany port wychodzący | Połączenie do serwera poczty wygasa bez odpowiedzi | Zmiana portu na 587 z szyfrowaniem STARTTLS |
| Konflikt wtyczek lub cache | Formularz przestał działać dokładnie po aktualizacji | Wyłączenie wtyczek po kolei na kopii strony |
Warto zwrócić uwagę na drugi wiersz, bo to najczęściej pomijana pułapka. Wiele formularzy domyślnie ustawia jako nadawcę adres osoby, która wypełniła formularz. Serwer odbiorcy widzi wtedy wiadomość rzekomo od klienta, wysłaną z serwera, który nie ma prawa wysyłać poczty w jego imieniu, i słusznie ją odrzuca. Nadawcą powinien być zawsze adres w Twojej domenie, a adres klienta należy wstawić w pole "odpowiedz do".
Jak to naprawić: SMTP zamiast funkcji mail()
Docelowe rozwiązanie jest w zasadzie zawsze takie samo. Zakładasz skrzynkę w domenie firmowej, na przykład [email protected], i konfigurujesz WordPressa tak, żeby logował się do niej jak zwykły program pocztowy i wysyłał przez nią wiadomości. Wtedy każda wiadomość ma prawdziwego, uwierzytelnionego nadawcę i przechodzi weryfikację po stronie odbiorcy.
Potrzebujesz pięciu danych, które dostajesz od dostawcy hostingu: adres serwera poczty wychodzącej, port, rodzaj szyfrowania, login skrzynki oraz jej hasło. W praktyce port 587 ze STARTTLS jest dziś domyślnym wyborem, a port 465 z SSL jego starszym odpowiednikiem. Port 25 pomiń, bo bywa blokowany zarówno przez hostingi, jak i przez operatorów sieci.
Po zapisaniu ustawień wyślij wiadomość testową i sprawdź dziennik. Jeśli widzisz potwierdzenie przyjęcia przez serwer, wysyłka działa. Na koniec przetestuj rzeczywisty formularz kontaktowy, a nie tylko funkcję testową wtyczki, bo formularze mają własne ustawienia nadawcy, które potrafią nadpisać konfigurację globalną.
U nas skrzynki są częścią abonamentu, a nie osobno płatnym dodatkiem, więc konto pod wysyłkę z formularza nie generuje dodatkowego kosztu. Szczegóły opisujemy na stronie poczty firmowej na własnej domenie, gdzie znajdziesz też komplet parametrów SMTP. Jeśli dopiero wybierasz, gdzie postawić witrynę, sprawdź, czy dostawca w ogóle daje pocztę w cenie, bo to jeden z punktów naszej listy kontrolnej dla hostingu stron internetowych dla firm.
Gdy maile wychodzą, ale nie docierają
To osobna klasa problemów i nie naprawi jej żadna wtyczka SMTP. Jeśli dziennik pokazuje udane wysłanie, a wiadomości lądują w spamie albo znikają, brakuje Ci najprawdopodobniej poprawnych wpisów uwierzytelniających domenę: SPF, DKIM i DMARC. SPF mówi, które serwery mogą wysyłać pocztę w imieniu Twojej domeny, DKIM podpisuje wiadomość kryptograficznie, a DMARC określa, co odbiorca ma zrobić, gdy któryś z tych testów zawiedzie.
Bez tych trzech rekordów duże serwisy pocztowe od dawna traktują wiadomości firmowe podejrzliwie, a od 2024 roku część z nich wprost odrzuca pocztę od nadawców, którzy ich nie mają. Rozpisaliśmy całą konfigurację w osobnym poradniku o tym, dlaczego firmowe maile trafiają do spamu.
Ta sama awaria uderza we wszystko, co Twoja firma wysyła automatycznie: potwierdzenia zamówień, powiadomienia o nowym zgłoszeniu, przypomnienia o terminach, a także automatyczne przypomnienia o niezapłaconych fakturach, jeśli wysyłasz je z systemu podpiętego pod tę samą domenę. Warto o tym pamiętać, bo problem zgłoszony jako "formularz na stronie nie działa" bywa w rzeczywistości problemem z pocztą całej firmy.
Jak nie stracić zapytań, zanim naprawisz
Najważniejsze zabezpieczenie jest banalnie proste i mało kto je stosuje: włącz w formularzu zapisywanie zgłoszeń do bazy danych. Popularne wtyczki formularzy mają taką opcję albo osobny dodatek. Dzięki temu, nawet jeśli wysyłka padnie, treść zapytania zostaje w panelu WordPressa i możesz do klienta oddzwonić. Formularz, który wyłącznie wysyła maila i nic nie zapisuje, jest pojedynczym punktem awarii dla całej sprzedaży ze strony.
Drugi krok to monitoring. Raz w miesiącu wyślij testowe zapytanie przez własny formularz i sprawdź, czy przyszło. Zajmuje to minutę, a wyłapuje problem, zanim zrobi to niezadowolony klient. Aktualizacje wtyczek i zmiany po stronie dostawcy poczty potrafią zepsuć działającą konfigurację bez żadnego ostrzeżenia, więc jednorazowe ustawienie i zapomnienie nie wystarcza.
Jeśli nie chcesz tego pilnować samodzielnie, to jest dokładnie ten rodzaj zadania, który powinien być po stronie dostawcy. W naszych planach od poziomu Biznes konfiguracja poczty, monitorowanie wysyłki i aktualizacje wtyczek mieszczą się w abonamencie i opisujemy je razem z resztą zakresu w sekcji o utrzymaniu strony internetowej.
Dlaczego WordPress nie wysyła maili?
W większości przypadków dlatego, że korzysta z funkcji PHP mail(), którą hosting ograniczył lub wyłączył, żeby nie dopuścić do rozsyłania spamu z zainfekowanych stron. Wiadomość nie ma wtedy uwierzytelnionego nadawcy i albo w ogóle nie opuszcza serwera, albo jest odrzucana przez odbiorcę. Naprawą jest wysyłka przez SMTP na koncie w Twojej domenie.
Jak sprawdzić, czy WordPress wysyła maile?
Najszybszy test to poproszenie o reset hasła dla własnego konta administratora. Jeśli wiadomość nie przychodzi w ciągu kilku minut i nie ma jej w spamie, poczta nie działa w całym WordPressie, a nie tylko w formularzu. Dokładniejszą odpowiedź daje dziennik wysyłki we wtyczce SMTP, który zapisuje odpowiedź serwera dla każdej próby.
Czy formularz kontaktowy potrzebuje SMTP?
Praktycznie zawsze tak. Bez SMTP formularz opiera się na funkcji mail(), która nie uwierzytelnia nadawcy, więc nawet gdy wiadomość zostanie wysłana, duże serwisy pocztowe często ją odrzucają lub kierują do spamu. Konfiguracja SMTP na skrzynce w domenie firmowej zajmuje kilka minut i rozwiązuje oba problemy naraz.
Dlaczego Contact Form 7 nie wysyła wiadomości?
Najczęściej z dwóch powodów: brak konfiguracji SMTP oraz adres nadawcy ustawiony na adres osoby wypełniającej formularz. W polu "Od" wpisz adres w swojej domenie, a adres klienta umieść w polu "Odpowiedz do". Sprawdź też, czy zakładka Mail nie zawiera literówki w adresie odbiorcy i czy wtyczka antyspamowa nie odrzuca zgłoszeń po cichu.
Czy hosting może blokować wysyłkę maili z WordPressa?
Tak i jest to częsta praktyka na kontach współdzielonych. Blokowany bywa port 25, funkcja mail() albo wysyłka powyżej określonego limitu wiadomości na godzinę. Dostawcy robią to, żeby jedna zaatakowana strona nie doprowadziła do wpisania adresu IP serwera na czarne listy. Limity i parametry SMTP powinny być opisane w dokumentacji usługi, a jeśli nie są, warto o nie zapytać przed zakupem.
Najczęściej zadawane pytania
Dlaczego WordPress nie wysyła maili?
W większości przypadków dlatego, że korzysta z funkcji PHP mail(), którą hosting ograniczył lub wyłączył, żeby nie dopuścić do rozsyłania spamu z zainfekowanych stron. Wiadomość nie ma wtedy uwierzytelnionego nadawcy i albo w ogóle nie opuszcza serwera, albo jest odrzucana przez odbiorcę. Naprawą jest wysyłka przez SMTP na koncie w Twojej domenie.
Jak sprawdzić, czy WordPress wysyła maile?
Najszybszy test to poproszenie o reset hasła dla własnego konta administratora. Jeśli wiadomość nie przychodzi w ciągu kilku minut i nie ma jej w spamie, poczta nie działa w całym WordPressie, a nie tylko w formularzu. Dokładniejszą odpowiedź daje dziennik wysyłki we wtyczce SMTP, który zapisuje odpowiedź serwera dla każdej próby.
Czy formularz kontaktowy potrzebuje SMTP?
Praktycznie zawsze tak. Bez SMTP formularz opiera się na funkcji mail(), która nie uwierzytelnia nadawcy, więc nawet gdy wiadomość zostanie wysłana, duże serwisy pocztowe często ją odrzucają lub kierują do spamu. Konfiguracja SMTP na skrzynce w domenie firmowej zajmuje kilka minut i rozwiązuje oba problemy naraz.
Czy hosting może blokować wysyłkę maili z WordPressa?
Tak i jest to częsta praktyka na kontach współdzielonych. Blokowany bywa port 25, funkcja mail() albo wysyłka powyżej określonego limitu wiadomości na godzinę. Dostawcy robią to, żeby jedna zaatakowana strona nie doprowadziła do wpisania adresu IP serwera na czarne listy.