Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

📧 Come installare e configurare SMTP in WordPress: una guida passo passo

📧 Come installare e configurare SMTP in WordPress: una guida passo passo

Le email del tuo sito non raggiungono gli utenti? I destinatari si lamentano che le notifiche degli ordini o i reset delle password finiscono nello spam? Quasi ogni proprietario di un sito WordPress affronta questo problema nei primi mesi dopo il lancio.

Il motivo è il metodo predefinito di invio delle email. WordPress utilizza la funzione mail() integrata di PHP e la maggior parte dei provider di hosting non la configura correttamente. Le email partono con header errati, senza firme DKIM, e servizi di posta come Gmail o Mail.ru le spediscono direttamente nella cartella «Spam». Peggio ancora, alcune email semplicemente si perdono e tu non lo saprai nemmeno.

La soluzione corretta è SMTP. Lo configuri una volta e le email dal tuo sito iniziano ad arrivare in modo affidabile. Ti mostrerò due metodi: quello semplice (usando un plugin) e quello manuale (usando il codice), così puoi scegliere in base alla tua situazione.

💡 Panoramica rapida:

  • Imparerai perché la mail PHP di WordPress è inaffidabile e come SMTP risolve il problema di deliverability
  • Configurerai l'invio tramite il plugin Easy WP SMTP in 5 minuti, senza modificare codice
  • Padroneggerai il metodo manuale tramite wp-config.php per chi preferisce evitare plugin aggiuntivi
  • Testerai SMTP con un'email di prova e imparerai cosa cercare nella scelta di un provider email

Cos'è SMTP e perché il tuo sito perde le email

SMTP sta per Simple Mail Transfer Protocol. In parole semplici, è un protocollo dedicato all'invio di email che funziona in modo diverso da mail() di PHP.

Quando WordPress invia un'email tramite la funzione standard, la «scarica» semplicemente sul sistema operativo del server. Dopodiché è questione di fortuna: l'email potrebbe partire da un host senza record SPF, senza DKIM, con un indirizzo From altrui. Il servizio di posta del destinatario vede un'email sospetta e la manda nello spam. Oppure la scarta semplicemente e tu non ricevi alcuna notifica di errore.

Un server SMTP, invece, stabilisce una connessione diretta con il servizio di posta del destinatario. Si autentica, trasmette la firma DKIM del tuo dominio e garantisce che gli header dell'email siano corretti. Il risultato: le tue email arrivano nella «Posta in arrivo», non nello spam.

Un vantaggio aggiuntivo è il logging. La maggior parte dei plugin SMTP per WordPress mantiene un log delle email inviate: puoi vedere cosa è stato inviato, a chi e quando. Se un'email non è stata consegnata, lo sai subito, non una settimana dopo da un cliente.

Metodo 1: Configurare SMTP tramite il plugin Easy WP SMTP

Il metodo più semplice e affidabile per la stragrande maggioranza dei siti è installare un plugin. Raccomando Easy WP SMTP: oltre mezzo milione di installazioni attive su WordPress.org, una valutazione di 4,6 su 5 e aggiornamenti stabili. Il plugin è gratuito e supporta non solo qualsiasi server SMTP esterno, ma anche integrazioni dirette con Gmail, Outlook, Brevo, SendGrid, Mailgun e SendLayer, permettendoti di connetterti via API senza inserire porte e impostazioni di crittografia.

Ricerca e installazione del plugin Easy WP SMTP nell'amministrazione di WordPress

Passaggio 1. Installa il plugin. Vai all'amministrazione di WordPress: Plugin → Aggiungi nuovo. Nella barra di ricerca, digita "Easy WP SMTP". Clicca "Installa", poi "Attiva".

Passaggio 2. Vai alle impostazioni. Una nuova voce di menu Easy WP SMTP apparirà nella barra laterale dell'amministrazione. Aprila e atterrerai sulla scheda "Generale".

Passaggio 3. Inserisci i dettagli del server SMTP. Ecco cosa devi inserire:

Impostazioni mittente e server di posta nel plugin Easy WP SMTP
  • From Email Address: l'indirizzo da cui verranno inviate le email. Usa lo stesso indirizzo email specificato nelle tue impostazioni di WordPress (in Impostazioni → Generali). La maggior parte degli host blocca l'invio da indirizzi esterni, quindi è più sicuro non rischiare.

  • From Name: il nome del mittente che vedranno i destinatari. Di solito è il nome del tuo sito, ad esempio "Assistenza NomeSito".

  • Mailer: scegli "Other SMTP" se stai collegando un account email del tuo dominio o hosting. Se usi Gmail / Outlook / Brevo / SendGrid, seleziona l'opzione corrispondente e il plugin ti guiderà attraverso l'autorizzazione OAuth senza inserimento manuale dei parametri.

