Hosting WWW - Najlepsze praktyki dotyczące wysyłania wiadomości e-mail

Pokaż jako Markdown

Dowiedz się, dlaczego funkcja PHP mail() jest odradzana na hostingu współdzielonym oraz jak skonfigurować uwierzytelnione wysyłanie SMTP za pośrednictwem kont e-mail OVHcloud

Wprowadzenie

Aby zapewnić dotarcie Twoich wiadomości e-mail do odbiorców, OVHcloud utrzymuje dedykowaną infrastrukturę wychodzącą z automatycznym filtrowaniem antyspamowym oraz ciągłym monitorowaniem reputacji serwerów. Aby w pełni z niej skorzystać, zalecamy wysyłanie wiadomości e-mail za pośrednictwem uwierzytelnionego SMTP, a nie natywnej funkcji PHP mail(). Takie podejście zapewnia, że każda wiadomość e-mail jest wysyłana ze zweryfikowaną tożsamością, co znacznie poprawia dostarczalność i zmniejsza ryzyko zaklasyfikowania jako spam.

Ten przewodnik wyjaśnia najlepsze praktyki i zalecenia OVHcloud dotyczące niezawodnego i bezpiecznego wysyłania wiadomości e-mail z hostingu współdzielonego, niezależnie od tego, czy zarządzasz witryną WordPress, innym CMS, czy aplikacją PHP.

Wymagania początkowe


Dostęp do Panelu klienta OVHcloud

  • Link bezpośredni:
  • Ścieżka nawigacji: Web Cloud > Hosting > Wybierz Twój hosting WWW

W praktyce

1. mail() czy uwierzytelnione SMTP: jaka jest dla Ciebie różnica?

Co robi OVHcloud, aby chronić Twoje wysyłki

OVHcloud stale monitoruje reputację swoich serwerów wysyłkowych i automatycznie filtruje podejrzane wiadomości — dzięki czemu Twoje prawidłowe wiadomości e-mail nie są narażone na problemy. Ta ochrona ma jednak swoje ograniczenie: funkcja PHP mail() nie przeprowadza żadnej weryfikacji tożsamości nadawcy zadeklarowanej w wiadomości (pole From:). Wiadomość e-mail wysłana za pomocą mail() może zatem wydawać się pochodzić z dowolnego adresu, co wystarczy, aby uruchomić filtry serwerów odbiorców (Gmail, Outlook itp.) i pogorszyć dostarczalność Twoich własnych wiadomości e-mail.

Wiadomości e-mail bez wiarygodnego podpisu

Funkcja mail() wysyła wiadomości e-mail bez zagwarantowania tożsamości nadawcy. Serwery odbiorców (Gmail, Outlook itp.) sprawdzają, czy wiadomość e-mail rzeczywiście pochodzi z serwera autoryzowanego przez Twoją domenę, korzystając z rekordów SPF i DKIM. W przypadku mail() ta weryfikacja często kończy się niepowodzeniem: wiadomość może wówczas trafić do spamu lub zostać odrzucona.

Wysyłanie za pośrednictwem uwierzytelnionego SMTP rozwiązuje ten problem: wiadomość e-mail jest wysyłana przez serwer OVHcloud autoryzowany dla Twojej domeny, z prawidłowym podpisem.

Warning

Nadużywanie funkcji mail() może prowadzić do automatycznego zablokowania wychodzących wiadomości e-mail z Twojego hostingu. Jeżeli zauważysz, że Twoje wiadomości e-mail nie są już wysyłane, zapoznaj się z przewodnikiem Monitoring i zarządzanie automatycznymi wiadomościami e-mail na Twoim hostingu.

Otwarte formularze: dodatkowy wektor nadużyć

Formularz kontaktowy dostępny publicznie, bez żadnego mechanizmu ochrony, jest głównym celem botów. Wykorzystują go one do wywołania wysyłki tysięcy wiadomości e-mail w ciągu kilku minut za pośrednictwem Twojego hostingu, powodując zablokowanie współdzielonego adresu IP i szkodząc wszystkim klientom w klastrze.

Skonfiguruj następujące zabezpieczenia dla każdego formularza, który wywołuje wysyłkę wiadomości e-mail:

  • Captcha: zintegruj system weryfikacji (Google reCAPTCHA v3, hCaptcha lub proste zadanie arytmetyczne), aby blokować automatyczne przesyłanie formularzy.
  • Ograniczanie liczby wysyłek (rate limiting): ogranicz liczbę wysyłek na adres IP po stronie serwera, aby zapobiec nagłym nadużyciom.
  • Ścisła walidacja danych wejściowych: sprawdzaj i oczyszczaj każde pole formularza przed użyciem go w wiadomości e-mail — nigdy nie ufaj danym dostarczonym przez użytkownika.
