WordPress

WordPress nie wysyła maili? Jak zacząć wysyłać wiadomości e-mail przez SMTP z poczty na hostingu

Formularz mówi „wysłano”, skrzynka pusta. Gdzie ginie mail, jak ustawić wysyłkę przez SMTP i rekordy domeny, żeby zapytania docierały.

Autor: Opublikowano 9 min czytania
? Karol T.

Objawy: poczta e-mail z formularza nie dochodzi, a wysyłka wygląda na udaną#

  • Formularz kontaktowy wyświetla „Dziękujemy, wiadomość wysłana”, a na Twoją skrzynkę nic nie przychodzi.
  • Klient nie dostaje na swój adres e-mail potwierdzenia wysłania zapytania albo zamówienia ze sklepu.
  • Link do resetu hasła w WordPressie nigdy nie dociera na skrzynkę.
  • Powiadomienia o nowych komentarzach, aktualizacjach i błędach krytycznych nie przychodzą.
  • Maile dochodzą, ale zawsze lądują w folderze spam, także u klientów. Użytkownik strony, który czeka na potwierdzenie, sprawdza skrzynkę i nic nie widzi.

To nie jest błąd formularza. Formularz zrobił swoje i przekazał wiadomość WordPressowi. Zgubiła się dalej: na serwerze albo w drodze do skrzynki. Dlatego zmiana wtyczki formularza zwykle nic nie daje.

Dlaczego WordPress nie wysyła maili? Nadawca, domena, hosting WordPress i funkcja PHP mail#

  • Funkcja mail() jest blokowana albo nieautoryzowana. Domyślny sposób jest taki: WordPress wysyła pocztę bezpośrednio z serwera www, bez logowania do żadnego konta pocztowego. Wiele hostingów to blokuje, a serwery odbiorcy uznają taką wiadomość za podejrzaną, bo nikt jej nie uwierzytelnił.
  • Nadawca z innej domeny niż strona. Strona jest na twojafirma.pl, a formularz wysyła „od” adresu gmail.com. Gmail nie pozwolił Twojemu serwerowi wysyłać w jego imieniu, więc wiadomość zostaje odrzucona albo trafia między niechciane. Bez poprawnej konfiguracji nadawcy nic dalej nie zadziała.
  • Brak rekordów uwierzytelniających domenę. Te rekordy mówią serwerom odbiorców, kto ma prawo wysyłać pocztę z Twojej domeny. Bez nich nawet poprawny, dobrze wysłany e-mail bywa traktowany jak spam.
  • Limity i filtr antyspamowy hostingu. Tani pakiet hostingowy ogranicza liczbę maili na godzinę albo wycina wiadomości ze skryptów, a dostawca nie zawsze o tym informuje.
  • Błędna konfiguracja formularza. Puste pole „do”, adres z literówką, pole nadawcy ustawione na adres wpisany przez klienta (to najczęstszy błąd w Contact Form 7).
  • Po aktualizacji systemu. Nowa wersja zmieniła sposób wysyłki, a hosting nie nadążył. Objaw pojawia się nagle, bez zmian po Twojej stronie.

Jak sprawdzić, gdzie ginie mail? Panel hostingu, spam i rekord SPF krok po kroku#

  1. Wyślij testowe zgłoszenie z formularza na własną skrzynkę i odczekaj pięć minut. Sprawdź folder spam, a potem zawartość folderu „oferty” lub „inne”.
  2. Sprawdź nadawcę w ustawieniach formularza. Ma być w domenie strony, np. formularz@twojafirma.pl, nie skrzynka klienta ani darmowa poczta. Skrzynkę klienta wpisz w pole „odpowiedz do”.
  3. Zainstaluj wtyczkę SMTP i skorzystaj z jej testu wysyłki oraz dziennika maili w panelu WordPress. Zobaczysz, czy WordPress w ogóle próbuje wysłać maila i co odpowiada serwer.
  4. Zajrzyj do panelu hostingu. Panel bywa różny u każdego dostawcy, ale część hostingów pokazuje dziennik poczty wychodzącej i informuje, czy blokuje funkcję mail(). Tam też sprawdzisz, czy skrzynka, z której ma korzystać strona, w ogóle istnieje.
  5. Sprawdź rekordy domeny w narzędziu w rodzaju mxtoolbox.com: czy istnieje poprawny rekord uwierzytelniający i czy obejmuje serwer, z którego strona ma wysyłać.

Jeśli test z wtyczki kończy się błędem, problem leży po stronie serwera lub konfiguracji. Jeśli test przechodzi, a mail nie dociera, problem jest w rekordach domeny albo w filtrach odbiorcy.

Konfiguracja SMTP w WordPressie: utworzyć skrzynkę w domenie i wysyłać przez nią pocztę#

