PrestaShop WordPress brak maili: Skuteczne, Najlepsze porady

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:

  1. 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.
  2. 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).
  3. Zobacz logi błędów aplikacji i/lub wtyczki SMTP – często podają dokładny powód (autoryzacja, TLS, zablokowany port).
  4. Sprawdź skrzynkę SPAM i kwarantannę po stronie odbiorcy. Użyj innego adresu (np. Gmail i firmowy) do testu.
  5. 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:
  • 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:
  • 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”.
  • 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.
  • 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.
  • 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ą.
  • 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ę.

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.

Łukasz Janeczko

Nazywam się Łukasz i stoję za DropDigital – ogarniam PrestaShop, WordPressa i własne moduły, które ułatwiają życie przedsiębiorcom. Prywatnie fan muzyki, Linuxa i motoryzacji, z zamiłowaniem do rozwiązywania problemów “po swojemu”.

Zostaw swój numer - oddzwonię

Cześć! Zadzwoń +48 572 651 439 lub napisz lub zostaw numer telefonu, a oddzwonię w ciągu 1h i porozmawiamy o ofercie.

Picture of Łukasz Janeczko

Łukasz Janeczko

Programista - DropDigital.pl