Artykuł

Dlaczego formularz w WordPressie przestaje wysyłać wiadomości

W WordPressie przyczyną jest zwykle nie wtyczka, tylko sposób wysyłki i zły adres nadawcy. Naprawa krok po kroku i sposób, żeby zgłoszenia przestały ginąć.

10 min czytania
Udostępnij
Spis treści · 9

/ Przyczyna

Dlaczego formularz przestaje wysyłać wiadomości

W WordPressie prawie zawsze chodzi o jedną z dwóch rzeczy — i żadna z nich nie jest usterką samego formularza ani wtyczki, w której go zrobiłeś.

Pierwsza: sposób wysyłki. WordPress domyślnie wysyła pocztę wbudowaną funkcją serwera, bez logowania do jakiejkolwiek skrzynki. Jest to rozwiązanie wygodne i dokładnie z tego powodu nadużywane do rozsyłania spamu — więc coraz więcej firm hostingowych je ogranicza albo wyłącza całkowicie. Wtedy formularz działa, przyjmuje zgłoszenie, wyświetla podziękowanie i nie wysyła nic.

Druga: adres nadawcy. Wiele formularzy jest ustawionych tak, że wysyłają wiadomość „od” osoby, która je wypełniła. Wygląda to wygodnie w skrzynce, ale z punktu widzenia serwera odbiorcy Twój serwer podaje się za cudzą domenę — a to jest dokładnie wzorzec, który współczesna poczta ma wykrywać i blokować. Ta przyczyna jest podstępniejsza, bo bywa wybiórcza: do jednego dostawcy maile dochodzą, do drugiego nie.

Ważne, żeby zrozumieć, dlaczego problem tak długo pozostaje niezauważony. Formularz nie wie, czy wiadomość dotarła. Wysyła ją i natychmiast pokazuje podziękowanie — bez względu na wynik. Z perspektywy odwiedzającego wszystko zadziałało, z Twojej po prostu nikt się nie odezwał.

/ Diagnoza

Co sprawdzić w pierwszej kolejności

Zanim zainstalujesz cokolwiek, trzy rzeczy zajmujące łącznie kilka minut. Kolejność ma znaczenie, bo każda kolejna jest droższa w czasie.

  1. Adres odbiorcy w ustawieniach formularza. Zaskakująco często to jest cała przyczyna: literówka, adres byłego pracownika albo skrzynka, która przekroczyła limit pojemności i odrzuca nowe wiadomości.
  2. Folder spamu na skrzynce docelowej. Jeśli wiadomości tam są, wysyłka działa i problemem jest wyłącznie uwierzytelnienie — przechodzisz od razu do sekcji o spamie.
  3. Wtyczki bezpieczeństwa i antyspamowe. Zabezpieczenie formularza potrafi odrzucać zgłoszenia po cichu, uznając je za automatyczne. Jeśli formularz przestał działać w okolicach instalacji nowej wtyczki, zacznij od tego.

Jeżeli żadna z tych trzech rzeczy niczego nie wyjaśnia, przyczyną jest sposób wysyłki i przechodzisz dalej.

/ Naprawa

Właściwa naprawa: wysyłka przez SMTP

SMTP to zwykły sposób wysyłania poczty — ten sam, którego używa program pocztowy na telefonie. Zamiast anonimowej funkcji serwera strona loguje się do prawdziwej skrzynki i wysyła wiadomość jako ona.

Zmienia to sytuację w dwóch miejscach naraz. Wiadomość przestaje zależeć od funkcji, którą hosting może wyłączyć, i zyskuje nadawcę, który naprawdę istnieje — a to poprawia dostarczalność niezależnie od pierwotnej przyczyny awarii.

Konfiguracja sprowadza się do wpisania w ustawieniach wtyczki tych samych danych, które wpisuje się w telefonie przy dodawaniu konta pocztowego: serwer wysyłania, port, rodzaj szyfrowania, nazwa użytkownika i hasło. Dane te podaje Twój dostawca hostingu lub poczty i to jest jedyne wiarygodne źródło — wartości przepisane z cudzego poradnika są najczęstszym powodem, dla którego konfiguracja nie działa.

Dwie rzeczy, które warto zrobić od razu

Po pierwsze: załóż osobne konto pocztowe wyłącznie dla strony, na przykład na potrzeby formularza, zamiast używać swojej głównej skrzynki. Jeśli hasło kiedyś wycieknie z witryny, tracisz konto techniczne, a nie całą korespondencję firmy. Po drugie: włącz w wtyczce dziennik wysłanych wiadomości. To jedyne miejsce, w którym później zobaczysz, czy wysyłka faktycznie się powiodła.