SMTP (Simple Mail Transfer Protocol) to zwykły sposób wysyłania poczty, taki sam, jakiego używa program pocztowy na komputerze. Zamiast anonimowej funkcji mail() WordPress loguje się do prawdziwej skrzynki e-mail i wysyła przez nią. Odbiorcy widzą uwierzytelnionego nadawcę, więc wiadomości docierają. Poprawna konfiguracja zajmuje kwadrans, a wystarczy utworzyć jedną skrzynkę.

  1. Utwórz w panelu hostingu skrzynkę w domenie strony, np. strona@twojafirma.pl. Zapisz hasło, nazwę serwera SMTP, port (zwykle 465 lub 587) i rodzaj szyfrowania (SSL lub TLS). Te dane hostingodawca podaje w dokumentacji.
  2. Zainstaluj i włącz wtyczkę SMTP (darmowa wersja wystarcza).
  3. W ustawieniach wtyczki wybierz „Inny SMTP”, wpisz serwer, port, szyfrowanie, login (logowanie zwykle pełną nazwą skrzynki) i hasło. Nadawca: ta sama skrzynka. Zaznacz „wymuś adres nadawcy”, żeby żadna inna wtyczka nie podmieniała go na cudzy.
  4. Wyślij test z zakładki „Test e-mail”. Zielony komunikat oznacza, że serwer przyjął wiadomość.
  5. Wyślij testowe zgłoszenie z formularza na stronie i sprawdź skrzynkę. Dopiero to jest prawdziwy test, że całość działa poprawnie.

Alternatywy dla skrzynki na hostingu: usługi do wysyłki transakcyjnej (SendGrid, Brevo, Mailgun) albo skrzynka w Google Workspace. Mają sens przy większych ilościach maili, na przykład w sklepie internetowym. Dla strony firmowej z formularzem wystarczy skrzynka u dostawcy hostingu, z której WordPress będzie korzystać tylko do wysyłania.

Rekordy DNS: SPF, DKIM i DMARC, żeby maile z WordPressa nie trafiały do spamu#

Poprawnie ustawiona wysyłka to połowa pracy. Żeby wiadomości nie trafiały do spamu, domena musi jeszcze „przyznać się” do serwera, który je wysyła. Robią to trzy rekordy DNS, które ustawiasz w panelu, w którym zarządzasz domeną:

  • SPF: lista serwerów uprawnionych do wysyłania poczty z Twojej domeny. Hostingodawca podaje gotowy wpis, np. v=spf1 include:serwer-hostingu.pl ~all. Jeśli wysyłasz też z Google Workspace albo z usługi wysyłkowej, dopisz je do tego samego rekordu; taki wpis może być tylko jeden.
  • DKIM: podpis cyfrowy dołączany do każdej wiadomości. Klucz generuje hosting albo usługa wysyłkowa i podaje gotowy wpis.
  • DMARC: reguła, co robić z wiadomościami, które nie przejdą dwóch poprzednich sprawdzeń. Na początek łagodna: v=DMARC1; p=none. Od 2024 roku najwięksi dostawcy poczty wymagają jej od nadawców wysyłających większe ilości wiadomości.

Zmiany w rekordach domeny działają po kilku minutach do kilku godzin. Po ich wprowadzeniu wyślij testowego maila na prywatną skrzynkę i w szczegółach wiadomości („pokaż oryginał”) sprawdź, czy oba podpisy mają status „PASS”.

Formularz kontaktowy WordPress nie wysyła maila: ustawienia Contact Form 7 i WPForms#

Po skonfigurowaniu wysyłki sprawdź jeszcze sam formularz. W Contact Form 7 w zakładce „Mail”: pole „Od” ma zawierać adres w Twojej domenie (ten sam, co w SMTP), pole „Do” Twoją skrzynkę odbiorczą, a adres wpisany przez klienta trafia do „Dodatkowe nagłówki” jako Reply-To. W WPForms analogicznie w ustawieniach powiadomień. Częsty błąd: „Od” ustawione na [your-email], czyli adres klienta. Serwer odbiorcy widzi wtedy, że Twoja strona podszywa się pod cudzą domenę, i odrzuca wiadomość.

Warto też włączyć zapisywanie zgłoszeń w bazie strony (wtyczka Flamingo dla CF7 albo wbudowane wpisy w WPForms). Nawet gdy poczta zawiedzie, zgłoszenie nie ginie, tylko czeka; panel WordPress pokaże je w osobnej zakładce. Plik z eksportem zgłoszeń raz na jakiś czas to dodatkowa kopia.

WooCommerce nie wysyła maili o zamówieniach: co ustawić#

Sklep korzysta z tej samej wysyłki co reszta strony, więc poprawna konfiguracja wysyłki naprawia i to. Dwie rzeczy specyficzne dla WooCommerce: w ustawieniach sklepu, zakładka „E-maile”, każdy rodzaj wiadomości ma własny przełącznik i nadawcę, sprawdź, czy są włączone i zgodne z domeną; oraz kolejka zadań WooCommerce (Action Scheduler) bywa opóźniona, gdy strona ma mały ruch, i maile wychodzą z poślizgiem. Sprawdzisz to w Narzędzia, Zaplanowane akcje.

