PrestaShop WordPress brak maili to fraza, która niestety wraca jak bumerang, gdy na sklepie nagle przestają dochodzić potwierdzenia zamówień, reset hasła czy wiadomości z formularza kontaktowego. Nie ma nic bardziej frustrującego niż sytuacja, w której klienci nie widzą żadnych e-maili, a Ty dopiero po kilku godzinach zauważasz ciszę w skrzynce. Dobra wiadomość jest taka, że w 90% przypadków problem da się zdiagnozować i naprawić stosunkowo szybko. Poniżej znajdziesz praktyczny przewodnik: jak sprawdzić, co poszło nie tak, jak naprawić wysyłkę i jak zabezpieczyć się na przyszłość.
Dlaczego wiadomości e-mail „znikają”?
Wysyłka e-maili to nie tylko kliknięcie „Wyślij” w panelu. Po drodze dzieje się sporo:
- Aplikacja (PrestaShop, WordPress/WooCommerce) generuje wiadomość.
- Silnik pocztowy (PHP mail() lub SMTP) próbuje ją wysłać.
- Serwer pocztowy przyjmuje i przekazuje dalej.
- Filtry antyspamowe po drodze oceniają reputację nadawcy.
- Skrzynka odbiorcy (np. Gmail, Outlook) ostatecznie przyjmuje lub odrzuca, czasem przerzucając do SPAM.
Awaria może nastąpić na każdym etapie: błędna konfiguracja SMTP, zablokowany port, filtr antyspamowy, brak rekordu SPF/DKIM, przeciążone zadania CRON, wadliwa wtyczka, uszkodzony szablon e-mail, czy nawet zwykła literówka w adresie odbiorcy. Kluczem jest szybka, metodyczna diagnoza.
Szybka diagnoza w 5 minut
Jeśli potrzebujesz błyskawicznego rozeznania, zacznij od tego:
- Sprawdź, czy jakiekolwiek e-maile są wysyłane:
- PrestaShop: Zaawansowane > E-mail > Wyślij e-mail testowy.
- WordPress: skorzystaj z wtyczki SMTP (np. WP Mail SMTP) i wyślij test.
- Jeśli test nie wychodzi – to problem techniczny (konfiguracja/serwer). Jeśli test wychodzi, a transakcyjne nie – problem ustawień sklepu (statusy zamówień, szablony, trigger).
- Zobacz logi błędów aplikacji i/lub wtyczki SMTP – często podają dokładny powód (autoryzacja, TLS, zablokowany port).
- Sprawdź skrzynkę SPAM i kwarantannę po stronie odbiorcy. Użyj innego adresu (np. Gmail i firmowy) do testu.
- Zmień na moment nadawcę (From) na adres z tej samej domeny, co sklep (np. powiadomienia@twojadomena.pl) i wyślij ponownie.
Jeśli po tych 5 krokach masz trop, przejdź do sekcji dedykowanej Twojej platformie i dostawcy poczty.
Specyfika PrestaShop: gdzie najczęściej leży problem?
PrestaShop ma kilka wrażliwych miejsc, które potrafią skutecznie zatrzymać wysyłkę.
PrestaShop WordPress brak maili – co sprawdzić najpierw?
- Czy w ogóle masz włączoną wysyłkę SMTP w PrestaShop? Wiele hostingów blokuje funkcję PHP mail(), więc bez SMTP wiadomości nie wyjdą.
- Czy dane SMTP są aktualne (host, port 587/465, szyfrowanie TLS/SSL, login, hasło aplikacyjne)?
- Czy From (adres nadawcy) należy do domeny, która ma poprawne SPF/DKIM? Jeśli nie – dostarczalność spada, a maile lądują w spamie lub są odrzucane.
Ustawienia e-mail w PrestaShop (1.6/1.7/8.x)
- Przejdź do: Zaawansowane > E-mail.
- Tryb: Preferuj „Wyślij e-mail przez SMTP” zamiast „Używaj funkcji mail() PHP”.
- Host i port:
- TLS (STARTTLS) zwykle port 587.
- SSL (smtps) port 465.
- Uwierzytelnianie: login to najczęściej pełny adres e-mail. Często wymagane hasło aplikacyjne (np. w Google/Suite: App Password).
- Nadawca:
- Ustaw adres w Twojej domenie (np. sklep@twojadomena.pl). Unikaj free-maili (Gmail/Onet/WP) jako From.
- Dobrze, gdy subdomena ma własne rekordy (np. mail.twojadomena.pl) i konfigurację DKIM.
- Test e-mail: wyślij do dwóch różnych domen (np. Gmail i prywatny serwer). Sprawdź foldery SPAM/Oferty.
Jeśli test działa, ale powiadomienia o zamówieniach nie, problem może leżeć w statusach i szablonach.
Statusy zamówień a wysyłka powiadomień
- Ustawienia > Statusy zamówień:
- Sprawdź, czy przy wybranych statusach zaznaczona jest opcja „Wyślij e-mail do klienta”.
- Upewnij się, że do statusu przypisany jest szablon wiadomości w odpowiednim języku.
- Pamiętaj o trybie wielosklepowym (Multistore): ustawienia e-mail i szablonów mogą być różne dla każdego sklepu.
Szablony e-mail i tłumaczenia
- Lokalizacja > Tłumaczenia > E-maile:
- Upewnij się, że szablony HTML i TXT istnieją dla aktywnych języków.
- Zbyt agresywna edycja szablonu może psuć nagłówki (np. brak poprawnego Content-Type), co pogarsza dostarczalność.
- Załączniki:
- Bardzo duże załączniki lub nietypowe rozszerzenia często blokowane są przez filtry.
Moduły blokujące wysyłkę
- Moduły cache, optymalizacyjne i bezpieczeństwa potrafią nadpisywać klasy lub filtry.
- Tymczasowo wyłącz podejrzane moduły:
- Niestandardowe integracje newslettera.
- Modyfikacje klasy Mail.
- Moduły antyspamowe ingerujące w formularze.
- Sprawdź logi serwera www (500, timeout) i logi PrestaShop w trybie debug.
Logi i tryb debugowania
- Włącz tryb debug: Zaawansowane > Wydajność > Tryb debugowania.
- Sprawdź var/logs i wpisy błędów związanych z Mail::Send.
- Jeśli pojawia się błąd SMTP (np. Authentication failed, Could not connect to SMTP host), to znak, że problem jest na poziomie połączenia lub danych logowania.
WordPress i WooCommerce: najczęstsze przyczyny
WooCommerce i WordPress domyślnie używają funkcji mail() PHP. W praktyce warto przejść na SMTP lub dostawcę transakcyjnego.
WP Cron i Action Scheduler
- WooCommerce używa Action Scheduler do kolejkowania zadań (w tym powiadomień). Gdy WP Cron nie działa, kolejka może stanąć.
- Objawy:
- E-maile raz wychodzą, raz nie.
- W panelu WooCommerce > Status > Zorganizowane akcje widać opóźnione/nieudane zadania.
- Rozwiązania:
- Włącz realny CRON na serwerze i wyłącz pseudo-cron WordPress (DISABLE_WP_CRON).
- Usuń zablokowane zadania, odśwież kolejkę, zaktualizuj WooCommerce.
Wtyczki SMTP (WP Mail SMTP, Post SMTP)
- Zainstaluj WP Mail SMTP lub Post SMTP:
- Skonfiguruj SMTP lub integrację API (SendGrid, Mailgun, Brevo).
- Ustaw From name i From email na domenę sklepu.
- Zrób test wysyłki i sprawdź logi wtyczki:
- Post SMTP ma bardzo czytelny dziennik z odpowiedziami serwera.
- Unikaj konfliktu z innymi wtyczkami e-mail: tylko jedna powinna przejmować wysyłkę.
Formularze kontaktowe
- Contact Form 7, Gravity Forms, Ninja Forms:
- Upewnij się, że pole „From” nie używa adresu klienta (to częsty błąd). From powinien być z Twojej domeny, a adres klienta daj w reply-to.
- Włącz reCAPTCHA v3 lub honeypot, aby nie wysyłać spamu (masowe wysyłki potrafią ubić reputację IP).
- Testuj z różnymi treściami (krótki tekst bez linków) – czasem to treść wywołuje filtr antyspamowy.
Bezpieczeństwo i filtry antyspamowe
- Niektóre firewalle (np. Wordfence) mogą blokować żądania lub endpointy używane przez wtyczki e-mail.
- Sprawdź logi bezpieczeństwa i ewentualnie dodaj wyjątki dla wtyczki SMTP.
SMTP vs PHP mail(): co wybrać i dlaczego?
- PHP mail() jest szybkie, ale coraz częściej blokowane na hostingach współdzielonych i niemal zawsze ma gorszą dostarczalność (brak uwierzytelnienia, słaba reputacja IP).
- SMTP lub integracje API (SendGrid, Mailgun, Amazon SES, Brevo) zapewniają:
- Uwierzytelnienie i szyfrowanie.
- Stabilność i monitoring (logi, statystyki).
- Lepiej zarządzaną reputację i zgodność z politykami dużych providerów (Gmail, Microsoft).
W praktyce: przełącz się na SMTP/API i skonfiguruj SPF, DKIM, DMARC. To fundament.
Dostawcy transakcyjni: Brevo, Mailgun, SendGrid, Amazon SES
- Brevo (dawniej Sendinblue): prosty start, darmowy próg, dobre narzędzia do transakcyjnych. Ma wtyczki do PrestaShop i WordPress.
- Mailgun: świetny dla technicznych użytkowników, precyzyjne logi i webhooks.
- SendGrid: rozbudowany ekosystem, ale wymagane dobre przygotowanie pod deliverability.
- Amazon SES: najtańszy w skali, ale wymaga więcej konfiguracji i często wniosku o podniesienie limitów.
Kluczowe kryteria wyboru:
- Czy łatwo dodać i zweryfikować domenę (SPF, DKIM)?
- Jakie są limity i koszty?
- Jak wyglądają logi i integracje (wtyczki, API)?
- Czy dostawca ma dobrą reputację IP i możliwość dedykowanego IP (przy dużym wolumenie)?
Dostarczalność: SPF, DKIM, DMARC, rDNS, warm-up
Prawidłowa konfiguracja DNS to „prawo jazdy” nadawcy transakcyjnego.
SPF
- Rekord TXT w DNS, definiujący, które serwery mogą wysyłać e-maile w imieniu Twojej domeny.
- Przykład (koncepcyjnie): v=spf1 include:mailgun.org include:sendgrid.net a mx ~all
- Zasady:
- Tylko jeden rekord SPF per domena.
- Minimalizuj liczbę include (limit 10 lookupów DNS).
- Używaj ~all (softfail) lub -all (hardfail) świadomie. Na start bezpieczniej ~all.
DKIM
- Kryptograficzny podpis wiadomości. Dostawca generuje klucz publiczny (TXT w DNS) i podpisuje wychodzącą pocztę.
- Bez DKIM Gmail i Microsoft mocno obniżają scoring dostarczalności.
- Sprawdź, czy podpis alignuje z domeną From (SPF/DKIM alignment ważny przy DMARC).
DMARC
- Polityka mówiąca serwerom odbiorcy, co robić z mailami, które nie przechodzą SPF/DKIM i alignmentu.
- Start:
- v=DMARC1; p=none; rua=mailto:dmarc@twojadomena.pl; ruf=mailto:dmarc@twojadomena.pl; fo=1
- Na starcie p=none, aby monitorować. Później p=quarantine, docelowo p=reject.
- Raporty DMARC pomogą wykryć nieautoryzowane źródła.
Reverse DNS i reputacja IP
- rDNS (PTR) dla adresu IP serwera wysyłającego musi wskazywać na nazwę hosta, który zgadza się z nagłówkami HELO/EHLO.
- Na hostingu współdzielonym nie masz kontroli nad rDNS – kolejny powód, by korzystać z dostawców transakcyjnych.
- Sprawdź, czy IP nie jest na czarnej liście (np. Spamhaus, Barracuda). Jeśli jest – rozważ zmianę dostawcy.
Diagnozowanie po stronie serwera
Gdy testy z panelu sugerują problem z połączeniem:
- Porty:
- 587 (STARTTLS) – preferowany.
- 465 (SMTPS) – alternatywa.
- 25 – bywa całkowicie blokowany.
- Test połączenia:
- Jeśli masz dostęp SSH, sprawdź telnet/openssl do hosta SMTP na odpowiednim porcie.
- Firewalle i reguły bezpieczeństwa:
- Hosting może blokować ruch wychodzący na porty SMTP. Poproś support o otwarcie lub przejdź na integrację przez API (HTTP).
- Limity:
- Tanie hostingi narzucają limity wysyłki (np. 100 maili/h). Masowe powiadomienia (kampanie) mogą zablokować konto.
Problemy z TLS/SSL i portami
- Niekompatybilne wersje TLS (serwer wymusza TLS 1.2+, a biblioteka na serwerze ma starszą OpenSSL) – aktualizacja środowiska rozwiązuje problem.
- Samopodpisane certyfikaty po stronie SMTP potrafią zablokować wysyłkę, jeśli klient wymaga weryfikacji certyfikatu. Użyj trustowanych certyfikatów (Let’s Encrypt).
- Złe ustawienie „szyfrowanie: SSL vs TLS” w konfiguracji – testuj oba, ale preferuj STARTTLS (587).
Czarna lista, rate limiting, greylisting
- Blacklisty: jeśli Twój serwer trafia na listy RBL, odbiorcy mogą odrzucać pocztę. Sprawdź IP i domenę.
- Rate limiting: Gmail/Microsoft mogą tymczasowo ograniczać odbiór z powodu nowej domeny, nagłego skoku wolumenu lub słabych sygnałów jakości.
- Greylisting: pierwsza próba nieudana, kolejna przejdzie. Dlatego niektóre maile docierają z opóźnieniem.
Jak reagować:
- Zmniejsz tempo wysyłki, wprowadź kolejkę.
- Popraw autoryzację (SPF, DKIM, DMARC).
- Oczyść listy adresów (twarde odbicia, nieistniejące maile).
- Ogranicz linki skracające, spamowe słowa, wielkie załączniki.
Inbox vs Spam: testy i narzędzia
- Wyślij test na różne skrzynki: Gmail, Outlook, Proton, firmowa.
- Skorzystaj z narzędzi:
- mail-tester.com (ocena treści, SPF, DKIM, blacklisty).
- GlockApps, MXToolbox (testy DNS i reputacji).
- Sprawdź nagłówki odebranych wiadomości (Authentication-Results, Received-SPF, DKIM-Signature), aby ocenić, który etap zawodzi.
Dobre praktyki projektowania treści maili transakcyjnych
- Nadawca:
- Czytelna nazwa (np. Sklep XYZ – Powiadomienia).
- Adres w Twojej domenie, spójny ze sklepem.
- Temat:
- Konkretny, bez krzykliwych emotikon i CAPS. Np. „Potwierdzenie zamówienia #12345”.
- Treść:
- HTML + wersja tekstowa (multipart/alternative).
- Linki prowadzące do Twojej domeny (bez skracaczy).
- Poprawne kodowanie (UTF-8), alt dla obrazków.
- Stopka:
- Dane firmy, kontakt, czytelne powody, dlaczego dostajesz tego maila.
- Załączniki:
- Minimalizuj rozmiar. Rozważ link do pobrania zamiast załącznika.
- Spójność języka:
- Zadbaj o poprawne tłumaczenia i unikanie „spamowych” zwrotów (darmowy, pilne, natychmiast! w nadmiarze).
Scenariusze i rozwiązania: krótkie case studies
-
Przypadek 1: Test e-mail działa, ale klient nie dostaje potwierdzenia zamówienia
- Diagnoza:
- Włączona wysyłka SMTP, test OK.
- W WooCommerce powiadomienia dla „Nowe zamówienie” wyłączone dla klienta lub skierowane na zły adres.
- Albo w PrestaShop status „Płatność przyjęta” nie ma przypisanego maila.
- Rozwiązanie:
- WooCommerce > Ustawienia > E-maile: włącz, ustaw poprawnych odbiorców, zapisz.
- PrestaShop > Ustawienia > Statusy: przypisz szablony e-mail, zaznacz „Wyślij do klienta”.
- Diagnoza:
-
Przypadek 2: Log SMTP mówi „Authentication failed”
- Diagnoza:
- Nieprawidłowe hasło (często mylone z hasłem do skrzynki, a potrzebne jest „hasło aplikacyjne”).
- Brak uprawnień do SMTP u dostawcy (konto nie ma aktywnej funkcji wysyłki).
- Rozwiązanie:
- Wygeneruj hasło aplikacyjne u dostawcy (Google, Microsoft).
- Zweryfikuj domenę i włącz usługę SMTP/API.
- Diagnoza:
-
Przypadek 3: „Could not connect to SMTP host” lub timeout
- Diagnoza:
- Hosting blokuje porty 587/465.
- Firewall na serwerze lub niezgodność TLS.
- Rozwiązanie:
- Poproś hosting o odblokowanie portów lub przejdź na integrację API.
- Zmień szyfrowanie z SSL na TLS lub odwrotnie, zaktualizuj OpenSSL/PHP.
- Diagnoza:
-
Przypadek 4: E-maile wpadają do SPAMu w Gmailu
- Diagnoza:
- Brak DKIM/DMARC lub From z innej domeny niż podpis DKIM (brak alignmentu).
- Treść szablonu zbyt „marketingowa” jak na transakcyjne.
- Rozwiązanie:
- Włącz DKIM i DMARC z p=none na start, sprawdź alignment.
- Przeprojektuj temat i treść (neutralna, transakcyjna), zapewnij wersję tekstową.
- Diagnoza:
-
Przypadek 5: W WordPress e-maile raz działają, raz nie
- Diagnoza:
- WP Cron nie działa poprawnie, zadania „pending”.
- Rozwiązanie:
- Skonfiguruj systemowy CRON (co 5 minut) do wywołania wp-cron.php, wyłącz pseudo-cron, wyczyść i uruchom kolejkę.
- Diagnoza:
Lista kontrolna przed wdrożeniem na produkcję
- Konfiguracja:
- SMTP/API skonfigurowane i przetestowane.
- From w Twojej domenie, spójny branding.
- DNS:
- SPF: jeden rekord, poprawne include, test na MXToolbox.
- DKIM: podpis aktywny i w nagłówkach PASS.
- DMARC: p=none z raportami na start.
- rDNS: jeśli wysyłasz z własnego serwera, PTR poprawny.
- Aplikacja:
- PrestaShop: statusy zamówień mają przypisane maile, test wysyłki przechodzi.
- WooCommerce: wszystkie wymagane e-maile włączone, Action Scheduler bez opóźnień.
- Formularze ustawione z reply-to, nie jako From.
- Bezpieczeństwo i limity:
- CAPTCHA/honeypot na formularzach.
- Monitorowanie błędów SMTP i logów.
- Znane limity dostawcy (rate limits) i ewentualna kolejka.
- Treść:
- Szablony HTML + TXT.
- Neutralne tematy, bez zbędnych załączników.
- Testy dostarczalności: mail-tester, Gmail, Outlook.
FAQ: krótkie odpowiedzi na najczęstsze pytania
- Czy muszę używać SMTP?
- Nie musisz, ale powinieneś. SMTP/API znacząco poprawia stabilność i dostarczalność.
- Czy mogę używać Gmaila jako nadawcy?
- Tak, ale lepiej przez OAuth/hasło aplikacyjne i z odpowiednimi limitami. Do sklepu rekomendowani są dostawcy transakcyjni.
- Czemu test działa, a maile transakcyjne nie?
- Inne wyzwalacze: statusy zamówień, błędy w szablonie, wyłączone e-maile w WooCommerce, problem z kolejką zadań.
- Czy DMARC p=reject od razu?
- Na start użyj p=none, zbierz raporty, popraw źródła i alignment. Potem stopniowo przechodź do quarantine/reject.
- Jak szybko „naprawić” spam?
- Popraw From, włącz DKIM, ogranicz linki i słowa spamowe, dodaj wersję TXT, sprawdź mail-tester. Czasem efekt jest widoczny w godzinę, czasem w kilka dni.
Podsumowanie i plan działania na dziś
- Zrób szybki test:
- PrestaShop/WordPress: wyślij e-mail testowy przez SMTP/API.
- Jeśli błąd – popraw konfigurację (host, port, TLS, hasło aplikacyjne). Jeśli wysyła – sprawdź statusy, szablony, kolejkę zadań.
- Przenieś wysyłkę z PHP mail() na SMTP lub integrację transakcyjną (Brevo, Mailgun, SendGrid, Amazon SES).
- Uporządkuj DNS:
- SPF, DKIM, DMARC (p=none na start), sprawdź alignment i raporty.
- Popraw treści:
- Neutralne tematy, From w Twojej domenie, wersja TXT, brak zbędnych załączników.
- Monitoruj:
- Włącz logi wtyczki SMTP, sprawdzaj Action Scheduler/CRON, zaglądaj w raporty DMARC.
- Zapobiegaj:
- Captcha/honeypot, limity wysyłki, czyste listy odbiorców, aktualizacje wtyczek i modułów.
Jeśli potrzebujesz dodatkowej pomocy, przygotuj zestaw diagnostyczny: zrzuty z konfiguracji SMTP, log z błędem, wyniki testu mail-tester oraz informacje o hostingu i dostawcy poczty. Z takim pakietem rozwiążesz „PrestaShop WordPress brak maili” szybciej, niż myślisz.