Parametri host SMTP, crittografia e porta in Easy WP SMTP

Per l'opzione "Other SMTP", compila:

  • SMTP Host: l'indirizzo del tuo server di posta. Per l'hosting, di solito è mail.your-domain.com. Per servizi di terze parti, il provider fornisce l'host quando crei la casella di posta.

  • Encryption: scegli SSL (porta 465) o TLS (porta 587). I server moderni preferiscono TLS sulla porta 587, ma verifica con il tuo provider email.

  • SMTP Port: 465 per SSL, 587 per TLS. Questi sono valori standard, ma il tuo host potrebbe usare una porta non standard, quindi verifica la loro documentazione.

  • Authentication: attiva l'interruttore "Sì". Senza autenticazione, SMTP non funzionerà.

  • SMTP Username e SMTP Password: il login e la password per la tua casella di posta. Di solito il login corrisponde all'indirizzo email completo.

Passaggio 4. Invia un'email di test. Scorri la pagina fino alla sezione "Test Email". Nel campo "Send To", inserisci un indirizzo a cui hai accesso (il tuo va bene). Compila i campi "Subject" e "Message" con qualsiasi cosa, ad esempio "Test SMTP" e "Verifica invio". Clicca "Send Test Email".

Se tutto è configurato correttamente, apparirà una notifica verde di successo nella parte superiore dello schermo. L'email arriverà all'indirizzo specificato entro pochi secondi. Se non arriva, controlla la cartella «Spam»; se non c'è nemmeno lì, ricontrolla le impostazioni di host, porta e password.

Passaggio 5. Attiva il logging. Nel sottomenu di Easy WP SMTP, apri la scheda "Email Log" e attiva la registrazione del log. Ora ogni email inviata verrà salvata nel log con data, destinatario e stato. Se un mese dopo un cliente dice "Non ho mai ricevuto l'email con il codice", puoi aprire il log e vedere: l'email è stata inviata e consegnata, il problema è lato cliente.

Metodo 2: Configurazione manuale di SMTP tramite wp-config.php

Questo metodo è per chi fondamentalmente non vuole installare un plugin per una singola funzione. Lo svantaggio è ovvio: nessuna interfaccia, nessun logging e nessun test dal pannello di amministrazione. Tutte le modifiche si fanno solo editando i file.

Importante: prima di modificare wp-config.php, assicurati di fare un backup del tuo sito. Un errore in questo file causerà la "schermata bianca della morte" e potrai ripristinare l'accesso solo tramite FTP o il file manager del tuo hosting.

Passaggio 1: Aggiungi le costanti SMTP a wp-config.php

Connettiti al tuo server via FTP o tramite il file manager del tuo hosting. Trova il file wp-config.php nella root del sito e aggiungi il seguente codice PRIMA della riga /* That's all, stop editing! Happy publishing. */:

1// SMTP configuration for sending WordPress mail
2define( 'SMTP_HOST', 'mail.your-domain.com' ); // SMTP server address
3define( 'SMTP_AUTH', true ); // Enable authentication
4define( 'SMTP_PORT', '587' ); // Port: 587 (TLS) or 465 (SSL)
5define( 'SMTP_SECURE', 'tls' ); // Encryption: tls or ssl
6define( 'SMTP_USERNAME', '[email protected]' ); // Mailbox login
7define( 'SMTP_PASSWORD', 'your-password' ); // Password
8define( 'SMTP_FROM', '[email protected]' ); // Sender address
9define( 'SMTP_FROMNAME', 'SiteName Support' ); // Sender name

Sostituisci i dati con i tuoi: host, porta, login, password. Se il tuo provider email usa SSL sulla porta 465, cambia SMTP_PORT in '465' e SMTP_SECURE in 'ssl'.

Passaggio 2: Collega le costanti a PHPMailer

