Hosting Web - Buone pratiche per l'invio delle email

Vedi come Markdown

Scopri perché la funzione PHP mail() è sconsigliata su un hosting condiviso e come configurare un invio SMTP autenticato

Obiettivo

Affinché le tue email arrivino correttamente ai destinatari, OVHcloud mette a disposizione un’infrastruttura dedicata all’invio in uscita, con filtraggio anti-spam automatico e monitoraggio continuo della reputazione dei server. Per sfruttarla pienamente, è consigliato inviare le tue email tramite SMTP autenticato anziché tramite la funzione PHP mail() nativa. Questo approccio garantisce che ogni email venga inviata con un’identità verificabile, migliorando in modo significativo la recapitabilità e riducendo il rischio di finire nello spam.

Questa guida ti presenta le buone pratiche e le raccomandazioni OVHcloud per inviare email in modo affidabile e sicuro da un hosting condiviso, sia che tu gestisca un sito WordPress, un altro CMS o un’applicazione PHP.

Prerequisiti


Accesso allo Spazio Cliente OVHcloud

  • Link diretto:
  • Percorso di navigazione: Web Cloud > Hosting > Seleziona il tuo hosting web

Procedura

1. mail() o SMTP autenticato: qual è la differenza per te?

Cosa fa OVHcloud per proteggere i tuoi invii

OVHcloud monitora costantemente la reputazione dei suoi server di invio e filtra automaticamente i messaggi sospetti, affinché le tue email legittime non ne risentano. Ma questa protezione ha un limite: la funzione PHP mail() non effettua alcun controllo sull’identità del mittente dichiarato nell’email (campo From:). Un’email inviata tramite mail() può quindi sembrare provenire da qualsiasi indirizzo, e questo è sufficiente ad attivare i filtri dei server destinatari (Gmail, Outlook, ecc.) e a compromettere la recapitabilità dei tuoi stessi invii.

Email senza una firma affidabile

La funzione mail() invia email senza garantire l’identità del mittente. I server destinatari (Gmail, Outlook, ecc.) verificano invece che l’email provenga effettivamente da un server autorizzato dal tuo dominio, grazie ai record SPF e DKIM. Con mail(), questa verifica spesso fallisce: il messaggio rischia allora di finire nello spam o di essere rifiutato.

L’invio tramite SMTP autenticato risolve questo problema: l’email viene inviata dal server OVHcloud autorizzato per il tuo dominio, con la firma corretta.

Warning

Un uso abusivo della funzione mail() può comportare il blocco automatico degli invii per il tuo hosting. Se noti che le tue email non partono più, consulta la guida Gestire l’invio delle email automatiche.

Moduli aperti: un ulteriore vettore di abuso

Un modulo di contatto accessibile pubblicamente, senza alcun meccanismo di protezione, è un bersaglio privilegiato per i bot. Questi lo sfruttano per generare l’invio di migliaia di email in pochi minuti tramite il tuo hosting, provocando il blocco dell’IP condiviso e danneggiando tutti i clienti del cluster.

Metti in atto le seguenti protezioni su qualsiasi modulo che generi un invio di email:

  • Captcha: integra un sistema di verifica (Google reCAPTCHA v3, hCaptcha o un semplice calcolo aritmetico) per bloccare gli invii automatizzati.
  • Limitazione della frequenza: limita il numero di invii per indirizzo IP lato server per evitare abusi a raffica.
  • Validazione rigorosa degli input: verifica e ripulisci tutti i campi del modulo prima di utilizzarli in un’email, non fidarti mai dei dati inseriti dall’utente.
Warning

L’assenza di un captcha su un modulo di invio aperto è una delle cause più frequenti di blocco degli hosting condivisi per invio di spam. Questa protezione è indispensabile qualunque sia il metodo di invio utilizzato.

2. La buona pratica: utilizzare un account email OVHcloud con SMTP autenticato

Principio

Invia le tue email tramite una connessione SMTP autenticata verso il server di posta OVHcloud, utilizzando un account email associato al tuo dominio (ad esempio contact@mydomain.ovh).

Questo approccio presenta tre vantaggi principali:

  • Autenticazione garantita: il server OVHcloud verifica la tua identità prima di accettare l’email.
  • SPF e DKIM funzionanti: l’email viene inviata da un server autorizzato per il tuo dominio e firmata correttamente.
  • Tracciabilità: ogni invio è associato a un account identificato, il che consente di intervenire rapidamente in caso di abuso.

Perché il campo From: deve appartenere al tuo dominio

Il campo From: della tua email deve obbligatoriamente contenere un indirizzo appartenente al tuo dominio (ad esempio contact@mydomain.ovh), e questo indirizzo deve corrispondere all’account SMTP utilizzato per l’autenticazione.

