Przejdź do treści
Darmowy audyt

Administracja WWW Problem i rozwiązanie

WordPress nie wysyła maili z formularza - przyczyny i konfiguracja SMTP

Autor: Bartosz Gromek Zaktualizowano: 4 min czytania

W skrócie

  • Objaw: formularz pokazuje komunikat o wysłaniu, ale wiadomość nie dociera; nie dochodzą też maile z resetem hasła i powiadomienia, albo wszystkie trafiają do spamu.
  • Przyczyna: WordPress wysyła pocztę funkcją PHP mail() z serwera hostingu, bez uwierzytelnienia, często z nieistniejącego adresu, a domena nie ma rekordów SPF, DKIM i DMARC.
  • Rozwiązanie: skonfiguruj wysyłkę przez SMTP ze skrzynki w swojej domenie lub usługi transakcyjnej, ustaw poprawnego nadawcę i rekordy DNS, a zgłoszenia zapisuj w bazie.

Nie masz czasu? Zrobimy to za Ciebie - Opieka nad stroną WWW od 299 zł netto / mies.

Jak to wygląda

Klient wysyła formularz kontaktowy, widzi podziękowanie, ale wiadomość nigdy nie dociera do firmowej skrzynki. Nie przychodzą też maile z resetem hasła, powiadomienia o nowych komentarzach czy zamówieniach. Czasem problem jest wybiórczy: maile dochodzą na skrzynkę założoną na tym samym hostingu, a do Gmaila lub Outlooka już nie, albo trafiają tam do spamu.

  • formularz potwierdza wysyłkę, a skrzynka jest pusta,
  • maile przychodzą z adresu wordpress@twojadomena, który nie istnieje,
  • wiadomości lądują w spamie albo są odrzucane z informacją o braku uwierzytelnienia.

Najgorsze w tym problemie jest to, że często nikt go nie zauważa. Strona działa, formularz wygląda poprawnie, a firma dowiaduje się o utraconych zapytaniach dopiero wtedy, gdy klient zapyta, dlaczego nikt mu nie odpowiedział. Dlatego wysyłkę maili warto sprawdzać po każdej zmianie hostingu, domeny lub wtyczki formularzy.

Dlaczego tak się dzieje

WordPress wysyła pocztę funkcją wp_mail(), która domyślnie przekazuje wiadomość do serwera hostingu przez PHP mail(). Taka wiadomość nie jest powiązana z żadną skrzynką ani uwierzytelniona, więc serwery odbiorców nie mają podstaw, żeby jej zaufać.

Brak uwierzytelnionej wysyłki (SMTP)

Przy wysyłce przez SMTP strona loguje się do prawdziwej skrzynki pocztowej lub usługi wysyłkowej, tak jak program pocztowy. Wiadomość wychodzi wtedy z serwera, który jest uprawniony do wysyłania poczty z Twojej domeny.

Brak rekordów SPF, DKIM i DMARC

Gmail, Yahoo i inni dostawcy sprawdzają, czy domena nadawcy potwierdza prawo serwera do wysyłki (SPF), czy wiadomość ma ważny podpis (DKIM) i jaką politykę ma domena (DMARC). Gmail i Yahoo wymagają uwierzytelnienia poczty od nadawców, a przy jego braku wiadomości są odrzucane albo trafiają do spamu.

Zły adres nadawcy

Wiele formularzy wpisuje w pole nadawcy adres klienta, np. z Gmaila. Serwer Twojej strony nie ma prawa wysyłać poczty w imieniu Gmaila, więc taka wiadomość nie przejdzie weryfikacji. Adres klienta powinien trafić do pola Reply-To.

Limity i blokady hostingu

Hostingi ograniczają liczbę maili na godzinę i blokują wysyłkę z kont, z których poszedł spam, np. z zainfekowanej strony. Informację o blokadzie znajdziesz zwykle w panelu hostingu.

Objaw Najczęstsza przyczyna Rozwiązanie
Żaden mail nie wychodzi Blokada lub limit hostingu SMTP lub usługa transakcyjna
Maile tylko w spamie Brak SPF, DKIM, DMARC Rekordy DNS domeny
Maile z formularza giną, reset hasła działa Adres klienta w polu nadawcy Nadawca w Twojej domenie, klient w Reply-To
Dochodzą tylko na skrzynkę na tym samym serwerze Brak uwierzytelnienia SMTP i rekordy DNS

