Na tej stronieJak WordPress domyślnie wysyła wiadomości e-mail
Witryna WordPress wysyła więcej wiadomości e-mail, niż wydaje się jej właścicielowi. Powiadomienie z formularza kontaktowego. Wiadomość do resetowania hasła. Powitanie nowego użytkownika, alert o komentarzu oczekującym na moderację, a w sklepie także każde potwierdzenie zamówienia, faktura i aktualizacja wysyłki z WooCommerce. Większości z tych wiadomości nikt nie zaprojektował i nikt ich nie sprawdza, dopóki klient nie napisze, że wiadomość dotycząca zamówienia nigdy nie dotarła.
Gdy jedna z tych wiadomości trafia do spamu, zanim zmienisz jej treść, sprawdź, w jaki sposób opuszcza serwer. W WordPress ta część jest domyślnie skonfigurowana tak, że korzysta z opcji zapewniającej najgorszą dostarczalność.
Jak WordPress domyślnie wysyła wiadomości e-mail
Sam WordPress i niemal każda wtyczka wysyłająca pocztę, w tym WooCommerce oraz wtyczki formularzy, korzystają z jednej funkcji, wp_mail(). Przekazuje ona wiadomość do PHPMailer, który domyślnie przekazuje ją do funkcji mail() w PHP, a ta do programu pocztowego dostępnego na serwerze hostingowym. Bez logowania do dostawcy poczty, bez podpisywania i bez żadnego wpisu w DNS, który potwierdzałby, że ten serwer może wysyłać wiadomości z twojej domeny.
Jako adres nadawcy wybierany jest wordpress@, po którym następuje domena twojej witryny (WordPress usuwa początkowe www.). Jeśli nigdy go nie zmieniłeś, właśnie ten adres widzą twoi klienci w polu Od, a w wielu witrynach nikt nigdy nie utworzył takiej skrzynki pocztowej.
Na hostingu współdzielonym wiadomość jest następnie wysyłana z serwera usługodawcy przez adres IP współdzielony z wieloma innymi witrynami. Jeśli jedna z nich wysyła wiadomości do kupionej listy albo zostanie przejęta i zacznie masowo rozsyłać spam, adres IP traci reputację, a wiadomości do resetowania twoich haseł wychodzą z tego samego adresu co ich poczta.
Domyślna instalacja WordPress wysyła więc pocztę, której SPF nie jest zgodny z twoją domeną. Adres zwrotny zwykle pozostaje w domenie serwera usługodawcy, a jeśli zamiast niego znajdzie się tam twój adres, SPF całkowicie nie przejdzie weryfikacji. Brakuje też podpisu DKIM dla twojej domeny, więc DMARC również nie przechodzi weryfikacji. Gmail i Yahoo wprowadziły swoje wymagania wobec nadawców w lutym 2024 roku. Microsoft zrobił to samo w maju 2025 roku dla domen wysyłających ponad 5000 wiadomości dziennie do Outlook.com, a od listopada 2025 roku Gmail odrzuca więcej wiadomości naruszających jego wymagania, zamiast umieszczać je w spamie.
Wysyłaj przez prawdziwą usługę pocztową
Najważniejszym rozwiązaniem jest rezygnacja z mail(). Zainstaluj wtyczkę SMTP. Najczęściej używane to WP Mail SMTP, FluentSMTP i Post SMTP, a każda z nich ma bezpłatną wersję. Połącz ją z usługą, która prawidłowo wysyła pocztę: dostawcą twojej skrzynki pocztowej, takim jak Google Workspace lub Microsoft 365, albo usługą do wysyłki wiadomości transakcyjnych, taką jak Amazon SES, Brevo, SendGrid lub Mailgun.
Wtyczka zastępuje mechanizm transportu używany przez wp_mail(), więc wszystkie wiadomości e-mail ze wszystkich wtyczek są wysyłane nową drogą bez modyfikowania samych wtyczek. Jeśli wtyczka udostępnia opcję API dostawcy, użyj jej zamiast zwykłego SMTP z hasłem. WP Mail SMTP informuje, że połączenie przez API działa nawet wtedy, gdy hosting blokuje porty SMTP.
Wiele osób pomija kolejny krok. Uwierzytelnij domenę u tego dostawcy. Każdy z nich udostępnia rekordy DNS, które trzeba opublikować, zwykle dwa lub trzy rekordy CNAME dla DKIM oraz wpis include w rekordzie SPF albo niestandardową domenę ścieżki zwrotnej. Dopóki tych rekordów nie ma w twoim DNS, dostawca umieszcza w podpisie własną nazwę, a weryfikacja DMARC kończy się niepowodzeniem tak samo jak na hostingu.
Adres From w formularzach kontaktowych
Wtyczki formularzy, w tym Contact Form 7 i WPForms, pozwalają wybrać zawartość pola From w otrzymywanym powiadomieniu. W wielu konfiguracjach umieszcza się tam adres odwiedzającego, aby po naciśnięciu Reply odpowiedź trafiła do niego. Wygląda to sprytnie, ale DMARC powstał właśnie po to, aby temu zapobiegać.
Załóżmy, że odwiedzająca o imieniu Anna pisze z adresu anna@yahoo.com. Twoja witryna wysyła teraz wiadomość, która rzekomo pochodzi z domeny yahoo.com, przez serwer, którego Yahoo nigdy nie autoryzowało. Domena yahoo.com publikuje politykę DMARC p=reject, więc odbiorca, który jej przestrzega, odrzuci powiadomienie jako sfałszowane. W przypadku odwiedzającego korzystającego z Gmail polityka jest łagodniejsza i wiadomość częściej trafia do spamu. WPForms ostrzega dokładnie przed tym w swojej dokumentacji.From to twój adres, Reply-To to adres odwiedzającego
Zamiast tego skonfiguruj formularz w ten sposób:
- From: adres w twojej domenie, na przykład
forms@yourdomain.com, tej samej, dla której uwierzytelniona jest twoja wtyczka SMTP. - Reply-To: adres odwiedzającego pobrany z pola formularza. Po naciśnięciu Reply odpowiedź nadal trafi do Anny.
- To: skrzynka pocztowa, którą faktycznie sprawdzasz.
W Contact Form 7 zrobisz to na karcie Mail: wpisz własny adres w polu From i dodaj Reply-To: [your-email] w sekcji Additional headers. Pozostałe wtyczki formularzy mają pole Reply-To w ustawieniach powiadomień.
Wiadomości e-mail WooCommerce
WooCommerce ma własne ustawienia nadawcy: WooCommerce, następnie Settings, potem Emails, a dalej sekcja Email Sender Options z polami „From” name i „From” address. Domyślnie używany jest adres e-mail administratora witryny. Jeśli osoba, która zainstalowała sklep, podała tam adres Gmail, każde potwierdzenie zamówienia jest wysyłane jako wiadomość pochodząca z gmail.com i nie przechodzi DMARC z tego samego powodu co opisany wyżej formularz kontaktowy. Wpisz tam adres w swojej uwierzytelnionej domenie. Nazwa sklepu będzie dobrą nazwą nadawcy. (W powiadomieniach o zamówieniach wysyłanych do ciebie WooCommerce już umieszcza adres klienta w polu Reply-To, co jest prawidłowym rozwiązaniem.)
W przypadku wiadomości e-mail ze sklepu występują dwa problemy, których nie ma przy formularzu kontaktowym.
Pierwszym jest wolumen. Jeśli wtyczka obsługująca wyprzedaż lub newsletter wysyła wiadomości do klientów tą samą drogą co potwierdzenia zamówień, poczta marketingowa i transakcyjna korzystają z jednej reputacji. Jeśli newsletter generuje skargi, cierpią na tym również potwierdzenia zakupu. Wysyłanie tych dwóch rodzajów wiadomości przez różne usługi pozwala je rozdzielić. Osobna subdomena do celów marketingowych też trochę pomaga, choć odbiorcy nadal w pewnym stopniu uwzględniają reputację domeny głównej.
Drugim jest kwestia rezygnacji z subskrypcji. Potwierdzenia zamówień i wiadomości do resetowania hasła są transakcyjne, więc reguła Gmail i Yahoo dotycząca rezygnacji z subskrypcji jednym kliknięciem ich nie obejmuje. Prośba o opinię, przypomnienie o porzuconym koszyku lub wiadomość „you might also like” wysłana do wcześniejszych kupujących jest marketingiem. Jeśli wysyłasz takie wiadomości w dużej liczbie, reguła ma do nich pełne zastosowanie, co oznacza konieczność dodania nagłówka List-Unsubscribe z opcją rezygnacji jednym kliknięciem. Sprawdź, czy wysyłający je dodatek dodaje ten nagłówek. Poniższy test pokaże to niezależnie od wyniku.
DNS, prosto wyjaśniony
Niezależnie od usługi, przez którą wysyłasz wiadomości, twoja domena potrzebuje trzech rzeczy w DNS, aby poczta była uznawana za wiarygodną. Pełne omówienie znajdziesz w artykule SPF, DKIM i DMARC, wyjaśnienie. Tutaj opisuję, co to oznacza dla witryny WordPress.
- SPF. Jeden rekord TXT w twojej domenie, który określa, kto może wysyłać w jej imieniu. Wiele usług wysyłkowych nie wymaga tutaj żadnych zmian, ponieważ zapewnia zgodność za pomocą własnej domeny zwrotnej. Jeśli twoja usługa wymaga wpisu
include:, a domena ma już rekord dla dostawcy skrzynki pocztowej, dodaj go do tego rekordu. Nie twórz drugiego. Dwa rekordy SPF są błędem i oba przestają działać. Sprawdź wynik za pomocą narzędzia do sprawdzania SPF. - DKIM. Rekordy przekazane ci przez usługę wysyłkową. Gdy zaczną działać, usługa będzie podpisywać każdą wiadomość twoją domeną. DMARC sprawdza właśnie ten podpis.
- DMARC. Rekord TXT pod adresem
_dmarc.yourdomain.com. Zacznij odv=DMARC1; p=none; rua=mailto:oraz adresu, który regularnie sprawdzasz. Następnie zaostrz zasady, gdy raporty pokażą, że żadna z twoich wiadomości nie kończy się niepowodzeniem. Narzędzie do sprawdzania DMARC odczyta twoją obecną konfigurację.
Pamiętaj, że serwer hostingowy może nadal samodzielnie coś wysyłać, na przykład zadanie cron lub stara wtyczka, która wywołuje mail() bezpośrednio zamiast wp_mail(). Takie wiadomości omijają wtyczkę SMTP, a raporty DMARC pokażą je jako nieoczekiwane źródło.
Testowanie prawdziwych wiadomości, a nie wiadomości testowej
Każda wtyczka SMTP ma przycisk „send test email”, który potwierdza jedynie, że połączenie działa. Nie pokaże Ci potwierdzenia zamówienia w postaci utworzonej przez WooCommerce, powiadomienia z formularza z jego nagłówkiem Reply-To ani wiadomości do resetowania hasła z linkiem dodanym przez WordPress.
Dlatego wysyłam z WordPress prawdziwe wiadomości. Adres testowy ze strony głównej przyjmuje jedną wiadomość, więc pobierz nowy adres dla każdej wiadomości e-mail, którą chcesz sprawdzić. W przypadku formularza ustaw na chwilę ten adres jako odbiorcę powiadomienia i wyślij formularz. W przypadku WooCommerce złóż zamówienie testowe, podając ten adres jako adres e-mail klienta. Aby przetestować resetowanie hasła, przypisz ten adres użytkownikowi testowemu i poproś o zresetowanie hasła. Każda wiadomość otrzyma osobny raport obejmujący SPF, DKIM i DMARC wraz z ich zgodnością, 21 list blokujących, treść i linki oraz reguły dla nadawców masowych. Sprawdzenie folderu w Gmail, Outlook, Yahoo i u innych dostawców wymaga wysłania tej samej wiadomości do listy skrzynek odbiorczych ze znacznikiem w temacie. Formularz ani zamówienie w sklepie nie mogą tego zrobić, więc pozostaw tę część dla wiadomości, które wysyłasz samodzielnie.
Jeśli nie chcesz ręcznie składać zamówień testowych, bezpłatna wtyczka WordPress wysyła te wiadomości przez funkcję wp_mail() Twojej witryny, czyli tą samą drogą, którą przechodzą wiadomości e-mail klientów, i pokazuje wynik w kokpicie. Wykrywa również, gdy witryna zaczyna wysyłać rodzaj wiadomości e-mail, którego wcześniej nie widziała.
Gdy wiadomość nadal trafia do spamu
Jeśli uwierzytelnianie przechodzi, adres From należy do twojej domeny, a wiadomość nadal trafia do spamu, sprawdź reputację infrastruktury, przez którą ją wysyłasz. Częstą przyczyną jest adres IP hostingu współdzielonego znajdujący się na liście blokującej, zwłaszcza jeśli nadal używasz mail(). Pokaże to narzędzie do sprawdzania list blokujących. Treść ma mniejsze znaczenie, niż większość osób sądzi. Powiadomienie z formularza zawierające jeden link i trzy wiersze tekstu rzadko samo uruchamia filtr. Wiadomość WooCommerce z rozbudowanym szablonem HTML, jednym dużym obrazem i skracaczem linków może go uruchomić.
Sprawdź jedną wiadomość, napraw problemy wskazane w raporcie i wyślij ją ponownie na nowy adres.