Warning

Brak captchy w otwartym formularzu wysyłkowym jest jedną z najczęstszych przyczyn blokowania hostingu współdzielonego za spam. To zabezpieczenie jest niezbędne niezależnie od zastosowanej metody wysyłki.

2. Najlepsza praktyka: korzystaj z konta e-mail OVHcloud z uwierzytelnionym SMTP

Zasada

Wysyłaj swoje wiadomości e-mail za pośrednictwem połączenia uwierzytelnionego SMTP z serwerem pocztowym OVHcloud, korzystając z konta e-mail powiązanego z Twoją domeną (na przykład contact@mydomain.ovh).

Takie podejście oferuje trzy główne korzyści:

  • Gwarantowane uwierzytelnianie: serwer OVHcloud weryfikuje Twoją tożsamość przed przyjęciem wiadomości e-mail.
  • Działające SPF i DKIM: wiadomość e-mail jest wysyłana przez serwer autoryzowany dla Twojej domeny i prawidłowo podpisana.
  • Możliwość śledzenia: każda wysyłka jest powiązana ze zidentyfikowanym kontem, co pozwala szybko zareagować w razie nadużycia.

Dlaczego pole From: musi należeć do Twojej domeny

Pole From: Twojej wiadomości e-mail musi koniecznie zawierać adres należący do Twojej domeny (na przykład contact@mydomain.ovh), a adres ten musi być zgodny z kontem SMTP użytym do uwierzytelniania.

Jeżeli pole From: nie jest zgodne z domeną autoryzowaną w rekordzie SPF lub jeżeli podpis DKIM nie jest zgodny, serwery pocztowe odbiorców (Gmail, Outlook itp.) mogą odrzucić wiadomość e-mail lub zaklasyfikować ją jako spam.

Tip

Aby zmaksymalizować dostarczalność, upewnij się, że rekordy SPF, DKIM i DMARC są prawidłowo skonfigurowane w Twojej strefie DNS. Gmail i Yahoo Mail wymagają ich teraz od nadawców masowych. Zapoznaj się z naszymi przewodnikami:

Formularze kontaktowe: stałe pole From: i pole Reply-To: użytkownika

Częstym błędem jest umieszczanie adresu e-mail wprowadzonego przez użytkownika w formularzu bezpośrednio w polu From:. Na przykład odwiedzający wprowadza uzytkownik@gmail.com, a skrypt używa tego adresu jako nadawcy.

Takie postępowanie jest nieprawidłowe z dwóch powodów:

  • Rekord SPF Twojej domeny nie autoryzuje serwerów Gmail (ani żadnego innego zewnętrznego dostawcy) do wysyłania w Twoim imieniu → niepowodzenie weryfikacji SPF.
  • Wysyłasz "w imieniu" adresu, który do Ciebie nie należy → wysokie ryzyko zaklasyfikowania jako spam lub odrzucenia.

Prawidłowy schemat dla formularza kontaktowego:

Pole wiadomości e-mailWartośćRola
From:contact@mydomain.ovh (stały adres witryny)Uwierzytelniony nadawca — nigdy się nie zmienia
Reply-To:Adres wprowadzony przez użytkownika w formularzuUmożliwia bezpośrednią odpowiedź użytkownikowi
Subject:Temat wiadomości, z prefiksem (na przykład [Contact])Ułatwia identyfikację wiadomości z formularza

W ten sposób, gdy odpowiadasz na otrzymaną wiadomość e-mail, Twój klient poczty wysyła odpowiedź na adres użytkownika za pośrednictwem pola Reply-To:, nie naruszając uwierzytelniania SPF/DKIM.

Oto jak dostosować przykład PHPMailer do formularza kontaktowego:

// Dane dostarczone przez użytkownika (zweryfikuj i oczyść przed użyciem)
$userEmail = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$userName  = htmlspecialchars(strip_tags($_POST['name']));
$message   = htmlspecialchars(strip_tags($_POST['message']));

if (!$userEmail) {
    die('Invalid email address.');
}

// From: zawsze stały — adres Twojej witryny, nigdy użytkownika
$mail->setFrom('contact@mydomain.ovh', 'My Website');