Se il From: non corrisponde al dominio autorizzato nel record SPF, o se la firma DKIM non corrisponde, i server di posta destinatari (Gmail, Outlook, ecc.) possono rifiutare l’email o classificarla come spam.

Tip

Per massimizzare la recapitabilità, verifica che i record SPF, DKIM e DMARC siano configurati correttamente nella tua zona DNS. Gmail e Yahoo Mail li richiedono ormai per i mittenti che inviano grandi volumi. Consulta le nostre guide:

Moduli di contatto: campo From: fisso e Reply-To: dell’utente

Un errore frequente consiste nell’inserire l’indirizzo email digitato dall’utente nel modulo direttamente nel campo From:. Ad esempio, un visitatore inserisce utente@gmail.com e lo script utilizza questo indirizzo come mittente.

Questo comportamento è errato per due motivi:

  • Il record SPF del tuo dominio non autorizza i server Gmail (o qualsiasi altro fornitore terzo) a inviare a tuo nome → errore del controllo SPF.
  • Invii "a nome di" un indirizzo che non ti appartiene → alto rischio di classificazione come spam o di rifiuto.

Lo schema corretto per un modulo di contatto:

Campo emailValoreRuolo
From:contact@mydomain.ovh (indirizzo fisso del sito)Mittente autenticato — non cambia mai
Reply-To:Indirizzo inserito dall’utente nel moduloConsente di rispondere direttamente all’utente
Subject:Oggetto del messaggio, con prefisso (ad esempio [Contact])Identifica facilmente i messaggi del modulo

In questo modo, quando rispondi all’email ricevuta, il tuo client di posta invia la risposta all’indirizzo dell’utente tramite il campo Reply-To:, senza compromettere l’autenticazione SPF/DKIM.

Ecco come adattare l’esempio PHPMailer per un modulo di contatto:

// Dati forniti dall'utente (validare e sanificare prima dell'uso)
$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: sempre fisso — l'indirizzo del tuo sito, mai quello dell'utente
$mail->setFrom('contact@mydomain.ovh', 'My Website');

// Reply-To: l'indirizzo dell'utente, per potergli rispondere direttamente
$mail->addReplyTo($userEmail, $userName);

// Destinatario: te stesso (ricevi il messaggio del modulo)
$mail->addAddress('contact@mydomain.ovh', 'My Website');

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

Non passare mai direttamente i dati di un modulo a PHPMailer senza una validazione preventiva. Utilizza filter_var() per l’indirizzo email e htmlspecialchars() + strip_tags() per i campi di testo, in modo da evitare le iniezioni di intestazioni email.

Parametri SMTP OVHcloud

Utilizza i seguenti parametri per il tuo account email MX Plan (incluso con l’hosting web):

ParametroValore
Server SMTPsmtp.mail.ovh.net
Porta (SSL/TLS)465 (consigliata)
Porta (STARTTLS)587
CrittografiaSSL/TLS (porta 465) o STARTTLS (porta 587)
AutenticazioneObbligatoria
Nome utenteIndirizzo email completo (ad esempio contact@mydomain.ovh)
PasswordPassword dell’account email OVHcloud
Tip

Per le offerte Email Pro o Exchange, il server SMTP è diverso. Consulta la documentazione di ciascuna offerta per i parametri esatti.

Dove trovare le tue credenziali SMTP

Il nome utente SMTP è il tuo indirizzo email completo (ad esempio contact@mydomain.ovh).

La password è quella definita durante la creazione dell’indirizzo, o modificata dallo Spazio Cliente OVHcloud. Se l’hai dimenticata o desideri reimpostarla, consulta la guida Modifica la password di un indirizzo email.

Warning

L’offerta MX Plan inclusa con l’hosting web è soggetta a quote di invio (circa 200 email all’ora per account). Le soluzioni di posta non sono progettate per l’invio in grande quantità: per volumi elevati — newsletter o email transazionali in grande quantità — utilizza un servizio di invio transazionale di terze parti, dedicato a questo scopo.

Esempio di codice PHP con PHPMailer

PHPMailer è la libreria PHP di riferimento per l’invio di email tramite SMTP. Installala tramite Composer:

composer require phpmailer/phpmailer

Ecco un esempio completo di invio SMTP autenticato:

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

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // Impostazioni del server SMTP OVHcloud
    $mail->isSMTP();
    $mail->Host       = 'smtp.mail.ovh.net';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'contact@mydomain.ovh'; // Il tuo indirizzo email OVHcloud
    $mail->Password   = 'your_password';         // Password dell'account email
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL/TLS
    $mail->Port       = 465;

    // Mittente: deve appartenere al tuo dominio
    $mail->setFrom('contact@mydomain.ovh', 'My Website');
    $mail->addReplyTo('contact@mydomain.ovh', 'My Website');

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

    // Contenuto
    $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

