Klient składa zamówienie, ale nie dostaje potwierdzenia. Ty też nic nie wiesz, bo notyfikacja administratora też nie doszła. Brak maili to jeden z najczęstszych i najbardziej kosztownych problemów w sklepach WooCommerce – podcina zaufanie klientów, generuje reklamacje i psuje SEO domeny. W tym przewodniku pokazuję siedem przyczyn, które widzę na co dzień u klientów, oraz konkretne kroki naprawcze, które możesz wykonać bez dewelopera.
Krótka odpowiedź
Usługi KC Mobile
Sprawdź naszą ofertę
Potrzebujesz pomocy specjalisty? Skorzystaj z naszych usług i rozwiń swój biznes online.
Diagnostyka – zanim zaczniesz cokolwiek naprawiać
Zanim podmienisz wtyczki albo zaczniesz grzebać w konfiguracji hostingu, sprawdź trzy rzeczy. Pierwsza: zainstaluj wtyczkę WP Mail Logging (lub FluentSMTP, który ma wbudowany log). Wysyłasz testowe zamówienie i patrzysz, czy mail w ogóle został wygenerowany. Jeśli tak – problem leży po stronie dostarczania. Jeśli nie – problem jest głębiej, w hookach WooCommerce albo w kolejce maili.
Druga: przetestuj dostarczalność przez mail-tester.com. Kopiujesz wygenerowany adres, wysyłasz tam testową wiadomość ze swojego sklepu i dostajesz ocenę 0/10. Serwis pokazuje, czego brakuje – SPF, DKIM, DMARC, reputacja IP, lista blokowanych słów. Wynik poniżej 8/10 to już problem, który widać w dostarczalności.
Trzecia: sprawdź error log serwera w panelu hostingowym lub pliku wp-content/debug.log (wymaga WP_DEBUG_LOG ustawionego na true). Szukaj wpisów wp_mail, SMTP, Could not authenticate, Connection refused. Jeden wpis często wystarczy, żeby zawęzić przyczynę.
Dopiero po tej diagnostyce wiesz, z którego z siedmiu kolejnych problemów warto zacząć i nie tracisz czasu na ślepe próby.
Przyczyna 1 – wysyłka przez domyślną funkcję wp_mail (PHP mail)
WordPress domyślnie używa funkcji wp_mail(), która pod spodem woła mail() z PHP. Hosting wysyła taki mail bez żadnej autoryzacji – z przypadkowego adresu IP serwera, bez SPF, bez DKIM, bez DMARC. Gmail, Outlook i WP Poczta wrzucają go wtedy od razu do spamu albo odrzucają w całości.
Objawy: w panelu WP Mail Logging widzisz, że mail został wysłany (status Sent), ale klient go nie dostaje. Admin sklepu też nie dostaje. Nic w folderze Spam. To klasyka – mail poszedł w eter i został odrzucony przez serwer odbiorcy, często bez żadnego komunikatu zwrotnego.
Rozwiązanie: przestań używać PHP mail. W 2026 roku to przeżytek. Zainstaluj wtyczkę SMTP (FluentSMTP, WP Mail SMTP, Post SMTP) i skonfiguruj wysyłkę przez dedykowanego dostawcę (SendGrid, Mailgun, Amazon SES, Brevo, Resend). Dostawca SMTP podpisuje maile cyfrowo, uwierzytelnia je i buduje reputację IP. Różnica w dostarczalności jest natychmiastowa – z 20 procent na 98 procent.
Dla małych sklepów wystarczy darmowy plan Brevo (300 maili dziennie) albo Mailgun (1000 maili miesięcznie). Przy większym wolumenie Amazon SES kosztuje 10 centów za 1000 maili – praktycznie nic w skali sklepu z kilkuset zamówieniami dziennie.
Potrzebujesz szybkiej pomocy?
Naprawimy problem za Ciebie. Bezpłatna diagnoza i wycena naprawy w ciągu 24h.
Przyczyna 2 – maile trafiają do spamu (brak SPF, DKIM, DMARC)
Mail wychodzi ze sklepu, ale zamiast do skrzynki odbiorczej klienta ląduje w folderze Spam. To drugi najczęstszy scenariusz. Winowajca: brak trzech rekordów DNS, które potwierdzają, że masz prawo wysyłać maile z tej domeny.
SPF (Sender Policy Framework) – rekord TXT w DNS, który mówi: te serwery mają prawo wysyłać maile z mojej domeny. Przykład dla SendGrid: v=spf1 include:sendgrid.net ~all. Bez SPF mail dostaje minus w filtrach antyspamowych.
DKIM (DomainKeys Identified Mail) – cyfrowy podpis maila. Serwer dostawcy SMTP podpisuje każdego maila kluczem prywatnym, a odbiorca weryfikuje go kluczem publicznym z DNS. Każdy dostawca SMTP daje gotowe rekordy DKIM do wklejenia w panelu domeny, wystarczy skopiować i zapisać.
DMARC – polityka postępowania, gdy SPF lub DKIM nie zgadzają się z nadawcą. Minimalna konfiguracja: v=DMARC1; p=none; rua=mailto:[email protected]. Od lutego 2024 Google i Yahoo wymagają DMARC dla nadawców wysyłających więcej niż 5000 maili dziennie, ale w praktyce lepiej mieć go zawsze, nawet przy 10 zamówieniach dziennie.
Po dodaniu rekordów poczekaj 24 godziny na propagację DNS i ponownie przetestuj sklep przez mail-tester.com. Wynik powinien skoczyć z 3-4/10 do 9-10/10.
Przyczyna 3 – brak wtyczki SMTP lub źle skonfigurowana
Sama instalacja wtyczki SMTP to nie wszystko. Widzę codziennie sklepy, gdzie FluentSMTP jest zainstalowany, ale wpisano w nim nieprawidłowe dane logowania albo port. Efekt: WooCommerce próbuje wysłać, wtyczka rzuca wyjątek, mail nigdy nie dochodzi.
Najczęstsze błędy konfiguracji:
1. Zły port SMTP – dla SSL używa się portu 465, dla TLS/STARTTLS portu 587. Port 25 jest blokowany przez większość hostingów i nie powinien być używany.
2. Brak hasła aplikacji – Gmail wymaga hasła aplikacji (App Password), nie zwykłego hasła do konta. Generujesz je na myaccount.google.com po włączeniu weryfikacji dwuetapowej.
3. Nieprawidłowy adres From email – adres musi należeć do domeny, której używasz w SMTP (np. jeśli wysyłasz przez SendGrid zweryfikowany dla twojadomena.pl, adres From musi być na tej domenie).
4. Brak szyfrowania – w polu Encryption wybierz SSL lub TLS, nigdy None.
Rekomendacja: FluentSMTP to obecnie najlepsza bezpłatna wtyczka SMTP dla WooCommerce. Ma logi wysłanych maili, route by sender (różne SMTP dla różnych adresów), wbudowane szablony dla SendGrid, Mailgun, Amazon SES, Brevo i Postmark. Po instalacji dodajesz jedno połączenie, wklejasz klucz API i gotowe. Wszystko w 5 minut.
Przyczyna 4 – konflikt z wtyczką bezpieczeństwa lub cache
Wtyczki typu Wordfence, iThemes Security, All In One WP Security mają moduły antyspamowe, które potrafią blokować wychodzące maile – zwłaszcza jeśli WooCommerce wysyła je masowo (np. po imporcie zamówień z BaseLinker). Druga grupa podejrzanych to agresywne wtyczki cache (WP Rocket, LiteSpeed Cache), które mogą cache-ować endpointy admin-ajax.php i blokować hooki zamówień.
Jak sprawdzić: wyłącz wszystkie wtyczki poza WooCommerce i wtyczką SMTP. Złóż testowe zamówienie. Jeśli mail przychodzi – masz konflikt. Włączaj wtyczki pojedynczo, aż znajdziesz winowajcę. Typowy czas diagnozy to 15-30 minut.
Typowe winowajcze wtyczki:
- Wordfence – moduł Rate Limiting potrafi blokować funkcje wp_mail() uruchamiane przez webhooki
- LiteSpeed Cache – cache dla WooCommerce czasem blokuje akcje w koszyku
- wtyczki SMS/push notification – nadpisują filtr wp_mail i przerywają łańcuch
- wtyczki do custom checkout – usuwają domyślne hooki WooCommerce woocommerce_order_status
Rozwiązanie: po znalezieniu konfliktu dodaj wyjątek w konfiguracji wtyczki bezpieczeństwa (whitelista dla admin-ajax.php i IP dostawcy SMTP) albo wyłącz moduł, który powoduje problem. Jeśli to wtyczka nadpisuje filtr wp_mail, sprawdź jej dokumentację – wiele z nich ma opcję use external SMTP, która rozwiązuje problem.
Przyczyna 5 – hosting blokuje porty SMTP (25, 465, 587)
Współdzielone hostingi bardzo często blokują wychodzące połączenia na porty SMTP, żeby zapobiegać spamowaniu ze zhakowanych kont. To dobra praktyka, ale dla właściciela sklepu oznacza, że próba wysłania maila kończy się błędem Connection refused albo Connection timed out.
Jak sprawdzić, czy porty są otwarte: wejdź przez SSH (lub użyj terminala w panelu hostingowym) i wpisz telnet smtp.sendgrid.net 587. Jeśli dostaniesz Connected to smtp.sendgrid.net – port jest otwarty. Jeśli Connection timed out – hosting blokuje połączenie.
Rozwiązania:
1. Zmień hosting na taki, który ma otwarte porty SMTP – polecam CyberFolks, LH.pl albo Zenbox. W polskich realiach 2026 roku CyberFolks ma najlepszą relację ceny do jakości: otwarte porty SMTP domyślnie, szybkie wsparcie, LiteSpeed, kopie codzienne.
2. Użyj HTTP API zamiast SMTP – SendGrid, Mailgun, Postmark i Resend oferują wysyłkę przez HTTPS (port 443), który nigdy nie jest blokowany. W FluentSMTP wybierz metodę API zamiast SMTP i wklej klucz API.
3. Poproś hosting o odblokowanie – czasem wystarczy napisać do supportu z prośbą o otwarcie portu 587 dla konkretnego dostawcy SMTP. Niektóre hostingi to robią, inne nie.
Opcja z HTTP API jest najszybsza i najpewniejsza – nie wymaga żadnych zmian po stronie serwera. Więcej o zdrowiu serwera znajdziesz w poradniku o błędzie 500 w WordPress, który często ma ten sam korzeń problemu.
Przyczyna 6 – kolejka maili WooCommerce padła (Action Scheduler)
WooCommerce od wersji 4.0 używa biblioteki Action Scheduler do wysyłania maili w tle. Zamiast wysyłać maila synchronicznie w momencie złożenia zamówienia, WooCommerce dodaje zadanie do kolejki i przetwarza je cronem. To przyspiesza checkout, ale wprowadza nowy punkt awarii – jeśli kolejka się zatnie, maile przestają wychodzić.
Objawy: zamówienia są składane poprawnie, ale maile przychodzą z opóźnieniem (godzina, doba) albo wcale. Panel WooCommerce, Status, Logi pokazuje błędy związane z Action Scheduler. Czasem widać setki zadań Failed.
Jak naprawić:
1. Przejdź do WooCommerce, Status, Action Scheduler (lub Tools, Scheduled Actions w nowszych wersjach).
2. Filtruj po statusie Failed – zobaczysz zadania, które się nie powiodły. Kliknij Run przy każdym, żeby je ponowić.
3. Sprawdź status Pending – jeśli zadania stoją godzinami w kolejce, to znak, że WP Cron nie działa.
4. Jeśli Failed jest więcej niż 50, wyczyść je hurtowo i zrestartuj WooCommerce.
Napraw WP Cron: w większości hostingów WP Cron jest uruchamiany tylko przy wejściu na stronę. Jeśli sklep ma mało ruchu, kolejka stoi. Rozwiązanie: wyłącz WP Cron w wp-config.php (define DISABLE_WP_CRON true) i skonfiguruj prawdziwego crona systemowego co minutę: * * * * * wget -q -O - https://twojadomena.pl/wp-cron.php. Na dobrych sklepach internetowych robisz to w 2 minuty w panelu hostingu.
Przyczyna 7 – złe From email, From name lub Reply-To
Siódma przyczyna jest banalnie prosta, ale widzę ją u co trzeciego klienta. W ustawieniach WooCommerce, Ustawienia, E-maile pole From address jest wypełnione adresem z innej domeny niż sklep – np. wordpress@localhost albo [email protected]. Dostawca SMTP odrzuca takie maile, bo nadawca nie zgadza się z domeną autoryzowaną w SPF i DKIM.
Jak to naprawić poprawnie:
1. Przejdź do WooCommerce, Ustawienia, E-maile, Opcje nadawcy e-maila.
2. From name: nazwa Twojego sklepu (np. Sklep XYZ) – ta pojawi się jako nadawca w skrzynce klienta.
3. From address: adres z domeny sklepu, nigdy z Gmaila czy Yahoo (np. [email protected]).
4. Sprawdź, czy ten sam adres From jest ustawiony w wtyczce SMTP – niektóre wtyczki nadpisują ustawienia WooCommerce.
5. Ustaw Reply-To na adres, na który klienci mogą odpowiadać (np. [email protected]), inny niż From.
Dlaczego to ma znaczenie: DMARC wymaga alignment – adres w polu From musi należeć do tej samej domeny, której klucze DKIM są w DNS. Jeśli wysyłasz przez SendGrid z zweryfikowaną domeną twojadomena.pl, ale w From masz [email protected], DMARC blokuje maila. Proste do sprawdzenia, proste do naprawienia, ogromna różnica w dostarczalności. Często jedna zmiana podnosi wynik mail-tester.com o 2 punkty.
Konfiguracja SMTP krok po kroku (FluentSMTP + SendGrid)
Tu masz gotowy scenariusz, który zadziała w 95 procent sklepów. Używam go przy wdrożeniach od lat i nie pamiętam, kiedy ostatnio coś się wysypało.
Krok 1 – zarejestruj się w SendGrid (sendgrid.com). Darmowy plan to 100 maili dziennie, wystarczy dla małego sklepu. Po rejestracji przejdź do Settings, Sender Authentication, Authenticate Your Domain i zweryfikuj domenę sklepu. SendGrid da Ci 3 rekordy CNAME – wklej je do DNS domeny (w panelu hostingu albo Cloudflare).
Krok 2 – zainstaluj FluentSMTP. Wtyczki, Dodaj nową, wyszukaj FluentSMTP, Zainstaluj i aktywuj.
Krok 3 – dodaj połączenie SendGrid. W FluentSMTP kliknij Add Connection, wybierz SendGrid, wklej API Key (wygenerowany w SendGrid, Settings, API Keys z uprawnieniem Mail Send). W polu From email wpisz adres z domeny sklepu (np. [email protected]), From name to nazwa sklepu.
Krok 4 – ustaw jako default. Zaznacz Force From Email i Force From Name – te opcje nadpisują ustawienia innych wtyczek i gwarantują spójność.
Krok 5 – test. FluentSMTP ma wbudowany tester. Kliknij Send Test Email i wyślij do siebie. Mail powinien dojść w 2-3 sekundy.
Krok 6 – test prawdziwego zamówienia. Złóż testowe zamówienie na sklepie. Sprawdź, czy przyszedł mail do klienta i admina. W FluentSMTP, Email Logs zobaczysz status każdej wysyłki.
Alternatywy dla SendGrid: Mailgun (1000 maili miesięcznie free), Brevo (300 dziennie free), Amazon SES (najtaniej przy większym wolumenie, 10 centów za 1000 maili), Resend (nowy gracz, bardzo dobry dla programistów).
Kiedy warto zaangażować dewelopera lub [agencję](/kontakt/)
Większość problemów z mailami w WooCommerce naprawisz samodzielnie w godzinę. Ale są sytuacje, w których lepiej zadzwonić po specjalistę – bo ryzyko zepsucia jest wyższe niż koszt interwencji.
Zaangażuj dewelopera gdy:
- Sklep ma niestandardowy motyw, który nadpisuje szablony maili WooCommerce (katalog emails w motywie). Zmiana SMTP może nie wystarczyć – trzeba przejrzeć template-y, bo mogły wyłączyć standardowe triggery.
- Masz integrację z BaseLinker, Subiektem GT, Enova, WMS – te integracje mają własne kolejki maili, które mogą kolidować z problemami WooCommerce.
- Używasz wtyczki do multi-vendor (Dokan, WC Vendors) – każdy vendor ma osobne maile, konfiguracja jest bardziej skomplikowana.
- Po przejściu przez wszystkie 7 przyczyn mail nadal nie wychodzi – wtedy problem jest w hookach PHP i wymaga debugowania z dostępem do kodu.
- Wysyłasz więcej niż 10 000 maili miesięcznie – wtedy warto zrobić audyt cyfrowy deliverability, segmentację i warm-up dedykowanego IP.
Koszt interwencji: jednorazowa naprawa 300-800 zł, pełny audyt dostarczalności z konfiguracją SendGrid, SPF, DKIM, DMARC i BIMI to 1500-3000 zł. Przy sklepie z 500 zamówieniami miesięcznie brak maili to strata 15-30 procent konwersji – inwestycja w naprawę zwraca się w 2 tygodnie.
Jeśli potrzebujesz pomocy, skontaktuj się z nami – diagnozujemy, konfigurujemy i monitorujemy sklepy oparte o WordPress i WooCommerce, z pełną dostarczalnością od pierwszego dnia.
Wspomniane narzędzia
Potrzebujesz pomocy z e-commerce?
Budujemy sklepy internetowe na WooCommerce i integrujemy je z Baselinker, Allegro i systemami płatności. Bezpłatna wycena w 24h.
Najczęściej zadawane pytania
Dlaczego WooCommerce nie wysyła maili z potwierdzeniem zamówienia?
Jakiej wtyczki SMTP używać w WooCommerce w 2026 roku?
Ile kosztuje wysyłanie maili z WooCommerce przez SendGrid lub Mailgun?
Czy muszę konfigurować SPF, DKIM i DMARC, jeśli używam SMTP?
Maile WooCommerce przychodzą z dużym opóźnieniem – co to oznacza?
Jak sprawdzić, czy maile WooCommerce nie trafiają do spamu?
Potrzebujesz pomocy?
Potrzebujesz szybkiej pomocy?
Naprawimy problem za Ciebie. Bezpłatna diagnoza i wycena naprawy w ciągu 24h.

