Se WordPress non invia email, la prima cosa da fare non è installare subito un plugin SMTP: bisogna capire in quale punto si interrompe la catena. Il messaggio può non essere generato, può fermarsi sul server, essere rifiutato dal provider del destinatario oppure arrivare nella cartella spam. Ogni scenario richiede controlli diversi.
Questa guida propone una diagnosi progressiva per distinguere il problema prima di modificare plugin, DNS o configurazioni dell’hosting. Il perimetro riguarda le email generali di WordPress, come messaggi dei moduli, reset della password e notifiche amministrative. Le email degli ordini WooCommerce sono uno scenario distinto, perché dipendono anche da trigger, stato dell’ordine e impostazioni specifiche del negozio.
La risposta rapida: individua la fase che non funziona
Quando le email di WordPress non arrivano, il problema può trovarsi in passaggi diversi. Il plugin o il core genera il messaggio, WordPress lo affida al sistema di posta, il server o il servizio SMTP tenta l’invio, il provider destinatario decide se accettarlo e infine applica i propri filtri. Dire semplicemente “la mail non arriva” non identifica ancora il guasto.
| Segnale osservato | Punto probabile del problema | Primo controllo utile |
|---|---|---|
| Il modulo mostra un errore e non registra l’invio | Generazione o configurazione del modulo | Campi, destinatario, azioni del form e log del plugin |
| WordPress genera il messaggio, ma il test di invio fallisce | Trasporto sul server o configurazione SMTP | Log, credenziali, porte, cifratura e servizio di posta |
| Il servizio accetta il messaggio, ma non compare nella casella | Consegna o rifiuto del destinatario | Bounce, log del provider, autenticazione e indirizzo del destinatario |
| La mail arriva nella cartella spam | Deliverability | SPF, DKIM, DMARC, mittente, reputazione e intestazioni |
| Fallisce soltanto un modulo o un plugin | Configurazione o conflitto specifico | Confronto con un’altra email generata dallo stesso sito |
| Il problema compare dopo migrazione o cambio dominio | Ambiente di invio o identità del mittente | DNS, account SMTP, dominio From e configurazioni trasferite |
Perché WordPress non invia email: generazione, invio e consegna
WordPress usa normalmente la funzione wp_mail() per preparare e affidare un messaggio al sistema di posta configurato. La funzione si appoggia a PHPMailer e, nella configurazione standard, può utilizzare l’ambiente mail del server. In alternativa, un plugin può instradare i messaggi verso un server SMTP o un servizio esterno.
La documentazione ufficiale di wp_mail() chiarisce un punto decisivo: un valore di ritorno positivo indica che il metodo ha elaborato la richiesta senza errori, non che il destinatario abbia ricevuto l’email. La documentazione WordPress sulla posta del server distingue inoltre il ruolo di WordPress da quello dell’ambiente di invio.
Per questo occorre separare tre concetti:
- generazione: WordPress o il plugin costruisce il messaggio con destinatario, oggetto, corpo e intestazioni;
- invio: il messaggio viene passato al server locale, a un mail transfer agent oppure a un servizio SMTP;
- consegna: il server del destinatario accetta, rifiuta o filtra il messaggio e decide dove collocarlo.
Prima di modificare il sito, definisci il perimetro
Prima di cambiare configurazioni, annota quali messaggi di WordPress non arrivano e da quando. Questa verifica riduce il rischio di correggere la parte sbagliata.
- Indica se il problema riguarda tutti i messaggi o solo un modulo.
- Verifica se falliscono anche reset della password o notifiche amministrative.
- Annota data, ora, destinatario e messaggio di errore di almeno un test.
- Controlla se il problema è iniziato dopo aggiornamento, migrazione, cambio hosting o dominio.
- Verifica se il plugin conserva le richieste del modulo nel database.
- Prima di installare o disattivare componenti, assicurati di avere un backup recuperabile e un piano di ripristino.
Non usare un sito in produzione come banco di prova casuale. Evita modifiche dirette a functions.php, DNS o configurazioni SMTP se non puoi ripristinare lo stato precedente.
Diagnosi progressiva: dove si interrompe la catena
1. Se WordPress non invia email solo da un plugin, isola il problema
Se non funziona soltanto il modulo contatti, la causa può essere nella configurazione di quel modulo. Se falliscono anche email amministrative o reset della password, è più probabile un problema nel trasporto generale, nell’hosting o nel servizio SMTP.
Il confronto deve essere controllato: genera due messaggi diversi, annota l’orario e verifica i relativi log. Non è necessario disattivare subito tutti i plugin. Una disattivazione indiscriminata può interrompere altre funzioni e rende più difficile ricostruire la causa.
2. Controlla destinatario, mittente e Reply-To del modulo
Nel modulo verifica che l’indirizzo destinatario sia corretto, esistente e privo di errori. Controlla anche l’indirizzo usato nel campo From. Usare come mittente l’indirizzo inserito dal visitatore può creare un disallineamento: il sito invierebbe una mail dichiarando come mittente un dominio che non controlla.
Una configurazione più coerente usa normalmente un indirizzo del dominio del sito come mittente e l’indirizzo del visitatore nel campo Reply-To. La configurazione precisa dipende dal plugin e dal servizio di posta, quindi va verificata nella relativa documentazione ufficiale.
3. Se WordPress non invia email, verifica che il messaggio sia generato
Un log applicativo può mostrare se WordPress ha tentato di creare e inviare il messaggio. Se il modulo salva la richiesta ma non compare alcun evento email, controlla azioni, condizioni, destinatari e template del plugin. Se invece il log registra il messaggio, la diagnosi può spostarsi verso trasporto e consegna.
Attenzione: un log interno dimostra che il sito ha registrato un tentativo. Non dimostra, da solo, che il server destinatario abbia accettato la mail.
4. Esegui un test di invio controllato
Un test utile deve produrre evidenze, non soltanto un messaggio “inviato”. Usa lo strumento di test già disponibile nel sito o nel servizio configurato, invia a caselle di provider differenti e registra orario, indirizzo mittente, destinatario ed eventuale identificativo del messaggio.
Se il test fallisce prima di lasciare il sito, consulta l’errore applicativo o il log SMTP. Se il servizio accetta il messaggio ma questo non arriva, cerca eventuali bounce, rifiuti o quarantene lato destinatario.
5. Se WordPress non invia email, controlla server locale e SMTP
L’ambiente mail dell’hosting deve essere configurato per ricevere la richiesta di WordPress e inoltrarla. Un server locale assente, limitato o configurato male può impedire l’invio anche quando il sito non mostra errori chiari.
Un servizio SMTP autenticato può rendere il percorso più controllabile e offrire log migliori. Tuttavia, SMTP non è una correzione universale: non risolve un destinatario errato, un modulo che non genera il messaggio, un trigger non eseguito o un dominio configurato in modo incoerente.
Quando SMTP è già presente, verifica con la documentazione del servizio: host, porta, tipo di cifratura, credenziali, identità del mittente e limiti dell’account. Non pubblicare credenziali nei ticket, negli screenshot o nei contenuti del sito.
6. Verifica SPF, DKIM e DMARC senza modificare i DNS alla cieca
SPF, DKIM e DMARC aiutano i provider a verificare l’identità del mittente. Non sono plugin WordPress: vengono configurati sul dominio e devono essere coerenti con tutti i sistemi autorizzati a inviare email.
- SPF elenca i sistemi autorizzati a inviare per il dominio;
- DKIM aggiunge una firma verificabile al messaggio;
- DMARC collega autenticazione e dominio visibile nel campo From, indicando anche come gestire e monitorare i messaggi non allineati.
Le linee guida ufficiali di Gmail per i mittenti spiegano che i messaggi non autenticati possono essere rifiutati o classificati come spam. Prima di toccare i DNS, censisci però tutti i servizi che inviano per il dominio: posta aziendale, sito, newsletter, CRM e applicazioni. Un record modificato senza questo inventario può interrompere flussi che oggi funzionano.
7. Se la mail viene inviata ma non arriva, analizza la consegna
Quando il provider di invio accetta la mail, controlla la cartella spam, la quarantena aziendale, eventuali regole della casella e i messaggi di mancata consegna. Verifica inoltre le intestazioni di un messaggio arrivato: mostrano i risultati di autenticazione e il percorso seguito.
Prova caselle appartenenti a provider differenti. Se il problema riguarda un solo dominio destinatario, può dipendere dalle sue policy o dai suoi filtri. Se riguarda tutti i destinatari, torna a controllare mittente, trasporto, autenticazione e log.
Quando SMTP aiuta e quando non basta
| Scenario | SMTP può aiutare? | Perché |
|---|---|---|
| Il server locale non è configurato per l’invio | Sì, se configurato correttamente | Instrada i messaggi verso un servizio di posta autenticato |
| Mancano log utili | Spesso | Molti servizi offrono eventi di accettazione, rifiuto e bounce |
| Il modulo usa un destinatario errato | No | Il messaggio viene inviato all’indirizzo sbagliato |
| Il plugin non genera l’email | No | Il trasporto non riceve alcun messaggio |
| SPF, DKIM o DMARC sono incoerenti | Non da solo | Servono configurazione e allineamento del dominio |
| La mail arriva nello spam | Può contribuire | Occorre valutare anche autenticazione, reputazione, mittente e contenuto |
WordPress non invia email dopo una migrazione: cosa controllare
Dopo una migrazione, se le email di WordPress smettono di arrivare, possono essere cambiati server, indirizzo IP, funzione mail disponibile, credenziali SMTP o dominio del mittente. Anche una copia tecnicamente corretta del sito può quindi smettere di inviare o perdere allineamento con i DNS.
- Verifica che le credenziali SMTP appartengano ancora all’account corretto.
- Controlla che il dominio usato nel From sia quello autorizzato dal servizio.
- Rivedi SPF e DKIM se è cambiato il sistema che effettua l’invio.
- Controlla destinatari, URL del sito e indirizzo amministrativo trasferiti nel database.
- Svuota soltanto le cache pertinenti e ripeti un test tracciabile.
- Confronta i log del vecchio e del nuovo ambiente, se disponibili.
WordPress non invia email ancora? Verifica che la correzione funzioni
La correzione è verificata soltanto se torna a funzionare l’intero percorso. Un test verde nel plugin SMTP è un buon segnale, ma non prova che ogni modulo o notifica utilizzi correttamente quel percorso.
- Invia un messaggio di test generale e registra il risultato.
- Prova il modulo o la funzione che aveva generato il problema.
- Controlla che il messaggio compaia nei log previsti.
- Verifica l’accettazione da parte del servizio di invio.
- Controlla la ricezione su più provider e anche nella cartella spam.
- Esamina i risultati SPF, DKIM e DMARC nelle intestazioni di almeno un messaggio ricevuto.
- Ripeti il controllo dopo il successivo aggiornamento rilevante o cambio infrastrutturale.
Per i siti che dipendono dai moduli di contatto, la verifica periodica degli invii può rientrare in un servizio di manutenzione tecnica del sito. Conservare richieste e log per il tempo realmente necessario aiuta anche a ricostruire eventuali interruzioni, nel rispetto delle regole applicabili ai dati raccolti.
Errori da evitare durante la diagnosi
- Installare più plugin SMTP contemporaneamente.
- Disattivare plugin in produzione senza backup o ambiente di test.
- Usare l’indirizzo del visitatore come mittente del dominio.
- Modificare record DNS senza conoscere tutti i servizi di invio attivi.
- Confondere il salvataggio del modulo con la consegna dell’email.
- Considerare risolto il problema dopo un solo test sulla propria casella.
- Condividere password SMTP o accessi amministrativi in canali non sicuri.
WordPress non invia email: quando serve un tecnico
Serve una diagnosi tecnica quando non è possibile stabilire se il problema dipende dal modulo, da WordPress, dal server, dall’autenticazione o dal provider destinatario. È prudente chiedere assistenza anche quando gli invii sono essenziali per acquisire contatti, il problema è comparso dopo una migrazione oppure la correzione richiede accesso a hosting, DNS e log.
Prima del contatto prepara URL del modulo, orario dei test, destinatari utilizzati, messaggi di errore, modifiche recenti e log disponibili. Queste informazioni rendono la richiesta di assistenza WordPress più precisa e riducono le ipotesi iniziali.
Domande frequenti
Se wp_mail() restituisce true, l’email è stata consegnata?
No. Significa che il metodo usato da WordPress ha elaborato la richiesta senza segnalare un errore. Il messaggio può ancora essere rifiutato dal server destinatario, finire in quarantena o essere classificato come spam.
Configurare SMTP risolve sempre il problema?
No. SMTP può migliorare e rendere osservabile il trasporto, ma non corregge un modulo che non genera il messaggio, un destinatario errato, un trigger mancante o una configurazione DNS incoerente.
Perché non arrivano solo le email del modulo contatti?
Se le altre email di WordPress funzionano, controlla la configurazione del modulo: destinatario, campo From, Reply-To, condizioni, azioni dopo l’invio e possibili conflitti. Confronta poi il suo log con un messaggio che viene consegnato correttamente.
Perché le email hanno smesso di arrivare dopo una migrazione?
La migrazione può cambiare l’ambiente mail, l’indirizzo IP, le credenziali SMTP o il dominio del mittente. Occorre verificare trasporto, DNS, autenticazione e configurazioni trasferite prima di attribuire il problema a WordPress.
Prima la diagnosi, poi la correzione
Quando WordPress non manda email, una soluzione affidabile parte dall’evidenza: quale messaggio viene generato, quale sistema tenta l’invio, cosa registra il provider e come risponde la casella destinataria. Solo dopo questa verifica ha senso intervenire su modulo, SMTP, hosting o dominio.
Se non riesci a individuare con certezza il punto in cui la catena si interrompe, puoi richiedere una consulenza e assistenza WordPress BNZ Solutions. La valutazione tecnica può verificare configurazioni, log e ambiente di invio, definendo le priorità senza promettere una soluzione prima di conoscere la causa.
