Przejdź do treści
Darmowy audyt

Strony internetowe Problem i rozwiązanie

Formularz kontaktowy nie wysyła wiadomości - przyczyny i jak to naprawić

Autor: Bartosz Gromek Zaktualizowano: 4 min czytania

W skrócie

  • Objaw: klient wysyła formularz i widzi komunikat o sukcesie, ale wiadomość nie trafia do skrzynki albo ląduje w spamie.
  • Przyczyna: najczęściej strona wysyła maile funkcją serwera bez uwierzytelnienia, a domena nie ma rekordów SPF, DKIM i DMARC; rzadziej błędny nadawca, literówka w adresie odbiorcy albo konflikt skryptów.
  • Rozwiązanie: wysyłka przez SMTP z firmowej skrzynki lub usługi transakcyjnej, nadawca z własnej domeny, poprawne rekordy DNS i zapisywanie zgłoszeń w bazie strony.

Nie masz czasu? Zrobimy to za Ciebie - Strony internetowe od 990 zł netto

Jak to wygląda

Klient wypełnia formularz na stronie, klika „Wyślij” i widzi komunikat „Dziękujemy, wiadomość została wysłana”. Do Twojej skrzynki nic jednak nie dociera. Czasem wiadomości przychodzą tylko od czasu do czasu, lądują w spamie albo docierają z dużym opóźnieniem. Problem potrafi trwać tygodniami, bo z perspektywy klienta wszystko działa, a firma po prostu przestaje dostawać zapytania.

  • formularz pokazuje sukces, a skrzynka jest pusta,
  • wiadomości trafiają do folderu spam albo do zakładki z ofertami,
  • po kliknięciu „Wyślij” formularz kręci się bez końca albo pokazuje błąd,
  • klient nie dostaje automatycznego potwierdzenia.

Dlaczego tak się dzieje

Formularz na stronie WordPress nie wysyła maili sam. Przekazuje je funkcji wp_mail, która domyślnie korzysta z funkcji mail() serwera. Taka wiadomość nie jest uwierzytelniona: serwer hostingu wysyła ją w imieniu Twojej domeny, choć domena go do tego nie upoważniła. Serwery pocztowe traktują takie maile jako podejrzane.

Brak SMTP i uwierzytelnienia domeny

Rekordy SPF, DKIM i DMARC w DNS domeny mówią serwerom pocztowym, kto może wysyłać maile w jej imieniu i co zrobić z wiadomościami, które nie przejdą weryfikacji. Jeśli ich nie ma albo nie obejmują serwera strony, wiadomości z formularza są odrzucane lub trafiają do spamu. To najczęstsza przyczyna problemu.

Błędny nadawca albo odbiorca

Wiele formularzy ustawia jako nadawcę adres wpisany przez klienta, np. w domenie gmail.com. Serwer strony nie może wysyłać maili w imieniu cudzej domeny, więc taka wiadomość nie przechodzi weryfikacji. Prawidłowo nadawcą jest adres z Twojej domeny, a adres klienta trafia do pola „Odpowiedz do”. Zdarza się też literówka w adresie odbiorcy albo adres byłego pracownika.

Skrypty, cache i ochrona przed spamem

Optymalizacja JavaScriptu, cache strony z nieaktualnym tokenem bezpieczeństwa albo źle skonfigurowana captcha potrafią zablokować wysyłkę. Hosting może też ograniczać liczbę maili wysyłanych funkcją mail() albo całkiem ją wyłączyć. Problem często pojawia się po przeniesieniu strony na nowy serwer albo zmianie dostawcy poczty, gdy stare ustawienia przestają pasować do nowej konfiguracji.

Objaw Najczęstsza przyczyna Gdzie sprawdzić
Sukces, ale brak maila Brak SMTP, SPF lub DKIM DNS domeny, ustawienia wtyczki SMTP
Maile w spamie Brak DMARC, nadawca z obcej domeny Nagłówki wiadomości, ustawienia formularza
Błąd lub kręcące się kółko Konflikt skryptów, cache, captcha Konsola przeglądarki, optymalizacja JS
Maile przychodzą tylko czasem Limity wysyłki na hostingu Logi poczty u hostingu

Zapisuj zgłoszenia z formularza także w bazie danych strony. Większość wtyczek formularzy ma taką opcję albo dodatek. Nawet gdy mail nie dotrze, żadne zapytanie nie przepadnie. Uwzględnij to w polityce prywatności i ustal, jak długo przechowujesz zgłoszenia.