Którą wtyczkę SMTP wybrać

Wszystkie popularne wtyczki robią tu dokładnie to samo i każda ma bezpłatną wersję w pełni wystarczającą do formularza kontaktowego. Różnią się głównie tym, ile dokładają wokół:

WtyczkaAktywne instalacjeCzym się wyróżnia
WP Mail SMTPponad 4 mlnNajpopularniejsza, kreator konfiguracji prowadzący krok po kroku.
FluentSMTPponad 600 tys.Dziennik wysyłki i statystyki dostępne bez wersji płatnej.
Post SMTPponad 300 tys.Powiadomienie o nieudanej wysyłce i ponawianie prób.

Liczba instalacji ma tu praktyczne znaczenie, i to większe niż lista funkcji: przy wtyczce używanej przez miliony stron opis Twojego błędu prawie na pewno jest już gdzieś opisany razem z rozwiązaniem. Sprawdź natomiast datę ostatniej aktualizacji — wtyczka rozmawiająca z serwerami poczty przestaje działać, gdy te zmieniają zasady logowania.

/ Wybór

Skąd wysyłać: własna skrzynka czy usługa wysyłkowa

Po zainstalowaniu wtyczki trzeba wskazać, przez co ma wysyłać. Są dwie drogi i dla małej firmy odpowiedź jest zwykle oczywista, choć poradniki chętnie pchają w stronę droższą.

Zwykłe konto pocztowe w Twojej domenie — to konto, które najprawdopodobniej masz już w pakiecie hostingu. Nic nie kosztuje, konfiguruje się w kilka minut, a wiadomości wychodzą z domeny, do której masz pełne prawa. Przy formularzu kontaktowym generującym od kilku do kilkudziesięciu wiadomości dziennie to rozwiązanie w zupełności wystarcza i nie ma powodu szukać dalej.

Zewnętrzna usługa wysyłkowa — osobny dostawca wyspecjalizowany w dostarczaniu poczty. Daje statystyki dostarczalności, informację o odbiciach i wydzielone serwery wysyłkowe. Ma sens przy większej skali albo wtedy, gdy poczta z Twojej domeny ma już złą historię i trudno ją odbudować. Kosztuje, wymaga osobnego konta i dokłada kolejnego dostawcę do listy podmiotów, którym powierzasz dane.

Prosta reguła: zacznij od własnej skrzynki i przejdź na usługę wysyłkową dopiero wtedy, gdy pojawi się konkretny problem, którego skrzynka nie rozwiązuje. Odwrotna kolejność to płacenie abonamentu za problem, którego nie masz.

/ Pułapka

Błąd, który zostaje nawet po poprawnej naprawie

To jest sekcja, której brakuje w większości poradników na ten temat, a która odpowiada za sporą część przypadków „skonfigurowałem SMTP i dalej nie działa”.

Sprawdź, jaki adres nadawcy ustawia sam formularz. Jeśli w polu nadawcy widnieje adres osoby wypełniającej formularz, wiadomość wychodzi z Twojego serwera, ale podszywa się pod cudzą domenę. Nie masz prawa wysyłać poczty w imieniu domeny, której nie kontrolujesz, więc serwer odbiorcy może taką wiadomość odrzucić albo potraktować jako podejrzaną — i coraz częściej to robi.

Poprawne ustawienie wygląda tak:

PoleCo wpisaćDlaczego
Nadawca (From)Adres w Twojej domenieTo domena, dla której serwer ma prawo wysyłać.
Odpowiedź (Reply-To)Adres klienta z formularzaKliknięcie „Odpowiedz” nadal trafia do niego.
TematNazwa firmy i rodzaj zgłoszeniaŁatwiej odszukać i mniej przypomina wysyłkę masową.

Efekt dla Ciebie jest identyczny — odpowiadasz jednym kliknięciem — a wiadomość przestaje wyglądać na podszytą. Ta jedna zmiana rozwiązuje więcej przypadków niż jakakolwiek inna po skonfigurowaniu wysyłki.

/ Dostarczalność

Gdy maile dochodzą, ale trafiają do spamu

To już inny problem: wysyłka działa, brakuje natomiast potwierdzenia, że Twój serwer ma prawo wysyłać pocztę w imieniu Twojej domeny. Potwierdzenie to trzy wpisy w konfiguracji domeny, dodawane tam, gdzie zarządzasz domeną — nie w WordPressie.

  • SPF — lista serwerów uprawnionych do wysyłania poczty z Twojej domeny.
  • DKIM — podpis pozwalający odbiorcy sprawdzić, że wiadomość nie została zmieniona po drodze.
  • DMARC — instrukcja, co odbiorca ma zrobić, gdy dwa poprzednie sprawdziany wypadną źle.

