
🔧 Dlaczego WordPress nie wysyła e-maili i jak to naprawić
Sprawdził Pan pocztę, a tam pusto. Ani listu z resetem hasła, ani powiadomienia o zamówieniu, ani testowej wiadomości z formularza kontaktowego. Klienci piszą do wsparcia, a odpowiedzi nie docierają. WordPress milczy i nie wiadomo, o co chodzi.
Problem jest boleśnie znajomy każdemu, kto uruchamiał stronę na WordPressie. Domyślny serwer pocztowy działa przez mail(), wbudowaną funkcję PHP. Dostawcy hostingu często ją blokują, a listy trafiają do spamu albo nie są wysyłane wcale.
Spoiler: da się to naprawić w 15-20 minut, konfigurując serwer SMTP. Dalej znajdzie Pan szczegółową analizę przyczyn, diagnostykę i dwa sprawdzone sposoby konfiguracji: przez Gmail API oraz przez Mailgun. Bez paniki, z ilustracjami.
💡 Szybki przegląd:
- Sprawdzamy, czy serwer pocztowy WordPressa działa, wtyczka
Check Emailw minutę pokaże rzeczywisty obraz - Dowiadujemy się, dlaczego
mail()jest zawodny i jak SMTP rozwiązuje problem - Konfigurujemy Gmail SMTP z OAuth 2.0, krok po kroku, od konsoli Google do zielonego statusu
- Podłączamy Mailgun przez
WP Mail SMTP, dla stron o większym ruchu, które potrzebują ponad 100 listów na dobę - Omawiamy częste pytania: dlaczego listy trafiają do spamu, który port wybrać, co zrobić z błędem uwierzytelniania
Dlaczego WordPress nie wysyła listów
WordPress domyślnie używa funkcji wp_mail(), która wewnętrznie wywołuje funkcję PHP mail(). Problem w tym, że mail() to najprostszy mechanizm bez uwierzytelniania. Współczesne serwisy pocztowe, takie jak Gmail, Yahoo i Outlook, wymagają szyfrowania i weryfikacji nadawcy. Bez nich list jest albo blokowany przez hosting, albo oznaczany jako spam przez stronę odbierającą.
Drugą częstą przyczyną jest brak rekordów DKIM i SPF w DNS. Są to cyfrowe podpisy, które informują serwery pocztowe: „nadawca jest prawdziwy, list nie jest fałszywy". Bez nich ten sam Gmail wyśle Pana wiadomość prosto do folderu „Spam".
Wreszcie, winne mogą być wtyczki. Niektóre rozwiązania antyspamowe i wtyczki formularzy kontaktowych przechwytują kolejkę listów i blokują „podejrzane" wysyłki. Dotyczy to szczególnie masowych wysyłek, do których mail() zasadniczo się nie nadaje.
Jak sprawdzić działanie serwera pocztowego WordPress
Zanim przejdzie Pan do ustawień SMTP, proszę wykluczyć wariant z martwym mail(). Wtyczka Check Email robi dokładnie to: wysyła testowy list przez standardowy mechanizm WordPressa i pokazuje wynik.
Proszę zainstalować Check Email z repozytorium WordPress (Wtyczki → Dodaj nową → wpisać „Check Email"), aktywować i przejść do Narzędzia → Check Email. Proszę wpisać swój adres, kliknąć „Send test email", a po kilku sekundach zobaczy Pan raport.

Proszę sprawdzić foldery „Odebrane" i „Spam". Jeśli list dotarł, mail() działa i problem leży w konkretnej wtyczce (formularz kontaktowy, WooCommerce). Proszę skontaktować się ze wsparciem tej wtyczki. Jeśli listu nie ma, mail() jest zablokowany przez hosting, potrzebny jest SMTP.
Jak skonfigurować SMTP przez Gmail w WordPressie
SMTP (Simple Mail Transfer Protocol) to protokół z uwierzytelnianiem i szyfrowaniem. W przeciwieństwie do gołego mail(), listy wysyłane przez SMTP przechodzą weryfikację autentyczności, nie są blokowane przez hosting i rzadko trafiają do spamu.
Pierwszy sposób to wtyczka Gmail SMTP, która łączy WordPressa bezpośrednio z Pana kontem Google przez OAuth 2.0. Ma ona ponad 100 opinii na WordPress.org i regularne aktualizacje. Darmowa wersja pozwala wysyłać do 100 listów na dobę, co dla niewielkiej strony czy bloga jest wystarczające.
Proszę zainstalować Gmail SMTP z oficjalnego repozytorium WordPress, aktywować.

Następnie potrzebna jest Google Cloud Console. Proszę przejść na console.cloud.google.com, utworzyć nowy projekt.

W bocznym menu proszę wybrać „APIs & Services" → „Credentials", kliknąć „Create Credentials" i wybrać „OAuth client ID". System poprosi o skonfigurowanie ekranu zgody, proszę wskazać typ „External" i wypełnić obowiązkowe pola (nazwa aplikacji, email wsparcia). Proszę kliknąć „Save and Continue".

Proszę wrócić do tworzenia OAuth client ID: typ aplikacji „Web application", nazwa „Gmail SMTP".

Teraz proszę przełączyć się z powrotem do panelu administracyjnego WordPressa: w ustawieniach wtyczki Gmail SMTP proszę skopiować Authorized Redirect URL.

Proszę wrócić do konsoli Google, wkleić skopiowany adres URL w pole „Authorized redirect URIs" i zapisać. Po zapisaniu pojawi się okno z Client ID i Client Secret, proszę skopiować obie wartości i wkleić je w odpowiednie pola wtyczki.
Proszę podać adres Gmail, z którego będą wysyłane wiadomości (ten sam, na który zakładano projekt), wypełnić pole „From Email Address", ustawić „From Name" (nazwę Państwa witryny). Port SMTP, 587 dla TLS. Jeśli korzystają Państwo z certyfikatu SSL, należy ustawić 465. Proszę kliknąć „Save Changes", następnie „Grant Permission" i przejść uwierzytelnianie Google.

Po pomyślnym udzieleniu uprawnień we wtyczce zaświeci się zielony status „Connected". Proszę wysłać wiadomość testową, jeśli dotrze, wszystko jest gotowe.
Jak skonfigurować Mailgun do wysyłania wiadomości w WordPress
Jeśli witryna potrzebuje ponad 100 wiadomości na dobę i zależy Państwu na niezawodnej infrastrukturze dostarczania, warto zwrócić uwagę na Mailgun. Jest to usługa pocztowa dla deweloperów z bezpłatnym planem do 100 wiadomości dziennie (wiadomości przychodzące bezpłatnie), a plany płatne zaczynają się od 35 USD miesięcznie za 50 000 wiadomości. Główną zaletą jest szczegółowa analityka dostarczania: widać, czy wiadomość została otwarta i czy trafiła do spamu.

Proszę zarejestrować się na mailgun.com. Po utworzeniu konta należy dodać domenę, Mailgun zaproponuje wprowadzenie subdomeny (na przykład mg.vash-sait.ru) i przekaże rekordy DNS: TXT do weryfikacji, MX do trasowania wiadomości i CNAME do śledzenia otwarć.
Proszę zalogować się do panelu hostingu (cPanel, ISPmanager lub podobny), otworzyć edytor DNS i dodać rekordy otrzymane od Mailgun:
- Rekord TXT: Name, Państwa subdomena, Type, TXT, TTL, 14400, TXT Data, wartość z panelu Mailgun
- Rekord MX: w sekcji „MX Entry" proszę wpisać priorytet i destination z Mailgun
- CNAME: do śledzenia otwarć i kliknięć
DNS aktualizuje się od kilku minut do 48 godzin. Status należy sprawdzać w sekcji „Domains" w panelu Mailgun, gdy zaświeci się „Active", można przejść dalej.
Aby połączyć Mailgun z WordPress, proszę zainstalować WP Mail SMTP, najpopularniejszą wtyczkę SMTP z ponad 3 milionami aktywnych instalacji. Proszę przejść do Settings → WP Mail SMTP, w polu „From Email" podać adres w Państwa domenie, w polu „From Name" nazwę witryny. W polu „Mailer" proszę wybrać „Mailgun".

Proszę wkleić Private API Key z panelu Mailgun (sekcja „API Keys") oraz zarejestrowaną nazwę domeny. Należy włączyć opcję „Set the return path to match the From Email", co wyrównuje adres zwrotny i zmniejsza prawdopodobieństwo trafienia do spamu. Proszę kliknąć „Save Settings" i wysłać test przez zakładkę „Email Test".
Instrukcja wideo: konfiguracja SMTP w WordPress
Jeśli wygodniej jest Państwu oglądać niż czytać, oto samouczek wideo z konfiguracji SMTP w WordPress, od instalacji wtyczki do pierwszej wysłanej wiadomości:
⁉️🤔 Często zadawane pytania
Dlaczego e-maile z WordPressa trafiają do spamu, nawet gdy SMTP jest skonfigurowane?
Najczęściej problemem jest brak rekordów SPF i DKIM w DNS domeny. Bez nich serwer pocztowy odbiorcy nie może zweryfikować, że to właśnie Pana/Pani serwer ma prawo wysyłać e-maile z tej domeny. Proszę dodać rekord TXT SPF (
v=spf1 include:_spf.google.com ~alldla Gmaila lub analogiczny dla Mailguna) oraz klucz DKIM z panelu usługi pocztowej. Drugi czynnik to reputacja IP: na tanim hostingu adres IP mógł być wcześniej wykorzystywany do wysyłania spamu.
Który port SMTP wybrać: 587 czy 465?
Port
587z TLS to nowoczesny standard, zalecany przez IETF do wysyłania e-maili przez klienta. Port465z SSL to przestarzała alternatywa, wciąż obsługiwana przez wielu dostawców ze względu na kompatybilność. Proszę ustawić587z TLS, chyba że usługa pocztowa wyraźnie wymaga465.
Wtyczka Gmail SMTP wyświetla błąd uwierzytelniania. Co robić?
Trzy najczęstsze przyczyny: niezgodność adresów URL przekierowania (proszę sprawdzić, czy w konsoli Google i we wtyczce widnieje ten sam adres), aplikacja w Google Cloud ma status „Testing" (należy zmienić na „Production" lub dodać swój Gmail do listy użytkowników testowych) albo włączone jest uwierzytelnianie dwuskładnikowe Google bez hasła aplikacji (należy utworzyć hasło aplikacji w ustawieniach bezpieczeństwa Google).
Czy można wysyłać masowe newslettery przez Gmail SMTP?
Nie. Gmail ma ścisłe limity: 100 e-maili na dobę przez wtyczkę
Gmail SMTP, do 2000 przez Google Workspace. Do e-mail marketingu i regularnych wysyłek masowych proszę używać Mailguna, Brevo (dawniej Sendinblue) lub SendGrid, które oferują integracje z WordPressem i dedykowaną infrastrukturę dostarczania.
Czy płatny plan Mailguna jest potrzebny dla małej strony?
Darmowy plan Mailguna (100 e-maili dziennie) wystarcza przeciętnej stronie: powiadomienia WooCommerce o zamówieniach, resetowanie haseł, potwierdzenia rejestracji, e-maile z formularza kontaktowego. Płatny plan ma sens, gdy dzienny wolumen przekracza setkę lub potrzebna jest analityka otwarć z przechowywaniem logów dłużej niż 24 godziny.
Dlaczego nie należy polegać na wbudowanej funkcji mail() w WordPressie?
Funkcja
mail()nie uwierzytelnia nadawcy, nie szyfruje połączenia i nie dodaje podpisów DKIM/SPF. Większość dostawców hostingu albo blokuje ją na poziomie serwera (ze względu na ryzyko ataków spamowych), albo przepuszcza ruch przez współdzielone IP o niskiej reputacji. Rezultat: e-maile w znacznej części przypadków nie docierają, a te, które docierają, często są oznaczane jako spam.
Czy warto przejść na SMTP już teraz
Jeśli ze strony nie wychodzą e-maile resetowania hasła, klienci nie otrzymują powiadomień o zamówieniach, a formularz kontaktowy milczy, odpowiedź jest jednoznaczna: SMTP jest potrzebny dziś. To nie jest pytanie „czy warto", to pytanie „który konkretnie".
Dla osobistego bloga i wizytówki wystarczy połączenie Gmail SMTP + Pana/Pani konto Gmail. Konfiguruje się w 20 minut i można zapomnieć. Dla strony z produktami, kursami lub użytkownikami proszę wybrać WP Mail SMTP + Mailgun: darmowy plan pokrywa potrzeby typowego sklepu internetowego, a analityka dostarczania podpowie, jeśli coś pójdzie nie tak.
Proszę nie odkładać tego na później. Podczas gdy czyta Pan/Pani ten akapit, czyjś klient nie otrzymał e-maila z potwierdzeniem. SMTP rozwiązuje to raz na zawsze.



