Formularz kontaktowy WordPress nie działa? Jak to naprawić
Jeśli formularz kontaktowy na WordPressie nie działa, często winna jest wysyłka maila: WordPress oddaje wiadomość serwerowi hostingu i nie wie, czy dotarła. Strona pokazuje wtedy „wysłano”, a zapytanie trafia do spamu albo przepada. Pokazujemy, jak to sprawdzić w kilka minut i jak ustawić wysyłkę, żeby żadne zapytanie nie zginęło.
Opublikowano: 22 października 2026.
Jak sprawdzić, czy formularz kontaktowy działa
Zanim cokolwiek zmienisz, sprawdź, czy wiadomości naprawdę nie dochodzą i w którym miejscu giną. Pierwsze pięć kroków zrobisz bez logowania do panelu.
- Otwórz stronę na telefonie i wypełnij formularz tak jak klient. Jako adres podaj prywatną skrzynkę spoza firmy, na przykład na Gmailu, a w treści wpisz datę i godzinę, żeby łatwo znaleźć tę wiadomość.
- Zapisz, co pokazała strona po kliknięciu „Wyślij”: potwierdzenie czy komunikat o błędzie.
- Sprawdź skrzynkę, na którą mają przychodzić zapytania, razem z folderem spam.
- Jeśli formularz wysyła klientowi potwierdzenie, sprawdź też swoją prywatną skrzynkę. To osobna wiadomość, więc może dojść, nawet gdy zapytanie do firmy nie doszło.
- Gdy zapytanie przyszło, kliknij „Odpowiedz”. Odpowiedź powinna trafić na prywatny adres podany w formularzu.
- Gdy nie przyszło nic, ustal, na jaki adres formularz w ogóle wysyła. Adres odbiorcy jest w ustawieniach formularza w panelu WordPressa. W Contact Form 7 domyślnie jest to adres e-mail administratora z ustawień ogólnych WordPressa, a bywa nim skrzynka byłego pracownika albo osoby, która robiła stronę.
Co oznacza wynik testu
- Strona pokazała błąd: wiadomość nie wyszła ze strony. Przyczyna leży zwykle w ustawieniach poczty na stronie albo na hostingu. Czasem winne jest zabezpieczenie formularza przed spamem.
- Strona pokazała potwierdzenie, a mail jest w spamie: wysyłka działa, ale skrzynka odbiorcy nie ufa nadawcy. Pomogą adres nadawcy w domenie strony, wysyłka przez SMTP i rekordy SPF i DKIM.
- Strona pokazała potwierdzenie, a maila nie ma ani w skrzynce, ani w spamie: wiadomość wyszła ze strony i zginęła po drodze. Klient myśli, że zapytanie dotarło, a Ty o nim nie wiesz. Możliwe przyczyny opisujemy niżej.
Dlaczego komunikat „wiadomość wysłana” nie znaczy, że mail doszedł
Contact Form 7 i wiele innych wtyczek formularzy wysyła maile funkcją WordPressa o nazwie wp_mail. Jej dokumentacja na WordPress.org mówi, że wynik „true” nie oznacza, że odbiorca dostał wiadomość. Oznacza tylko, że strona przekazała ją dalej bez błędu. Formularz pokazuje wtedy potwierdzenie, a co się dzieje z mailem później, strona już nie wie. Serwer odbiorcy może go odrzucić albo przenieść do spamu.
Dlaczego WordPress nie wysyła maili
Domyślnie wp_mail korzysta z funkcji mail() w PHP, czyli oddaje wiadomość serwerowi, na którym stoi strona. Taki mail nie wychodzi z żadnej skrzynki pocztowej. Serwer odbiorcy, na przykład Gmail, sprawdza, czy ten serwer może wysyłać pocztę w imieniu Twojej domeny. Gdy coś się nie zgadza, wiadomość trafia do spamu albo nie dochodzi.
Jeśli nikt nie ustawił nadawcy, WordPress wysyła z adresu wordpress@twojadomena.pl. W komentarzu w kodzie wp_mail jest uwaga, że część hostingów blokuje wysyłkę z tego adresu, gdy taka skrzynka nie istnieje. Contact Form 7 też wpisuje ten adres jako nadawcę, jeśli adres administratora strony jest spoza jej domeny. Jego autor w poradniku o ustawieniach maila zaleca założenie na hostingu prawdziwej skrzynki wordpress@ w domenie strony.
Jaki adres wpisać w polu „Od”
W polu „Od” wpisz adres w domenie strony, na przykład formularz@twojafirma.pl. Nie wpisuj tam adresu klienta z formularza. Mail wyglądałby wtedy, jakby przyszedł z Gmaila albo Onetu, choć wysłał go Twój serwer. Tak samo robią spamerzy, więc skrzynka odbiorcy łatwo uzna taką wiadomość za spam. Contact Form 7 pokazuje w ustawieniach formularza błąd konfiguracji, gdy adres nadawcy nie należy do domeny strony. Także wytyczne Google dla nadawców zabraniają podszywania się pod innych w polu „Od”.
Gdzie wpisać adres klienta do odpowiedzi
Adres klienta wpisz w nagłówku Reply-To. Gdy klikniesz „Odpowiedz”, program pocztowy wyśle odpowiedź na ten adres zamiast na adres nadawcy. W Contact Form 7 służy do tego pole dodatkowych nagłówków w zakładce z ustawieniami maila, a wpis wygląda tak: Reply-To: [your-email]. W nawiasie jest nazwa pola z adresem klienta. W domyślnym formularzu to your-email, w Twoim może być inna. Nowe formularze Contact Form 7 mają ten wpis od początku, więc jeśli odpowiedź idzie na adres strony, sprawdź, czy ktoś go nie usunął.
Jak ustawić SMTP w WordPressie
Przy wysyłce przez SMTP strona loguje się do prawdziwej skrzynki, tak jak program pocztowy w komputerze, i wysyła maile przez serwer poczty. Wiadomość ma wtedy nadawcę, który istnieje, i wychodzi z serwera, który obsługuje pocztę Twojej domeny. Do tego służą wtyczki SMTP. Jedna z nich to darmowa WP Mail SMTP, którą według katalogu WordPress.org ma włączoną ponad 4 miliony stron. Zmienia ona działanie wp_mail, więc obejmuje też maile z formularzy.
WP Mail SMTP ze skrzynką na hostingu
- Zrób kopię zapasową strony.
- W panelu hostingu załóż skrzynkę w domenie strony, na przykład formularz@twojafirma.pl. Lepiej osobną niż swoją główną, bo jej hasło zapiszesz w ustawieniach strony.
- W panelu hostingu albo w pomocy dostawcy znajdź dane serwera poczty wychodzącej: adres serwera SMTP, port i rodzaj szyfrowania.
- Zainstaluj WP Mail SMTP, w ustawieniach wybierz „Other SMTP” i wpisz te dane oraz login i hasło skrzynki.
- Wpisz adres i nazwę nadawcy. Ten sam adres ustaw w polu „Od” formularza.
- Wyślij wiadomość próbną z zakładki Email Test w narzędziach wtyczki, a potem powtórz test formularza z pierwszej części tego poradnika.
Poczta w Google Workspace albo Microsoft 365
Jeśli poczta firmowa jest w Google Workspace, darmowa wersja WP Mail SMTP ma osobne połączenie z Gmailem. Łączy się przez logowanie Google, więc hasło do konta Google nie jest zapisywane na stronie. W darmowej wersji trzeba jednak samodzielnie utworzyć aplikację Google, co producent sam nazywa zadaniem technicznym, więc zwykle robi to wykonawca. Gotowe połączenie z Microsoft 365 i Outlook.com jest tylko w płatnej wersji Pro. Wtyczka obsługuje też serwisy do wysyłki maili, takie jak Brevo czy Mailgun, ale przy kilku zapytaniach dziennie zwykle wystarczy skrzynka, którą firma już ma.
Co mają do tego SPF, DKIM i DMARC
Nawet przez SMTP maile z Twojej domeny mogą trafiać do spamu, jeśli domena nie ma rekordów SPF i DKIM. SPF wskazuje serwery, które mogą wysyłać pocztę z Twojej domeny, a DKIM podpisuje wiadomości. DMARC mówi serwerom odbiorców, co zrobić z mailem, który nie przeszedł tych testów. Według wytycznych Google każdy, kto wysyła na konta Gmail, musi mieć w domenie co najmniej SPF albo DKIM.
Gdy strona wysyła maile z serwera hostingu, a poczta firmowa jest w Google Workspace, rekord SPF powinien obejmować także serwer hostingu. Google zaznacza, że maile od nadawców pominiętych w SPF łatwiej trafiają do spamu. Drugie wyjście to wysyłka przez Google, opisana wyżej. Jak sprawdzić te rekordy i ustawić je krok po kroku, opisujemy w poradniku Maile trafiają do spamu? Jak ustawić SPF, DKIM i DMARC.
Jak zapisywać wiadomości z formularza w panelu
Contact Form 7, jak podaje jego dokumentacja, nigdzie nie zapisuje wysłanych wiadomości. Jeśli mail nie dojdzie, zapytanie przepada. Dlatego przy Contact Form 7 zainstaluj darmową wtyczkę Flamingo od tego samego autora. Zapisuje ona zgłoszenia z formularzy w bazie danych strony, a w panelu WordPressa dodaje menu Flamingo z listą wiadomości, którą można przeszukiwać. Nawet gdy poczta przestanie działać, zapytania zobaczysz w panelu.
Jeśli używasz innej wtyczki formularzy, sprawdź w jej ustawieniach, czy zapisuje zgłoszenia. W zapisanych wiadomościach są dane osobowe klientów, przechowywane na serwerze strony. Uwzględnij to w polityce prywatności i co jakiś czas usuwaj stare zgłoszenia.
Jak regularnie sprawdzać, czy formularz działa
Raz w miesiącu powtórz test z pierwszej części: zgłoszenie z telefonu, z prywatnego adresu, z datą w treści. Zrób go też zawsze po takich zmianach:
- aktualizacja WordPressa, wtyczki formularza albo wtyczki SMTP,
- przeniesienie strony na inny hosting,
- przeniesienie poczty, na przykład z hostingu do Google Workspace,
- zmiana hasła do skrzynki, przez którą strona wysyła maile,
- zmiana rekordów DNS domeny.
Jeśli masz Flamingo, porównaj co jakiś czas listę zgłoszeń w panelu ze skrzynką. Zgłoszenie, które jest w panelu, a nie ma go w poczcie, to znak, że zawodzi wysyłka.
Formularz kontaktowy w WordPressie dalej nie działa: co sprawdza wykonawca
Mail zostaje na serwerze hostingu
Gdy skrzynki są w Google Workspace albo Microsoft 365, a strona na hostingu z własną pocztą, serwer hostingu może uznać, że to on obsługuje pocztę Twojej domeny. Mail z formularza trafia wtedy do skrzynki na hostingu, do której nikt nie zagląda. W cPanelu decyduje o tym ustawienie Email Routing. Według dokumentacji cPanelu przy opcji Local Mail Exchanger serwer zawsze przyjmuje pocztę dla domeny i dostarcza ją do skrzynki u siebie. Przy opcji Remote Mail Exchanger nie przyjmuje jej i wysyła na serwer wskazany w rekordach MX domeny.
Błędy wysyłki i zablokowane porty
Gdy WordPress nie zdoła wysłać maila, uruchamia akcję wp_mail_failed z opisem błędu. Wykonawca może zapisywać te błędy w logu i sprawdzić, co odpowiedział serwer poczty. Część hostingów blokuje porty SMTP. Wtedy pomaga połączenie przez API dostawcy poczty, które WP Mail SMTP też obsługuje.
Kiedy oddać to komuś
Test z pierwszej części zrobisz sam. Jeśli wyszło, że maile nie dochodzą, a nie masz dostępu do hostingu albo nie wiesz, gdzie jest poczta firmowa, oddaj to komuś, kto zajmuje się WordPressem. To samo, gdy po ustawieniu SMTP wiadomości dalej lądują w spamie, bo wtedy zwykle trzeba poprawić rekordy w DNS domeny.
Jak to robimy w Kodarni
Niedziałający formularz to jedna z awarii, które obejmuje nasza naprawa strony WordPress. Diagnoza jest bezpłatna, a cenę naprawy podajemy na piśmie przed rozpoczęciem prac. Przed zmianami robimy kopię strony, potem sprawdzamy całą drogę wiadomości, od formularza do Twojej skrzynki, i wysyłamy próbne zgłoszenia, aż dojdą. Prosta naprawa kosztuje od 199 zł netto, do tego 23% VAT.
W opiece nad stroną, od 99 zł netto miesięcznie, po każdej aktualizacji sprawdzamy stronę i formularz.
Naprawa strony WordPress: bezpłatna diagnoza, naprawa od 199 zł