E-maile systemowe z WordPressa trafiają do spamu najczęściej dlatego, że witryna wysyła je przez funkcję PHP mail(), bez wiarygodnego uwierzytelnienia nadawcy. Najpewniejszą naprawą jest konfiguracja SMTP we wtyczce oraz dodanie rekordów SPF, DKIM i DMARC dla domeny.
Dlaczego e-maile z WordPress trafiają do spamu?
WordPress może wysyłać wiadomości, takie jak reset hasła, powiadomienia administratora czy potwierdzenia zamówień, przez serwer WWW. Domyślna funkcja PHP mail() przekazuje wiadomość do lokalnego systemu pocztowego, ale zwykle nie potwierdza dostatecznie, że nadawca ma prawo wysyłać pocztę w imieniu danej domeny.
Dla Gmaila, Outlooka i innych usług pocztowych jest to sygnał ostrzegawczy. Wiadomość może trafić do spamu albo nie zostać dostarczona wcale. Problem nie dotyczy treści komentarzy ani ochrony formularzy. Chodzi o dostarczalność e-maili generowanych przez witrynę.
Serwer WWW i serwer pocztowy to nie zawsze ten sam system. Hosting może obsługiwać stronę, ale nie zapewniać jej wiarygodnego kanału wysyłki wiadomości. SMTP pozwala przekazać pocztę przez uwierzytelniony serwer dostawcy poczty lub specjalistycznej usługi transakcyjnej.
| Cecha | PHP mail() | SMTP |
|---|---|---|
| Uwierzytelnienie | Zwykle brak lub ograniczone | Logowanie, klucz API albo OAuth |
| Zaufanie serwerów | Niskie, szczególnie przy wspólnym hostingu | Wyższe, gdy dostawca potwierdza nadawcę |
| Stabilność wysyłki | Zależna od konfiguracji serwera WWW | Kontrolowana przez dostawcę SMTP |
| Konfiguracja | Prosta, ale mało przewidywalna | Wymaga ustawienia wtyczki i danych dostępowych |
Jak skonfigurować SMTP w WordPress?
Do obsługi SMTP możesz użyć wtyczki takiej jak WP Mail SMTP. Pozwala ona przechwycić wiadomości wysyłane przez WordPress i przekazać je do wybranego dostawcy za pomocą uwierzytelnionego połączenia.
Przed rozpoczęciem wybierz usługę wysyłkową. Może to być serwer pocztowy firmy hostingowej, Gmail SMTP albo dostawca poczty transakcyjnej, taki jak SendGrid czy Brevo. Sprawdź, czy wybrana usługa obsługuje WordPress i jakie dane wymaga do integracji.
Podstawowa konfiguracja wygląda następująco:
- Zainstaluj wtyczkę SMTP – w panelu WordPress przejdź do sekcji wtyczek, wyszukaj WP Mail SMTP, zainstaluj ją i aktywuj.
- Wybierz dostawcę – w ustawieniach wtyczki wskaż usługę, przez którą mają być wysyłane wiadomości.
- Wprowadź dane połączenia – zależnie od dostawcy użyj klucza API, danych SMTP, hasła aplikacji albo autoryzacji OAuth.
- Ustaw adres nadawcy – wpisz istniejący adres w domenie witryny, na przykład
[email protected], i włącz wymuszanie tego adresu, jeśli wtyczka udostępnia taką opcję. - Wyślij wiadomość testową – użyj narzędzia testowego we wtyczce i sprawdź dostarczenie do kilku skrzynek, nie tylko do jednej.
Jeśli dostawca wymaga portu, najczęściej spotkasz port 587 dla połączenia z szyfrowaniem STARTTLS albo 465 dla szyfrowanego połączenia SSL. Konkretne ustawienia powinny pochodzić z dokumentacji wybranej usługi. Niektórzy dostawcy hostingu blokują port 587 lub 465, dlatego przy błędzie połączenia trzeba sprawdzić ograniczenia serwera.
Ostrzeżenie: nie wpisuj w konfiguracji wtyczki głównego hasła do skrzynki, jeśli dostawca oferuje bezpieczniejszą metodę. Wybierz klucz API, hasło aplikacji lub OAuth. Ogranicza to skutki ewentualnego wycieku danych z panelu WordPress.
SPF, DKIM i DMARC – jakie rekordy dodać?
Sama wtyczka SMTP nie gwarantuje dostarczenia wiadomości. Domena musi jeszcze potwierdzać, że wybrany dostawca jest uprawniony do wysyłki. Rekordy dodaje się w panelu DNS operatora domeny albo hostingu. Ich dokładne wartości otrzymasz od dostawcy poczty.
Najważniejsze mechanizmy to:
- SPF – wskazuje serwery, które mogą wysyłać wiadomości w imieniu domeny.
- DKIM – dodaje do wiadomości podpis kryptograficzny, który odbiorca może zweryfikować.
- DMARC – określa, jak odbiorca ma postąpić, gdy wiadomość nie przejdzie kontroli SPF lub DKIM, oraz może przekazywać informacje o takich zdarzeniach.
Nie dodawaj kilku niezależnych rekordów SPF dla tej samej domeny. Jeśli korzystasz z więcej niż jednego dostawcy, ich dozwolone serwery trzeba połączyć w jednym rekordzie zgodnie z instrukcją operatora. W przypadku DKIM nazwa rekordu i jego wartość są zwykle generowane indywidualnie dla domeny.
Co sprawdzić, gdy SMTP nadal nie rozwiązuje problemu?
Po konfiguracji wykonaj krótki przegląd ustawień:
- Sprawdź, czy adres w polu
Fromistnieje i należy do domeny używanej w rekordach SPF, DKIM i DMARC. - Porównaj adres nadawcy ustawiony we wtyczce z adresem zaakceptowanym przez dostawcę SMTP.
- Zweryfikuj, czy rekordy DNS są zapisane w panelu właściwej domeny i czy zdążyły się rozpropagować.
- Sprawdź, czy domena lub adres IP serwera nie znajduje się na publicznej czarnej liście RBL.
- Przejrzyj logi wtyczki i komunikat testu, ponieważ informacja o odrzuceniu często wskazuje konkretny błąd autoryzacji.
- Wyślij test na kilka skrzynek i sprawdź nagłówki wiadomości, w tym wyniki kontroli SPF, DKIM i DMARC.
Jeżeli wiadomość przechodzi przez SMTP, ma poprawne uwierzytelnienie, a mimo to trafia do spamu, przyczyną może być reputacja adresu IP dostawcy, domeny albo sama treść wiadomości. W takiej sytuacji trzeba przeanalizować raport dostawcy poczty i nagłówki konkretnego e-maila, zamiast zmieniać przypadkowe ustawienia WordPressa.
Najczęściej wystarczy przejście z PHP mail() na uwierzytelnione SMTP, ustawienie zgodnego adresu nadawcy oraz poprawna konfiguracja SPF, DKIM i DMARC. Taki zestaw usuwa podstawową przyczynę problemów z e-mailami systemowymi WordPressa i daje dane potrzebne do dalszej diagnostyki.