Le costanti in wp-config.php non fanno nulla da sole: WordPress non sa cosa farne. Devi passarle all'oggetto PHPMailer tramite l'hook phpmailer_init. Aggiungi questo codice al file functions.php del tuo tema child o tramite il plugin Code Snippets (raccomandato, perché non andrà perso con l'aggiornamento del tema):

1/**
2 * SMTP configuration via constants from wp-config.php
3 */
4add_action( 'phpmailer_init', 'sdstudio_smtp_configure' );
5function sdstudio_smtp_configure( $phpmailer ) {
6 $phpmailer->isSMTP();
7 $phpmailer->Host = SMTP_HOST;
8 $phpmailer->SMTPAuth = SMTP_AUTH;
9 $phpmailer->Port = SMTP_PORT;
10 $phpmailer->SMTPSecure = SMTP_SECURE;
11 $phpmailer->Username = SMTP_USERNAME;
12 $phpmailer->Password = SMTP_PASSWORD;
13 $phpmailer->From = SMTP_FROM;
14 $phpmailer->FromName = SMTP_FROMNAME;
15}

Ecco cosa succede: WordPress chiama l'hook phpmailer_init prima di ogni invio email e gli passa un'istanza della classe PHPMailer. La funzione sdstudio_smtp_configure configura questo oggetto con i valori delle costanti e l'email viene inviata via SMTP anziché tramite mail() di PHP.

Se utilizzi una casella di posta sul tuo dominio (ad esempio [email protected], creata nel cPanel del tuo hosting), recupera i dettagli dell'host SMTP dal pannello di controllo dell'hosting. Di solito c'è una sezione chiamata "Connessioni di posta" o "Account email", dove sono specificati host, porta e impostazioni di crittografia per ogni casella.

Passaggio 3: Testa l'invio

Il modo più semplice per testare è attivare un'email di sistema di WordPress. Ad esempio, richiedi un reset della password tramite il modulo di login (/wp-login.php → "Password dimenticata?"). Se l'email arriva, SMTP funziona.

Per un test più preciso, aggiungi temporaneamente questo codice a functions.php (rimuovilo dopo il test):

1add_action( 'init', function() {
2 wp_mail( '[email protected]', 'SMTP Test', 'Message sent via SMTP!' );
3} );

Ricarica una pagina qualsiasi del tuo sito e un'email di test verrà inviata al tuo indirizzo. Non dimenticare di rimuovere il codice dopo il test, altrimenti verrà inviata un'email a ogni caricamento di pagina.

Metodo 3: Plugin SMTP alternativi

Easy WP SMTP non è l'unica opzione. Se per qualche motivo non ti è andato bene, ecco altri tre plugin gratuiti collaudati con installazioni attive su oltre 200.000 siti:

  • WP Mail SMTP: il plugin SMTP più popolare nel repository di WordPress (oltre 3 milioni di installazioni). La versione gratuita collega qualsiasi server SMTP. La versione a pagamento aggiunge integrazioni con SendLayer, Amazon SES, Microsoft 365 e Zoho Mail, oltre a log dettagliati e report degli errori.

  • Post SMTP: completamente gratuito, con codice open source. Può inviare email tramite SMTP, Gmail API, Microsoft 365 API, SendGrid, Mailgun, Brevo. Email Log integrato con filtri e capacità di reinvio. Una buona scelta se hai bisogno del massimo delle funzionalità senza pagare.

  • FluentSMTP: un plugin minimalista e veloce dei creatori di FluentCRM. Supporta Amazon SES, Mailgun, SendGrid, SparkPost, Elastic Email e qualsiasi server SMTP. L'interfaccia è più semplice dei concorrenti e il plugin non ha praticamente alcun impatto sulle prestazioni del pannello di amministrazione.

Tutte e tre le opzioni hanno una valutazione superiore a 4,5 e sono aggiornate regolarmente. Il principio di configurazione è lo stesso per tutti: installa il plugin → inserisci i dettagli del server di posta → invia un'email di test → attiva il logging.

A differenza del metodo manuale tramite wp-config.php, ognuno di questi plugin fornisce almeno un log delle email inviate e la possibilità di testare la connessione dal pannello di amministrazione. Per un sito che invia più di un paio di email a settimana, queste funzionalità diventano rapidamente una necessità piuttosto che una semplice comodità.

Testare SMTP: come assicurarsi che tutto funzioni

Hai configurato il plugin o il codice, ora verifica il risultato. Ecco una checklist in tre punti che copre tutti i possibili problemi:

1. Email di test dal plugin. Se hai usato Easy WP SMTP, invia un test tramite la funzione integrata (scheda "Test Email"). L'email è stata inviata ed è arrivata nella «Posta in arrivo»: eccellente. È arrivata nello «Spam»: controlla che il "From Email Address" specifichi un indirizzo reale sul tuo dominio (non @gmail.com se il tuo sito è su your-domain.com).

2. Controlla gli header dell'email. Apri l'email di test ricevuta e visualizza l'"originale" / "codice sorgente" del messaggio (in Gmail: tre puntini → "Mostra originale"). Trova le righe SPF, DKIM e DMARC. Dovrebbe essere presente almeno SPF: PASS. Se tutte e tre mostrano PASS, la tua deliverability è al massimo.

3. Verifica tramite un modulo sul tuo sito. Esegui uno scenario utente: compila un modulo di contatto, richiedi un reset della password, effettua un ordine di test in WooCommerce. Ognuna di queste azioni dovrebbe generare un'email: assicurati che arrivino tutte. Se qualche email non è stata inviata, è probabile che il plugin specifico (Forms / WooCommerce) stia usando un proprio metodo di invio che bypassa l'SMTP generale. È raro, ma controlla le impostazioni di quel plugin, di solito c'è un'opzione "Usa la mail di WordPress" o una scelta del provider email.

Se preferisci il formato video, questo tutorial mostra la configurazione completa di SMTP tramite il plugin WP Mail SMTP da zero alla prima email inviata. Il principio è lo stesso per qualsiasi plugin recensito.

⁉️🤔 Domande frequenti

Perché le email dal mio sito vengono inviate ma arrivano nello spam?

Il motivo principale è la mancanza dei record DKIM e SPF per il dominio. La funzione mail() di PHP non firma le email e i servizi di posta vedono un invio "anonimo". Un plugin SMTP invia le email per conto del tuo server di posta, che ha già questi record configurati. La maggior parte degli host aggiunge automaticamente un record SPF di base tramite cPanel; DKIM e DMARC si configurano manualmente nel pannello DNS in 10 minuti.

Quale porta SMTP dovrei scegliere: 465 o 587?

La porta 587 con crittografia TLS è lo standard IETF moderno. La porta 465 con SSL è obsoleta ma ampiamente supportata. Se il tuo provider accetta entrambe, scegli 587/TLS. Se non funziona, prova 465/SSL. In pratica, la maggior parte degli host condivisi nel 2026 funziona con entrambe le porte; i VPS richiedono più spesso 587/TLS. Se dopo la configurazione ricevi un errore di connessione, la prima cosa da provare è cambiare porta e crittografia.

Posso usare Gmail gratuito per inviare email dal mio sito?

Sì, ma con una limitazione: 500 email al giorno per gli account personali e fino a 2.000 per Google Workspace. Per negozi e siti con membership, i servizi transazionali sono più affidabili: Brevo (300 email/giorno gratis), SendGrid (100/giorno), Mailgun o Amazon SES. Il modo più semplice per collegare Gmail è tramite Easy WP SMTP: seleziona il mailer "Gmail" e completa l'autorizzazione OAuth in un paio di clic.

Ho bisogno di un plugin SMTP se il mio hosting ha già configurato l'email?

Il server di posta dell'hosting e l'invio da WordPress sono due anelli diversi. L'hosting riceve le email per il dominio, ma WordPress continua a inviare tramite mail() di PHP senza autenticazione. Il risultato è lo stesso: spam o email perse. Un plugin SMTP fa sì che WordPress usi correttamente il server di posta. Un semplice test: apri l'"originale" di un'email dal tuo sito e cerca X-Mailer. Se mostra PHPMailer senza SMTP, hai bisogno di un plugin.

Il plugin mostra l'errore "SMTP Error: Could not authenticate", cosa devo fare?

Tre cause comuni. Prima: la password contiene caratteri speciali (cancelletto, simbolo del dollaro, e commerciale) che il plugin esegue l'escape in modo errato: passa a caratteri alfanumerici. Seconda: l'host richiede una porta diversa: scambia 587↔465 e TLS↔SSL. Terza: il provider blocca il traffico SMTP in uscita sul piano condiviso: verifica con l'assistenza. Se nulla aiuta, passa all'integrazione API: ad esempio, Gmail API tramite OAuth è più affidabile dell'autenticazione con password.

Quale metodo di configurazione SMTP scegliere per il tuo sito

La risposta dipende da tre fattori: volume di email, livello di comfort tecnico e budget.

Se il tuo sito invia fino a 100 email al giorno, installa Easy WP SMTP, collega una qualsiasi casella di posta e chiudi la questione in 5 minuti. Il piano gratuito di Brevo tramite l'integrazione API di questo stesso plugin ti dà 300 email al giorno senza alcuna configurazione della porta SMTP: ti registri, ottieni una chiave API, la incolli nel plugin e hai finito.

Se il tuo sito è un negozio WooCommerce con oltre 500 ordini al mese, collega un servizio transazionale: Mailgun, SendGrid o Amazon SES. Sono progettati per l'invio massivo di email transazionali e forniscono analisi dettagliate per ogni email (consegnata / aperta / cliccata). Easy WP SMTP supporta tutti e tre via API senza smanettare con le porte.

Se sei uno sviluppatore e non vuoi plugin aggiuntivi, il metodo manuale tramite wp-config.php funziona, ma ricorda: senza logging sei cieco. Aggiungi almeno un semplice file di log tramite l'hook wp_mail_failed o installa FluentSMTP, che è praticamente senza peso e fornisce un log completo delle email.

La cosa principale è non lasciare WordPress sulla mail PHP standard. Cinque minuti per installare un plugin SMTP ti salveranno da ordini persi, richieste di assistenza mancate e problemi di reputazione con un dominio che i servizi di posta hanno segnalato come fonte di spam.