Niezależnie od poczty włącz zapisywanie zgłoszeń formularza w bazie WordPressa. Nawet gdy wysyłka znów zawiedzie, żadne zapytanie od klienta nie przepadnie.

Ten problem jest jednym z naszej listy 100 problemów z WordPressem.

Darmowy skan strony

Sprawdź bezpieczeństwo strony za darmo

Wpisz adres, a przeniesiemy Cię do bezpłatnego skanu na stronie CodeScriptum.

Jak to rozwiązać krok po kroku

WordPress nie wysyła maili z formularza - przyczyny i konfiguracja SMTP - https://codescriptum.pl/blog/wordpress-nie-wysyla-maili/

  1. Sprawdź, czy problem dotyczy wszystkich maili: wyślij formularz i reset hasła na adres w swojej domenie oraz na adres w Gmailu, i zajrzyj także do spamu.
  2. Zainstaluj wtyczkę SMTP i połącz ją ze skrzynką w swojej domenie albo z usługą wysyłki transakcyjnej (serwer, port, szyfrowanie, login i hasło lub hasło aplikacji).
  3. Ustaw nadawcę na istniejący adres w Twojej domenie (np. powiadomienia@) i wymuś go dla wszystkich maili. W ustawieniach formularza wpisz adres klienta w pole Reply-To.
  4. W DNS domeny sprawdź rekord SPF (musi obejmować serwer, który wysyła pocztę), dodaj klucz DKIM od dostawcy poczty i rekord DMARC, na początek z polityką p=none.
  5. Wyślij mail testowy z wtyczki SMTP i w odebranej wiadomości sprawdź nagłówki (w Gmailu opcja Pokaż oryginał): SPF, DKIM i DMARC powinny mieć wynik PASS.
  6. Włącz dziennik wysyłki we wtyczce SMTP i zapisywanie zgłoszeń formularza w bazie, żeby widzieć każdą próbę wysyłki i każde zapytanie.

Jak sprawdzić, że zadziałało

Wyślij formularz w oknie incognito na kilka skrzynek: firmową, w Gmailu i u innego dostawcy. Wiadomości muszą trafić do skrzynki odbiorczej, a nie do spamu, w nagłówkach SPF, DKIM i DMARC mają wynik PASS, a dziennik wtyczki SMTP pokazuje wysyłkę bez błędów.

Usługa CodeScriptum

Opieka nad stroną WWW

od 299 zł netto / mies.

  • Aktualizacje i kopie zapasowe
  • Monitoring i bezpieczeństwo
  • Pomoc przy awariach

Najczęściej zadawane pytania

Czy do SMTP mogę użyć zwykłej skrzynki firmowej?

Tak. Przy formularzu kontaktowym i powiadomieniach wystarczy skrzynka w Twojej domenie. Przy sklepie lub dużej liczbie maili lepsza jest usługa wysyłki transakcyjnej z wyższymi limitami.

Dlaczego maile dochodzą do mnie, a do klientów nie?

Skrzynka na tym samym serwerze często przyjmuje pocztę lokalnie, bez pełnej weryfikacji. Zewnętrzni dostawcy, jak Gmail czy Outlook, sprawdzają uwierzytelnienie i odrzucają albo kierują do spamu wiadomości, które go nie mają.

Czy sama wtyczka SMTP wystarczy, bez rekordów DNS?

Poprawi sytuację, ale bez poprawnych rekordów SPF, DKIM i DMARC maile nadal mogą trafiać do spamu. Najlepsze efekty daje połączenie obu rozwiązań.

Źródła

  1. Funkcja wp_mail() (WordPress Developer Resources) (otwiera się w nowej karcie) developer.wordpress.org
  2. Google: wytyczne dla nadawców e-maili (otwiera się w nowej karcie) support.google.com

Podobne problemy

O autorze

Bartosz Gromek

Założyciel CodeScriptum, technologia i rozwój

Założyciel CodeScriptum - firmy technologicznej z Łodzi, działającej od 2022 roku. Odpowiada za technologię i rozwój, a projekty realizuje razem z zespołem specjalistów od stron, sklepów internetowych, systemów CRM, integracji, AI i marketingu. Na blogu opisuje problemy, z którymi zgłaszają się klienci CodeScriptum, i sprawdzone sposoby ich rozwiązania.

Newsletter

Konkretne porady raz na jakiś czas

Nowe problemy i rozwiązania z bloga, zmiany w przepisach dla sklepów i stron oraz sprawdzone sposoby na więcej klientów z internetu. Bez spamu, wypis jednym kliknięciem.