WooCommerce nie wysyła maili: 9 przyczyn i jak je naprawić
Klienci nie dostają potwierdzeń zamówień? W 9 na 10 przypadków winne jest wysyłanie przez PHP mail() bez uwierzytelnienia. Sprawdź, gdzie ginie mail i jak to trwale naprawić.
Marcin Ledwolorz
CEO, APTURN
Krótka odpowiedź: jeśli WooCommerce nie wysyła maili z potwierdzeniami zamówień, najczęstszą przyczyną jest wysyłka przez funkcję PHP mail() bez uwierzytelnienia, którą serwery pocztowe traktują jak spam albo odrzucają w całości. Trwałe rozwiązanie to wysyłka przez SMTP lub API (np. skrzynka firmowa, Brevo, Resend) plus poprawne rekordy SPF i DKIM w DNS domeny. Poniżej pełna lista przyczyn, od najczęstszych, wraz z tym, jak je rozpoznać.
Zanim zaczniesz
Ustal najpierw, czy mail w ogóle wychodzi ze sklepu, czy wychodzi i ginie po drodze. To dwa różne problemy z dwoma różnymi rozwiązaniami. Wtyczka logująca wysyłkę (np. WP Mail Logging) odpowie na to w 5 minut.
Jak sprawdzić, gdzie ginie mail
- Zainstaluj wtyczkę logującą maile i złóż testowe zamówienie. Jeśli maila nie ma w logu, WooCommerce go nie wyzwala (przyczyny 6-7). Jeśli jest, problem leży w dostarczaniu (przyczyny 1-5, 8).
- Wyślij testowy mail na adres z mail-tester.com i sprawdź wynik. Poniżej 5/10 oznacza problemy z uwierzytelnieniem domeny.
- Sprawdź folder spam odbiorcy oraz logi pocztowe hostingu (większość paneli je udostępnia).
9 przyczyn, od najczęstszych
1. Wysyłka przez PHP mail() zamiast SMTP
Domyślnie WordPress wysyła maile funkcją PHP mail() prosto z serwera www, bez uwierzytelnienia. Gmail, Outlook i polskie serwery pocztowe coraz częściej takie maile odrzucają lub kierują do spamu. To przyczyna numer jeden i dlatego naprawę zaczynamy zawsze od skonfigurowania wysyłki przez SMTP lub API z prawdziwej skrzynki.
2. Brak rekordów SPF, DKIM i DMARC
Nawet poprawnie wysłany mail zostanie odrzucony, jeśli domena nie deklaruje w DNS, kto ma prawo wysyłać w jej imieniu. Od 2024 roku Gmail i Yahoo wymagają SPF i DKIM dla nadawców masowych, a bez DMARC część serwerów w ogóle nie przyjmuje poczty. Rekordy sprawdzisz np. w mxtoolbox.com; po zmianie dostawcy SMTP trzeba je zaktualizować.
3. Hosting blokuje wysyłkę
Część hostingów współdzielonych blokuje funkcję mail() albo port 25/465 po incydentach spamowych na serwerze. Objaw: maile nie wychodzą wcale, a w logach PHP pojawia się błąd wysyłki. Rozwiązanie: SMTP przez port 587 z uwierzytelnieniem albo wysyłka przez API po HTTPS, której hosting nie może zablokować.
4. Nadawca z innej domeny niż sklep
Jeśli sklep dziala na twojsklep.pl, a maile wychodzą jako [email protected], filtry antyspamowe traktują to jako podszywanie się. Adres nadawcy ustawiony w WooCommerce (Ustawienia, E-maile) musi być w domenie sklepu i istnieć naprawdę.
5. Wtyczka lub motyw nadpisuje wysyłkę
Dwie wtyczki SMTP zainstalowane naraz, wtyczka bezpieczeństwa blokująca phpmailer, snippet w functions.php sprzed lat. Konflikt objawia się tym, że maile przestały wychodzić po jakiejś aktualizacji. Diagnoza to wyłączanie wtyczek metodą połowienia na kopii sklepu, nie na produkcji.
6. Maile wiszą na statusach zamówień
WooCommerce wysyła każdy mail przy konkretnym przejściu statusu: potwierdzenie przy 'oczekujące na płatność' → 'przetwarzane', a przy płatności za pobraniem zamówienie potrafi utknąć w statusie, który żadnego maila nie wyzwala. Jeśli brakuje maili tylko dla części zamówień, sprawdź, przy jakich statusach one powstają i czy dany szablon maila jest w ogóle włączony w ustawieniach.
7. Zapchany harmonogram zadań (WP-Cron / Action Scheduler)
Część maili WooCommerce wysyła w tle przez kolejkę zadań. Gdy WP-Cron jest wyłączony, a serwerowy cron nieustawiony, albo gdy tabela Action Scheduler ma setki tysięcy zaległych wpisów, maile wychodzą z wielogodzinnym opóźnieniem lub wcale. Zajrzyj w Narzędzia, Zaplanowane akcje: zaległe zadania to czerwona lampka.
8. Treść maila wpada w spam
Mail wychodzi, dociera, ale ląduje w spamie u części odbiorców: zwykle przez brak wersji tekstowej, podejrzane załączniki generowane przez wtyczki PDF albo zbyt 'sprzedażowe' szablony. Test na mail-tester.com wskaże konkretne punkty do poprawy.
9. Wygasły klucz API dostawcy poczty
Jeśli wysyłka szła przez zewnętrznego dostawcę i nagle stanęła, sprawdź, czy klucz API nie wygasł, konto nie przekroczyło limitu darmowych maili albo dostawca nie zablokował konta za odbicia. Log wtyczki SMTP pokaże kod błędu zwracany przez serwer.
Naprawa krok po kroku
- Zrób kopię zapasową sklepu przed zmianami w konfiguracji.
- Skonfiguruj wysyłkę przez SMTP lub API z adresu w domenie sklepu.
- Ustaw lub popraw rekordy SPF, DKIM i DMARC w DNS.
- Złóż testowe zamówienie dla każdej metody płatności, którą oferujesz.
- Sprawdź log wysyłki i wynik mail-tester (cel: 9-10/10).
- Zostaw wtyczkę logującą na stałe: przy kolejnym problemie diagnoza zajmie minuty, nie godziny.
Wolisz mieć to z głowy?
Naprawiamy wysyłkę maili w WooCommerce razem z konfiguracją SPF/DKIM i testowym zamówieniem na końcu. Wycenę dostajesz przed startem prac, a większość takich napraw zamykamy w jeden dzień roboczy.
Potrzebujesz pomocy z tym tematem?
Wdrażamy to, o czym piszemy. Porozmawiaj z nami o swoim projekcie - bezpłatna konsultacja bez zobowiązań.