Ten problem jest jednym z naszej listy 100 problemów ze stroną internetową firmy, w której opisujemy też spam w formularzach i maile z domeny trafiające do spamu.

Darmowy skan strony

Sprawdź swoją stronę za darmo

Wpisz adres, a przeniesiemy Cię do bezpłatnego skanu na stronie CodeScriptum.

Jak to rozwiązać krok po kroku

Formularz kontaktowy nie wysyła wiadomości - przyczyny i jak to naprawić - https://codescriptum.pl/blog/formularz-kontaktowy-nie-wysyla-wiadomosci/

  1. Wyślij testową wiadomość z formularza z adresu spoza firmy i sprawdź skrzynkę odbiorczą, folder spam i zakładki pocztowe. Zanotuj, czy formularz pokazał komunikat o sukcesie.
  2. Zainstaluj wtyczkę SMTP (np. WP Mail SMTP lub FluentSMTP) i połącz ją z firmową skrzynką albo usługą do maili transakcyjnych. Wyślij z wtyczki mail testowy.
  3. W ustawieniach formularza ustaw nadawcę na adres z własnej domeny (np. strona@twojadomena.pl), a adres klienta wpisz w pole „Odpowiedz do” (Reply-To). Sprawdź też adres odbiorcy.
  4. Sprawdź w DNS domeny rekordy SPF, DKIM i DMARC. Dodaj brakujące zgodnie z instrukcją dostawcy poczty, a DMARC zacznij od polityki monitorującej p=none.
  5. Włącz zapisywanie zgłoszeń w bazie danych strony i log wysyłki maili, żeby widzieć, czy wiadomość w ogóle wyszła ze strony.
  6. Jeśli formularz pokazuje błąd, wyłącz na chwilę optymalizację JavaScript i cache dla podstrony z formularzem i sprawdź konsolę przeglądarki (F12).

Jak sprawdzić, że zadziałało

Wyślij trzy wiadomości testowe z różnych skrzynek (np. Gmail, Outlook i firmowej), z komputera i z telefonu. Każda musi dotrzeć do skrzynki odbiorczej, a nie do spamu, a w nagłówkach wiadomości wyniki SPF, DKIM i DMARC powinny mieć status pass. Powtarzaj taki test co miesiąc i po każdej zmianie wtyczek.

Usługa CodeScriptum

Strony internetowe

od 990 zł netto

  • Projekt pod Twoich klientów i SEO
  • Szybka, bezpieczna, na WordPressie lub dedykowana
  • Wycena w 24 h

Najczęściej zadawane pytania

Dlaczego formularz pokazuje komunikat o wysłaniu, skoro mail nie dochodzi?

Komunikat oznacza tylko, że strona przyjęła formularz i przekazała wiadomość do wysyłki. To, co stało się dalej, widać dopiero w logu wysyłki albo na serwerze pocztowym.

Czy potrzebuję płatnej usługi do wysyłki maili?

Nie zawsze. Przy niewielkiej liczbie zapytań wystarczy SMTP firmowej skrzynki. Usługa do maili transakcyjnych przydaje się przy większej liczbie wiadomości, np. w sklepie internetowym.

Czy ochrona przed spamem może blokować prawdziwe zapytania?

Tak, zbyt ostra captcha albo filtr antyspamowy potrafią odrzucać prawdziwe wiadomości. Wybieraj niewidoczną ochronę i sprawdzaj co jakiś czas folder odrzuconych zgłoszeń.

Pojęcia w tym artykule

Źródła

  1. Dokumentacja WordPress (otwiera się w nowej karcie) wordpress.org
  2. DMARC.org: uwierzytelnianie poczty (otwiera się w nowej karcie) dmarc.org

Podobne problemy

O autorze

Bartosz Gromek

Założyciel CodeScriptum, technologia i rozwój

Założyciel CodeScriptum - firmy technologicznej z Łodzi, działającej od 2022 roku. Odpowiada za technologię i rozwój, a projekty realizuje razem z zespołem specjalistów od stron, sklepów internetowych, systemów CRM, integracji, AI i marketingu. Na blogu opisuje problemy, z którymi zgłaszają się klienci CodeScriptum, i sprawdzone sposoby ich rozwiązania.

Newsletter

Konkretne porady raz na jakiś czas

Nowe problemy i rozwiązania z bloga, zmiany w przepisach dla sklepów i stron oraz sprawdzone sposoby na więcej klientów z internetu. Bez spamu, wypis jednym kliknięciem.