Opublikowano: · Formularz WordPress i maile w spamie
Autor: Kamil Kosiorek „Kosior” — właściciel Vis-Sol, autor i właściciel procesu
Jak WordPress wysyła maile
WordPress wysyła pocztę funkcją wp_mail(), która korzysta z biblioteki PHPMailer. Domyślnie wiadomość trafia do funkcji mail() serwera, czyli hosting wysyła ją „po swojemu”, bez logowania na skrzynkę. Wtyczki formularzy, takie jak Contact Form 7, WPForms czy Gravity Forms, zwykle używają właśnie wp_mail().
Funkcja mail() nie daje informacji, czy wiadomość dotarła. Hosting może ją ograniczać, a serwery odbiorców często traktują takie maile podejrzliwie, bo nie są podpisane w imieniu Twojej domeny.
Krok 1: czy formularz w ogóle wysyła wiadomość
Wyślij testowe zgłoszenie z unikalnym tematem i zanotuj godzinę. Sprawdź skrzynkę docelową, folder spam i ewentualne reguły przekierowania. Jeśli wtyczka formularza zapisuje zgłoszenia w bazie, sprawdź, czy test tam jest. Jeśli jest w bazie, a nie ma maila, problem leży w wysyłce, nie w formularzu.
Gdy po kliknięciu „Wyślij” pojawia się błąd albo kręci się wskaźnik ładowania, przyczyną bywa konflikt wtyczek, błąd JavaScript, cache strony albo zabezpieczenie antyspamowe (reCAPTCHA) z nieaktualnym kluczem. Wtedy pomaga konsola przeglądarki i log błędów PHP.
Krok 2: nadawca musi być z Twojej domeny
Częsty błąd to ustawienie w polu „Od” adresu osoby wypełniającej formularz, np. klient@gmail.com. Twój serwer nie ma prawa wysyłać w imieniu gmail.com, więc wiadomość nie przejdzie weryfikacji i trafi do spamu albo zostanie odrzucona. Contact Form 7 ostrzega przed taką konfiguracją.
Poprawnie: „Od” to adres z Twojej domeny, np. formularz@twojadomena.pl, a adres klienta trafia do pola „Odpowiedz do” (Reply-To). Dzięki temu przycisk „Odpowiedz” nadal kieruje do klienta.
Krok 3: wysyłka przez SMTP zamiast mail()
Najpewniejsze rozwiązanie to wysyłka przez SMTP: WordPress loguje się na prawdziwą skrzynkę pocztową albo do usługi wysyłkowej i wysyła wiadomość tak jak program pocztowy. Służą do tego wtyczki, np. WP Mail SMTP, FluentSMTP czy Post SMTP.
- Utwórz osobną skrzynkę lub konto w usłudze wysyłkowej tylko do wysyłki z formularza.
- Wpisz serwer SMTP, port i szyfrowanie zgodnie z instrukcją dostawcy poczty.
- Ustaw nadawcę na adres z tej samej domeny co skrzynka.
- Wyślij test z panelu wtyczki i włącz log wysyłki, jeśli wtyczka go oferuje.
Dlaczego maile trafiają do spamu: SPF, DKIM i DMARC
Serwery pocztowe sprawdzają, czy nadawca ma prawo wysyłać w imieniu domeny. Służą do tego trzy rekordy w DNS domeny. Od 2024 roku Gmail i Yahoo wymagają ich od nadawców wysyłających dużo poczty, a brak uwierzytelnienia obniża zaufanie także przy pojedynczych mailach.
- SPF: rekord TXT z listą serwerów uprawnionych do wysyłki, np. v=spf1 include:… ~all. Domena może mieć tylko jeden rekord SPF, a liczba zagnieżdżonych sprawdzeń DNS jest ograniczona do 10.
- DKIM: podpis kryptograficzny wiadomości. Klucz publiczny publikujesz w DNS pod nazwą selektor._domainkey, a klucz prywatny ma serwer wysyłający. Włącza się go u dostawcy poczty.
- DMARC: rekord TXT pod _dmarc mówi odbiorcom, co robić z mailami, które nie przeszły SPF lub DKIM (p=none, quarantine, reject), i dokąd wysyłać raporty. Zacznij od p=none z raportami, a zaostrzaj po sprawdzeniu, że wszystkie legalne źródła poczty przechodzą weryfikację.
Pamiętaj, że wysyłkę z domeny może robić kilka usług: skrzynka firmowa, formularz na stronie, program do faktur, system newslettera. Każda z nich musi być ujęta w SPF i mieć DKIM, inaczej część poczty będzie odrzucana po włączeniu DMARC.
Jak sprawdzić, czy moje maile trafiają do spamu
Wyślij wiadomość z formularza na skrzynkę w Gmailu i otwórz ją przez „Pokaż oryginał”. Zobaczysz wynik SPF, DKIM i DMARC (PASS lub FAIL) oraz serwer, który faktycznie wysłał maila. To najszybszy sposób, żeby potwierdzić, czy konfiguracja działa.
- Serwisy testowe, np. mail-tester, oceniają wiadomość i pokazują brakujące rekordy oraz problemy z treścią.
- Google Postmaster Tools pokazuje reputację domeny przy większej skali wysyłki do Gmaila.
- Sprawdź, czy adres IP serwera albo domena nie są na publicznych listach blokujących (blacklist).
- Testuj na kilku dostawcach: Gmail, Outlook, skrzynka firmowa. Każdy filtruje trochę inaczej.
Gdy formularz zalewa spam od botów
Odwrotny problem to setki fałszywych zgłoszeń. Pomaga pole-pułapka (honeypot), które człowiek nie widzi, a bot wypełnia, reCAPTCHA lub podobne zabezpieczenie oraz limit zgłoszeń z jednego adresu. Unikaj wysyłania automatycznych potwierdzeń na adres podany w formularzu bez zabezpieczeń, bo boty wykorzystują to do rozsyłania spamu z Twojej domeny.
Kiedy zlecić naprawę
Jeśli po ustawieniu SMTP i rekordów DNS wiadomości nadal giną, przyczyną bywa konfiguracja hostingu, konflikt wtyczek albo reputacja domeny. Wtedy warto przejść cały łańcuch z kimś, kto ma dostęp do logów serwera i DNS. Ogólną diagnostykę formularzy opisujemy też w osobnym poradniku o formularzu, który nie wysyła wiadomości.
Pytania o formularz WordPress i dostarczalność maili
Dlaczego Contact Form 7 pokazuje „wysłano”, a mail nie dochodzi?
Komunikat oznacza tylko, że WordPress przekazał wiadomość dalej. Jeśli serwer wysyła przez mail() bez uwierzytelnienia albo nadawca jest spoza Twojej domeny, wiadomość może zostać odrzucona lub trafić do spamu po drodze.
Czy wystarczy sam rekord SPF?
SPF to minimum, ale bez DKIM i DMARC wiadomości są mniej wiarygodne, a duzi dostawcy poczty coraz częściej oczekują wszystkich trzech. Najlepiej skonfigurować komplet.
Mam dwa rekordy SPF. Czy to problem?
Tak. Domena może mieć tylko jeden rekord SPF. Dwa rekordy powodują błąd weryfikacji. Trzeba połączyć je w jeden, wpisując wszystkie usługi wysyłające.
Jaki port SMTP wybrać?
Zwykle 587 z szyfrowaniem STARTTLS albo 465 z SSL/TLS, zgodnie z instrukcją dostawcy poczty. Port 25 bywa blokowany przez hostingi.
Czy zmiany w DNS działają od razu?
Nie zawsze. Nowe rekordy rozchodzą się zależnie od ustawionego czasu TTL, od kilku minut do kilku godzin. Testuj po chwili i sprawdzaj nagłówki wiadomości.
Zobacz też: Naprawa i modernizacja stron · Strony internetowe Toruń · Formularz nie wysyła wiadomości: diagnostyka · Darmowy audyt strony