Nie trzeba rozumieć ich działania, żeby je poprawnie ustawić: dostawca poczty podaje gotowe wartości do wklejenia. Warto natomiast wiedzieć, że są ustawiane raz i chronią potem wszystko, co wychodzi z Twojej domeny — również zwykłą korespondencję, nie tylko formularz.

I jedna uwaga o testowaniu, bo tu najłatwiej się oszukać. Wysłanie testu na własną skrzynkę w tej samej domenie nie dowodzi niczego, bo taka poczta często dochodzi nawet wtedy, gdy wysyłka na zewnątrz jest zepsuta. Testuj na dwa adresy u różnych dostawców i zaglądaj do spamu.

/ Wniosek

Głębszy problem: mail jest jedynym śladem po zgłoszeniu

Załóżmy, że wszystko powyżej zrobione. Wysyłka działa, adres nadawcy poprawny, wpisy w domenie ustawione. Zostaje pytanie, które decyduje o tym, czy ta historia się powtórzy: skąd się dowiesz, kiedy to znowu przestanie działać?

Bo przestanie. Zmieni się hasło do skrzynki, hosting przeniesie stronę na inny serwer, wygaśnie certyfikat, wtyczka dostanie aktualizację. A formularz nadal będzie wyświetlał podziękowanie, bo on nigdy nie wiedział, czy wiadomość doszła.

Cisza w skrzynce jest sygnałem beznadziejnie słabym. Nikt nie zauważa braku maila, którego się nie spodziewał — a przy zapytaniach ofertowych nie da się przewidzieć, ile ich miało przyjść w danym tygodniu. Dlatego pierwsze pytanie po naprawie nie brzmi „czy działa”, tylko „gdzie jeszcze zapisuje się zgłoszenie”.

Rozwiązanie jest proste i tanie: drugie, niezależne miejsce zapisu. Może to być baza WordPressa — wiele wtyczek formularzy zapisuje tam zgłoszenia niezależnie od poczty — albo arkusz kalkulacyjny uzupełniany automatycznie. Wtedy poczta staje się powiadomieniem, a nie jedynym śladem, i tydzień bez nowego wiersza jest widocznym sygnałem, że coś się zepsuło.

Jest tu jedna pułapka warta sprawdzenia u siebie, zanim uznasz temat za zamknięty. Contact Form 7, czyli najczęściej spotykany formularz w polskim WordPressie, domyślnie nie zapisuje zgłoszeń nigdzie. Wysyła maila i na tym kończy swoją rolę — jeśli wiadomość nie dotrze, po zgłoszeniu nie zostaje żaden ślad, którego dałoby się szukać. Nie jest to usterka, tylko świadoma decyzja projektowa, ale w praktyce oznacza, że przy tym formularzu drugie miejsce zapisu nie jest udoskonaleniem, lecz warunkiem tego, żeby cokolwiek dało się odzyskać.

Sprawdzian zajmuje minutę: wyślij testowe zgłoszenie i zobacz, czy pojawia się gdziekolwiek w panelu WordPressa. Jeśli nie — poczta jest u Ciebie jedynym śladem i to jest pierwsza rzecz do zmiany, ważniejsza od dalszego dopieszczania wysyłki.

Rozpisałem trzy sposoby na taki zapis — wtyczkę, platformę automatyzacji i własny skrypt — razem z kosztami i tym, co się w nich psuje, w tekście o wyprowadzaniu zgłoszeń z formularza do Arkuszy Google. Jeśli w zgłoszeniach są dane osobowe klientów, warto też zajrzeć do obowiązków, które się z tym wiążą.

/ Podsumowanie

Checklista

  • Adres odbiorcy w ustawieniach formularza jest aktualny i skrzynka nie jest przepełniona.
  • Wysyłka idzie przez SMTP, z osobnego konta pocztowego założonego dla strony.
  • Nadawca to adres w Twojej domenie; adres klienta siedzi w polu odpowiedzi.
  • Domena ma ustawione SPF, DKIM i DMARC.
  • Test wykonany na dwa adresy u różnych dostawców, ze sprawdzeniem spamu.
  • Włączony dziennik wysyłki we wtyczce.
  • Zgłoszenia zapisują się także poza pocztą.

Jeżeli wolisz mieć pewność, że nic nie ginie — od naprawy wysyłki po drugie miejsce zapisu — zajmuję się tym u klientów.

Komuś się przyda? Podeślij
FAQ

Co jeszcze warto wiedzieć o wysyłce maili z formularza