Jak uniknąć problemów z wysyłką maili w przyszłości?#

  • Raz w miesiącu wyślij testowe zgłoszenie z formularza i sprawdź, czy dotarło. Dwie minuty, które chronią przed miesiącem straconych zapytań.
  • Po każdej aktualizacji WordPressa i wtyczki formularza powtórz test.
  • Zapisuj zgłoszenia w bazie jako kopię zapasową poczty.
  • Nie zmieniaj hasła do skrzynki, z której wysyła strona, bez zmiany go we wtyczce. To najczęstszy sposób, w jaki poprawnie działająca wysyłka psuje się „sama”.
  • Po przeniesieniu strony na inny hosting od razu ustaw wysyłkę i rekordy na nowo, bo stare wpisy wskazują na stary serwer.

Kiedy zlecić naprawę i ile to kosztuje?#

Jeśli nie masz dostępu do panelu hostingu, nie wiesz, gdzie ustawia się rekordy domeny, albo po ustawieniu wysyłki maile nadal giną, naprawa zajmuje specjaliście od pół godziny do dwóch godzin. Rynek liczy za takie zlecenie od 150 do 400 zł.

Nazywam się Karol i prowadzę Po Kliku. Naprawiam strony małych firm, a gubiące się zapytania to jedna z najczęstszych i najtańszych do usunięcia przyczyn tego, że „strona nie przynosi klientów”. Szczegóły zgłoszenia: naprawa formularza kontaktowego.

Najczęstsze pytania

Co zrobić, gdy mail z WordPressa nie chce się wysłać?

Zainstaluj wtyczkę do SMTP, skonfiguruj wysyłkę przez skrzynkę w domenie strony (dane SMTP z hostingu), ustaw nadawcę na tę skrzynkę i wyślij test. W 9 na 10 przypadków to rozwiązuje problem. Potem dodaj rekordy SPF i DKIM dla domeny.

Dlaczego nie mogę wysyłać wiadomości e-mail z WordPressa?

Bo domyślnie WordPress wysyła przez funkcję mail() w PHP bez uwierzytelnienia, a hostingi i serwery pocztowe blokują lub oznaczają takie wiadomości jako spam. Skrzynka SMTP na hostingu pozwala wysyłać poprawnie. Druga częsta przyczyna: adres nadawcy z innej domeny niż strona, np. Gmail.

Jak skonfigurować SMTP w WordPressie?

Załóż skrzynkę w domenie strony na hostingu, zapisz serwer SMTP, port i hasło, zainstaluj wtyczkę SMTP, wybierz „Inny SMTP”, wpisz dane i włącz wymuszanie adresu nadawcy. Wyślij test z wtyczki, a potem testowe zgłoszenie z formularza na stronie.

Co zrobić, gdy nie przychodzi mail z formularza, choć formularz mówi „wysłano”?

Sprawdź spam, potem adres nadawcy w ustawieniach formularza (ma być w Twojej domenie, nie adres klienta), skonfiguruj SMTP i włącz zapisywanie zgłoszeń w bazie WordPressa, żeby nic nie ginęło, zanim naprawisz wysyłkę.

Dlaczego maile z WordPressa trafiają do spamu?

Najczęściej z powodu braku rekordów uwierzytelniających dla domeny, nadawcy z innej domeny niż strona albo wysyłki przez nieuwierzytelnioną funkcję mail(). Po ustawieniu SMTP i rekordów sprawdź w szczegółach odebranej wiadomości, czy uwierzytelnienie ma status PASS.

Czy WP Mail SMTP jest darmowy?

Tak, darmowa wersja wystarcza do konfiguracji SMTP przez skrzynkę na hostingu, testu wysyłki i podstawowego dziennika. Wersja płatna dodaje pełny dziennik wiadomości i integracje z usługami pocztowymi, przydatne raczej w sklepach.

Źródła

  1. rejestracjadomen.pl: Dlaczego WordPress nie wysyła maili?
  2. Google: Wytyczne dla nadawców e-maili (SPF, DKIM, DMARC)
Udostępnij: LinkedIn E-mail

Karol Tabiś

Tworzę strony, prowadzę kampanie Meta i łączę formularze z obsługą zgłoszeń. Piszę o tym, co dzieje się po kliknięciu.

Nie dostajesz zgłoszeń z własnej strony?

Naprawa formularza i wysyłki maili za stałą cenę: SMTP, DNS, ustawienia formularza i testowe zgłoszenie odebrane na Twojej skrzynce jako dowód.

Czytaj dalej

Wszystkie wpisy →