// Reply-To: adres użytkownika, aby móc odpowiedzieć mu bezpośrednio
$mail->addReplyTo($userEmail, $userName);

// Odbiorca: Ty sam (otrzymujesz wiadomość z formularza)
$mail->addAddress('contact@mydomain.ovh', 'My Website');

$mail->Subject = '[Contact] ' . $userName;
$mail->Body    = "Name: $userName\nEmail: $userEmail\n\nMessage:\n$message";
Tip

Nigdy nie przekazuj danych z formularza bezpośrednio do PHPMailer bez wcześniejszej walidacji. Użyj filter_var() dla adresu e-mail oraz htmlspecialchars() + strip_tags() dla pól tekstowych, aby zapobiec wstrzykiwaniu nagłówków wiadomości e-mail.

Ustawienia SMTP OVHcloud

Użyj następujących ustawień dla swojego konta e-mail MX Plan (dołączonego do Twojego hostingu WWW):

UstawienieWartość
Serwer SMTPsmtp.mail.ovh.net
Port (SSL/TLS)465 (zalecany)
Port (STARTTLS)587
SzyfrowanieSSL/TLS (port 465) lub STARTTLS (port 587)
UwierzytelnianieWymagane
Nazwa użytkownikaPełny adres e-mail (na przykład contact@mydomain.ovh)
HasłoHasło do konta e-mail OVHcloud
Tip

W przypadku rozwiązań E-mail Pro lub Exchange serwer SMTP jest inny. Zapoznaj się z dokumentacją każdego rozwiązania, aby poznać dokładne ustawienia.

Gdzie znaleźć swoje dane uwierzytelniające SMTP

Nazwa użytkownika SMTP to Twój pełny adres e-mail (na przykład contact@mydomain.ovh).

Hasło to hasło ustawione podczas tworzenia adresu lub zmienione w Panelu klienta OVHcloud. Jeżeli je zapomniałeś lub chcesz je zresetować, zapoznaj się z przewodnikiem Zmiana hasła do konta e-mail.

Warning

Rozwiązanie MX Plan dołączone do hostingu WWW podlega limitom wysyłki (około 200 wiadomości e-mail na godzinę na konto). Rozwiązania pocztowe nie są przeznaczone do masowej wysyłki: w przypadku dużych wolumenów — newsletterów lub masowych transakcyjnych wiadomości e-mail — użyj zewnętrznej usługi wysyłki transakcyjnej przeznaczonej do tego celu.

Przykład kodu PHP z PHPMailer

PHPMailer to referencyjna biblioteka PHP do wysyłania wiadomości e-mail za pośrednictwem SMTP. Zainstaluj ją za pomocą Composer:

composer require phpmailer/phpmailer

Oto kompletny przykład uwierzytelnionego wysyłania SMTP:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // Ustawienia serwera SMTP OVHcloud
    $mail->isSMTP();
    $mail->Host       = 'smtp.mail.ovh.net';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'contact@mydomain.ovh'; // Twój adres e-mail OVHcloud
    $mail->Password   = 'your_password';         // Hasło konta e-mail
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL/TLS
    $mail->Port       = 465;

    // Nadawca: musi należeć do Twojej domeny
    $mail->setFrom('contact@mydomain.ovh', 'My Website');
    $mail->addReplyTo('contact@mydomain.ovh', 'My Website');

    // Odbiorca
    $mail->addAddress('mary.johnson@example.com', 'Recipient Name');

    // Treść
    $mail->isHTML(true);
    $mail->Subject = 'Your email subject';
    $mail->Body    = 'Email body in <b>HTML</b>';
    $mail->AltBody = 'Email body in plain text (fallback)';

    $mail->send();
    echo 'Email sent successfully.';
} catch (Exception $e) {
    echo "Error while sending: {$mail->ErrorInfo}";
}
Warning

Nigdy nie przechowuj hasła do konta e-mail jako zwykłego tekstu w wersjonowanym pliku PHP. Użyj pliku konfiguracyjnego wykluczonego z Twojego repozytorium Git (.gitignore).

Info

Przy tej konfiguracji każda wiadomość e-mail wysłana z Twojej witryny jest:

  • uwierzytelniona za pomocą serwera OVHcloud,
  • podpisana rekordami SPF i DKIM Twojej domeny,
  • możliwa do śledzenia w razie nadużycia lub problemu z dostarczalnością.

3. WordPress i inne systemy CMS: użyj wtyczki SMTP