Non memorizzare mai la password del tuo account email in chiaro in un file PHP versionato. Utilizza un file di configurazione escluso dal tuo repository Git (.gitignore).

Info

Con questa configurazione, ogni email inviata dal tuo sito è:

  • autenticata presso il server OVHcloud,
  • firmata con i record SPF e DKIM del tuo dominio,
  • tracciabile in caso di abuso o problema di recapitabilità.

3. WordPress e altri CMS: utilizzare un plugin SMTP

3.1 Il problema con WordPress di default

La funzione wp_mail() di WordPress utilizza in background la funzione PHP mail(). Eredita quindi tutti i problemi descritti nella sezione precedente: assenza di autenticazione, From: non controllato, rischio di spam.

La soluzione consiste nell’installare un plugin SMTP che sostituisce wp_mail() con una connessione SMTP autenticata verso il tuo server di posta OVHcloud.

3.2 Configurare WP Mail SMTP

WP Mail SMTP è il plugin più utilizzato per questa configurazione.

Installazione:

  1. Nella tua amministrazione WordPress, accedi a Plugin > Aggiungi nuovo plugin.
  2. Cerca WP Mail SMTP e clicca su Installa ora, quindi su Attiva.

Configurazione:

  1. Accedi a WP Mail SMTP > Impostazioni nel menu di amministrazione.
  2. Nella sezione Mittente, compila i seguenti campi:
CampoValore
Email del mittentecontact@mydomain.ovh (indirizzo appartenente al tuo dominio)
Nome del mittenteNome visualizzato per il tuo sito (ad esempio Il mio sito web)
  1. Nella sezione Mailer, seleziona Altro SMTP.
  2. Compila i parametri SMTP:
CampoValore
Host SMTPsmtp.mail.ovh.net
CrittografiaSSL/TLS
Porta SMTP465
AutenticazioneAttivata
Nome utente SMTPcontact@mydomain.ovh
Password SMTPPassword del tuo account email OVHcloud
  1. Clicca su Salva impostazioni.
  2. Nella scheda Strumenti, utilizza Test invio email per verificare la configurazione.
Tip

Attiva l’opzione Forza email del mittente affinché tutte le email in uscita utilizzino l’indirizzo configurato, anche se un plugin di terze parti tenta di utilizzarne un altro.

3.3 Alternativa: FluentSMTP

FluentSMTP è un’alternativa leggera e gratuita, senza limitazioni sul volume di invio.

Installazione:

  1. Nella tua amministrazione WordPress, accedi a Plugin > Aggiungi nuovo plugin.
  2. Cerca FluentSMTP e clicca su Installa ora, quindi su Attiva.

Configurazione:

  1. Accedi a FluentSMTP > Impostazioni.
  2. Clicca su Aggiungi connessione e seleziona Altro SMTP.
  3. Compila gli stessi parametri di WP Mail SMTP:
CampoValore
Hostsmtp.mail.ovh.net
Porta465
CrittografiaSSL/TLS
Autenticazione
Nome utentecontact@mydomain.ovh
PasswordPassword del tuo account email OVHcloud
Email mittentecontact@mydomain.ovh
  1. Clicca su Salva connessione, quindi invia un’email di test.

3.4 Altri CMS (Drupal, Joomla, PrestaShop)

Il principio è identico per qualsiasi CMS o framework: sostituire la funzione di invio nativa con un modulo o una configurazione SMTP autenticata.

CMSModulo consigliato
DrupalSMTP Authentication Support
JoomlaConfigurazione nativa: Sistema > Configurazione globale > scheda Server > sezione Impostazioni mail
PrestaShopParametri avanzati > Email — scegliere Utilizza i miei parametri SMTP

In tutti i casi, i parametri SMTP da utilizzare sono identici: server smtp.mail.ovh.net, porta 465 (SSL/TLS) o 587 (STARTTLS), con autenticazione tramite l’indirizzo email completo e la relativa password.

Per saperne di più

Gestire l’invio delle email automatiche

Migliora la sicurezza delle email con un record SPF

Migliora la sicurezza delle email con un record DKIM

Migliora la sicurezza delle email con un record DMARC

Per prestazioni specializzate (posizionamento, sviluppo, ecc.) contatta i partner di OVHcloud.

Se desideri ricevere assistenza sull’utilizzo e la configurazione delle tue soluzioni OVHcloud, ti invitiamo a consultare le nostre diverse offerte di supporto.

Contatta la nostra Community di utenti.

Questa pagina ti è stata utile?