Strona główna  /  Wtyczki  /  Jak skonfigurować SMTP w WordPress bez użycia wtyczki?

Fragment kodu konfiguracyjnego serwera wyświetlony na monitorze, symbolizujący techniczne ustawienia SMTP w WordPressie.

Jak skonfigurować SMTP w WordPress bez użycia wtyczki?

Konfiguracja SMTP w WordPress bez wtyczki polega na podpięciu własnych ustawień do akcji phpmailer_init. Kod umieszczony w pliku functions.php motywu potomnego zmienia domyślną konfigurację PHPMailer i kieruje wiadomości przez wskazany serwer SMTP.

Dlaczego warto użyć SMTP bez wtyczki?

WordPress korzysta domyślnie z funkcji mail(), której działanie zależy od konfiguracji serwera. Wiadomości wysyłane w ten sposób mogą mieć problemy z dostarczalnością, zwłaszcza gdy domena lub hosting nie zapewniają właściwego uwierzytelnienia nadawcy.

SMTP pozwala połączyć WordPressa z konkretnym kontem pocztowym i serwerem dostawcy. Tak wysyłane wiadomości, w tym powiadomienia z formularzy lub WooCommerce, mają zwykle bardziej przewidywalną drogę do odbiorcy. Rezygnacja z wtyczki ogranicza liczbę dodatkowych komponentów, ale wymaga samodzielnej edycji PHP i ostrożnego przechowywania danych logowania.

Jakie dane SMTP są potrzebne?

Przed zmianą kodu pobierz od hostingu lub dostawcy poczty komplet parametrów. Bez nich konfiguracja nie będzie działać:

  • Adres serwera SMTP, na przykład smtp.twojadomena.pl.
  • Port używany przez serwer pocztowy.
  • Typ szyfrowania, najczęściej SSL, TLS lub STARTTLS.
  • Nazwa użytkownika, zwykle pełny adres skrzynki e-mail.
  • Hasło do skrzynki albo osobne hasło aplikacji, jeśli dostawca go wymaga.

Port musi odpowiadać wybranemu szyfrowaniu. Najczęściej spotykane zestawienia wyglądają tak:

Typ szyfrowania Port (zazwyczaj) Uwagi
SSL 465 Połączenie szyfrowane od początku sesji.
TLS 587 W praktyce często oznacza połączenie z użyciem STARTTLS.
STARTTLS 587 Serwer rozpoczyna połączenie bez szyfrowania, a następnie je szyfruje.

Nie traktuj tych wartości jako uniwersalnych. Dostawca może wymagać innego portu lub sposobu szyfrowania. Port 25 bywa blokowany przez hosting i zwykle nie powinien być pierwszym wyborem dla uwierzytelnionej wysyłki.

Jak dodać konfigurację SMTP do WordPress?

Najbezpieczniej użyć motywu potomnego. Zmiany zapisane bezpośrednio w functions.php motywu głównego mogą zostać usunięte podczas jego aktualizacji. Kod możesz też umieścić w małym własnym rozszerzeniu, jeśli zarządzasz plikami witryny poza warstwą motywu.

  1. Otwórz plik functions.php aktywnego motywu potomnego.
  2. Dodaj poniższy kod na końcu pliku, nie umieszczając drugiego znacznika <?php, jeśli już znajduje się na jego początku.
  3. Zastąp wartości w cudzysłowach danymi otrzymanymi od dostawcy poczty.
  4. Zapisz plik i sprawdź witrynę pod kątem błędów PHP.
add_action( 'phpmailer_init', 'moja_konfiguracja_smtp' );

function moja_konfiguracja_smtp( $phpmailer ) {
    // Wymusza używanie SMTP zamiast domyślnej funkcji mail().
    $phpmailer->isSMTP();

    // Adres serwera SMTP.
    $phpmailer->Host = 'your-smtp-host';

    // Włącza uwierzytelnianie na serwerze SMTP.
    $phpmailer->SMTPAuth = true;

    // Login do skrzynki lub pełny adres e-mail.
    $phpmailer->Username = '[email protected]';

    // Hasło do skrzynki lub hasło aplikacji.
    $phpmailer->Password = 'wstaw-haslo-smtp';

    // Wybierz tls albo ssl zgodnie z danymi dostawcy.
    $phpmailer->SMTPSecure = 'tls';

    // Port musi odpowiadać ustawieniom serwera.
    $phpmailer->Port = 587;

    // Adres nadawcy powinien należeć do skonfigurowanej skrzynki.
    $phpmailer->From = '[email protected]';

    // Nazwa widoczna u odbiorcy.
    $phpmailer->FromName = 'Nazwa witryny';
}

Hook phpmailer_init uruchamia się przed wysłaniem wiadomości przez WordPress. Otrzymany obiekt PHPMailer można wtedy przełączyć na SMTP i uzupełnić jego parametry. Dla szyfrowania SSL użyj zwykle 'ssl' oraz portu 465, ale zawsze kieruj się dokumentacją swojego dostawcy.

Jak zabezpieczyć hasło SMTP?

W pokazanym przykładzie hasło znajduje się bezpośrednio w kodzie. To rozwiązanie jest proste, lecz stwarza ryzyko. Każda osoba mająca dostęp do plików witryny może odczytać dane, a przypadkowe przesłanie pliku do publicznego repozytorium Git ujawni hasło.

Lepszym rozwiązaniem jest przechowanie danych w pliku wp-config.php albo w zmiennych środowiskowych serwera i pobieranie ich w konfiguracji PHPMailer. wp-config.php nadal wymaga właściwych uprawnień, ale oddzielenie sekretów od pliku motywu ułatwia zarządzanie nimi.

Przed zapisaniem zmian sprawdź następujące kwestie:

  • Źródło danych – używasz parametrów otrzymanych od właściwego dostawcy poczty.
  • Uprawnienia plików – pliki konfiguracyjne nie są zapisywalne dla przypadkowych użytkowników serwera.
  • Repozytorium Git – hasło nie znajduje się w kodzie przeznaczonym do publikacji.
  • Adres nadawcy – odpowiada skrzynce, która uwierzytelnia się na serwerze SMTP.
  • Motyw potomny – kod nie zostanie usunięty przy aktualizacji motywu nadrzędnego.

Jak przetestować wysyłkę?

Najpierw użyj funkcji „Nie pamiętasz hasła?” na stronie logowania WordPressa i podaj adres, do którego masz dostęp. Ta operacja wywołuje standardową wysyłkę wiadomości bez instalowania dodatkowego narzędzia. Sprawdź, czy e-mail dotarł oraz czy nie trafił do spamu.

Jeśli wiadomość nie zostanie wysłana, zweryfikuj kolejno host, port, szyfrowanie, login i hasło. Pomocne mogą być również logi PHP lub logi serwera, o ile hosting je udostępnia. Błąd składni w functions.php może zablokować działanie witryny, dlatego przy braku dostępu do plików lub podstaw PHP lepiej zlecić zmianę administratorowi.

Po poprawnym teście WordPress będzie przekazywał wiadomości do PHPMailer skonfigurowanego przez hook phpmailer_init, bez konieczności instalowania wtyczki SMTP.

Redakcja wpinternals.pl

WordPressa znamy od kuchni – budujemy na nim strony, migrujemy serwisy i optymalizujemy ich wydajność. Piszemy o wtyczkach, motywach, hostingu i bezpieczeństwie tak, by poradzili sobie także początkujący. Dbamy o to, by Twoja strona była szybka, stabilna i bezpieczna.

Może Cię również zainteresować

Potrzebujesz więcej informacji?