3.1 Problem z domyślnym WordPress

Funkcja wp_mail() w WordPress korzysta w tle z funkcji PHP mail(). Dziedziczy zatem wszystkie problemy opisane w poprzedniej sekcji: brak uwierzytelniania, niekontrolowane pole From:, ryzyko spamu.

Rozwiązaniem jest zainstalowanie wtyczki SMTP, która zastępuje wp_mail() uwierzytelnionym połączeniem SMTP z Twoim serwerem pocztowym OVHcloud.

3.2 Konfiguracja WP Mail SMTP

WP Mail SMTP to najczęściej używana wtyczka do tej konfiguracji.

Instalacja:

  1. W panelu administracyjnym WordPress przejdź do Wtyczki > Dodaj nową wtyczkę.
  2. Wyszukaj WP Mail SMTP i kliknij Zainstaluj teraz, a następnie Włącz.

Konfiguracja:

  1. Przejdź do WP Mail SMTP > Ustawienia w menu administracyjnym.
  2. W sekcji From wypełnij następujące pola:
PoleWartość
From Emailcontact@mydomain.ovh (adres należący do Twojej domeny)
From NameWyświetlana nazwa Twojej witryny (na przykład My Website)
  1. W sekcji Mailer wybierz Other SMTP.
  2. Wypełnij ustawienia SMTP:
PoleWartość
SMTP Hostsmtp.mail.ovh.net
EncryptionSSL/TLS
SMTP Port465
AuthenticationWłączone
SMTP Usernamecontact@mydomain.ovh
SMTP PasswordHasło do Twojego konta e-mail OVHcloud
  1. Kliknij Save Settings.
  2. W zakładce Tools użyj opcji Email Test, aby sprawdzić konfigurację.
Tip

Włącz opcję Force From Email, aby wszystkie wychodzące wiadomości e-mail używały skonfigurowanego adresu, nawet jeżeli zewnętrzna wtyczka próbuje użyć innego.

3.3 Alternatywa: FluentSMTP

FluentSMTP to lekka, bezpłatna alternatywa bez ograniczeń wolumenu wysyłki.

Instalacja:

  1. W panelu administracyjnym WordPress przejdź do Wtyczki > Dodaj nową wtyczkę.
  2. Wyszukaj FluentSMTP i kliknij Zainstaluj teraz, a następnie Włącz.

Konfiguracja:

  1. Przejdź do FluentSMTP > Settings.
  2. Kliknij Add Connection i wybierz Other SMTP.
  3. Wypełnij te same ustawienia co dla WP Mail SMTP:
PoleWartość
Hostsmtp.mail.ovh.net
Port465
EncryptionSSL/TLS
AuthenticationTak
Usernamecontact@mydomain.ovh
PasswordHasło do Twojego konta e-mail OVHcloud
From Emailcontact@mydomain.ovh
  1. Kliknij Save Connection, a następnie wyślij testową wiadomość e-mail.

3.4 Inne systemy CMS (Drupal, Joomla, PrestaShop)

Zasada jest taka sama dla każdego CMS lub frameworka: zastąp natywną funkcję wysyłki modułem lub konfiguracją uwierzytelnionego SMTP.

CMSZalecany moduł
DrupalSMTP Authentication Support
JoomlaKonfiguracja natywna: System > Global Configuration > zakładka Server > sekcja Mail Settings
PrestaShopAdvanced Parameters > E-mail — wybierz Set my own SMTP parameters

We wszystkich przypadkach ustawienia SMTP do użycia są takie same: serwer smtp.mail.ovh.net, port 465 (SSL/TLS) lub 587 (STARTTLS), z uwierzytelnianiem przy użyciu pełnego adresu e-mail i jego hasła.

Sprawdź również

Monitoring i zarządzanie automatycznymi wiadomościami e-mail na Twoim hostingu

Poprawa bezpieczeństwa e-maili poprzez rekord SPF

Poprawa bezpieczeństwa e-maili dzięki rejestracji DKIM

Poprawa bezpieczeństwa e-maili dzięki rejestracji DMARC

W celu uzyskania specjalistycznych usług (pozycjonowanie, rozwój itp.) skontaktuj się z partnerami OVHcloud.

Jeżeli chcesz skorzystać z pomocy w zakresie użytkowania i konfiguracji rozwiązań OVHcloud, zapoznaj się z naszymi ofertami wsparcia.

Dołącz do grona naszych użytkowników.

Czy ta strona była pomocna?