Większość pytań sprowadza się do jednego: skąd wiadomo, że problem naprawdę zniknął, skoro formularz i wcześniej wyglądał na działający.

Dlaczego formularz WordPress przestaje wysyłać maile?

Najczęściej dlatego, że WordPress domyślnie wysyła wiadomości funkcją PHP wbudowaną w serwer, a coraz więcej firm hostingowych ją ogranicza lub całkowicie wyłącza — jest bowiem powszechnie wykorzystywana do rozsyłania spamu. Druga częsta przyczyna jest niezależna od hostingu: wiadomość jest wysyłana z adresu nadawcy należącego do cudzej domeny, na przykład adresu osoby wypełniającej formularz, i serwer odbiorcy odrzuca ją jako niespełniającą wymogów uwierzytelnienia.

Czy wtyczka SMTP rozwiązuje problem na stałe?

Rozwiązuje sposób wysyłki, czyli najczęstszą przyczynę. Zamiast funkcji serwera wiadomość jest wysyłana przez zwykłe konto pocztowe albo usługę wysyłkową, tak samo jak z programu pocztowego. Nie naprawia natomiast błędnie ustawionego adresu nadawcy ani nie sprawia, że dowiesz się o awarii — jeśli wysyłka znów przestanie działać, formularz nadal będzie wyświetlał podziękowanie. Dlatego po skonfigurowaniu SMTP warto dołożyć drugie, niezależne miejsce zapisu zgłoszeń.

Jaki adres nadawcy ustawić w formularzu?

Zawsze adres w domenie własnej strony, na przykład formularz w domenie firmy. Adres osoby wypełniającej formularz należy wpisać w polu „Reply-To”, czyli adres odpowiedzi — dzięki temu kliknięcie „Odpowiedz” nadal trafia do klienta, a sama wiadomość jest wysyłana z domeny, którą kontrolujesz i dla której serwer ma prawo wysyłać pocztę. Ustawienie adresu klienta jako nadawcy jest najczęstszym powodem, dla którego wiadomości lądują w spamie albo znikają bez śladu.

Maile dochodzą, ale trafiają do spamu — co zrobić?

To zwykle znaczy, że wysyłka działa, ale domena nie potwierdza, że dany serwer ma prawo wysyłać w jej imieniu. Potrzebne są wpisy uwierzytelniające w konfiguracji domeny — SPF, DKIM i DMARC — które dodaje się tam, gdzie zarządzasz domeną. Dostawca poczty lub usługi wysyłkowej podaje gotowe wartości do wklejenia. Pomaga też, żeby temat i treść wiadomości nie wyglądały jak masowa wysyłka: konkretny temat z nazwą firmy działa lepiej niż samo słowo „Formularz”.

Jak sprawdzić, czy problem naprawdę zniknął?

Nie wystarczy jeden test na własną skrzynkę, bo poczta w tej samej domenie często dochodzi nawet wtedy, gdy wysyłka na zewnątrz jest zepsuta. Wyślij testowe zgłoszenie na co najmniej dwa adresy u różnych dostawców — na przykład jeden w Gmailu i jeden w innej usłudze — i sprawdź także folder spamu. Wtyczki SMTP mają zwykle wbudowany test wysyłki oraz dziennik wysłanych wiadomości i to ten dziennik, a nie skrzynka, jest rozstrzygającym dowodem.

Czy da się dostać powiadomienie, gdy formularz przestanie działać?

Bezpośredniego alarmu o awarii zwykle nie ma, bo z punktu widzenia strony nic się nie psuje — formularz przyjmuje zgłoszenie i wyświetla podziękowanie niezależnie od tego, czy wiadomość gdziekolwiek dotarła. Praktyczne rozwiązanie jest odwrotne: zapisuj zgłoszenia również poza pocztą, w bazie WordPressa albo w arkuszu, i sprawdzaj to miejsce regularnie. Brak nowych wpisów przez tydzień jest sygnałem znacznie pewniejszym niż cisza w skrzynce.

Ile kosztuje naprawa wysyłki?

Sama konfiguracja zwykle nic nie kosztuje — wtyczki do wysyłki przez SMTP mają bezpłatne wersje, a konto pocztowe w domenie firmy najczęściej jest już w pakiecie hostingu. Koszt pojawia się dopiero przy większej skali albo przy usługach wysyłkowych z gwarancją dostarczalności i statystykami. Dla formularza kontaktowego małej firmy bezpłatna konfiguracja przez zwykłe konto pocztowe w domenie jest w zupełności wystarczająca.

Czytaj dalej

Masz problem, który wraca co miesiąc? Napisz.

Wypełnij brief →