Non mi è arrivato niente.. ora hai la prova

Log delle email WordPress

Ogni email che il sito invia viene registrata con destinatario, oggetto, esito e - la cosa che di solito manca - quale plugin l'ha spedita. Per le notifiche dai moduli trovi anche chi ha scritto e da quale indirizzo IP.
Il corpo del messaggio non viene mai salvato.

verificare le email inviate da WordPress: Come funziona

Il Log delle email WordPress in sette colonne.

Il modulo si aggancia a wp_mail con la priorità più bassa possibile, così vede il messaggio esattamente come lo riceve WordPress dopo che gli altri plugin l'hanno eventualmente modificato. Se l'invio fallisce, la riga già scritta viene aggiornata con l'errore restituito.

  • Quando ed esito: consegnata al server di posta oppure fallita, con il messaggio d'errore.
  • Destinatario e oggetto.
  • Chi ha scritto: l'indirizzo trovato tra i campi del modulo inviato. Vuoto per le email di sistema, che non le ha compilate nessuno.
  • IP: l'indirizzo della richiesta durante la quale l'email è partita, con la bandiera della nazione.
  • Inviata da: il plugin, il tema attivo o WordPress stesso.

Verificare le email inviate da WordPress

wp_mail() è una funzione, non un hook: non c'è un callback da ispezionare. Il modulo risale la pila delle chiamate e cerca il primo file che appartiene a un plugin o al tema, poi traduce la cartella nel nome leggibile del plugin. È la risposta alla domanda che ci si fa davvero quando un sito spedisce quaranta email al giorno.

Chi ha compilato il modulo

Quando wp_mail parte durante l'invio di un form, i campi sono ancora nella richiesta: il modulo prende il primo indirizzo valido che non appartenga al sito, scendendo anche nei campi annidati. Funziona con qualsiasi plugin di moduli e con i form scritti a mano, perché non dipende dai loro schemi interni.

  • Se chi è collegato può gestire gli utenti, il campo resta vuoto: un amministratore che crea un account dalla bacheca è un'azione di gestione, non un modulo pubblico.
  • Limiti dichiarati: con due campi email nel modulo prende il primo, e se un plugin salva ora e spedisce dopo via cron i dati del modulo non ci sono più.

L'indirizzo IP

Per un modulo di contatto è chi ha scritto, perché l'invio avviene dentro la stessa richiesta. Ma le email di cron o da riga di comando non hanno nessuno dietro, e quelle scatenate da un'azione in bacheca avrebbero l'IP dell'amministratore: scriverlo lì sarebbe una bugia, quindi il campo resta vuoto. La lettura dell'IP è la stessa usata dal geofencing, così rispetta l'impostazione "dietro proxy".

Cosa vedi nella pagina

  • Filtro per esito e ricerca su destinatario e oggetto, venticinque righe per pagina.
  • Un grafico a quattordici giorni con le email inviate e quelle fallite.
  • Il registro tiene le diecimila voci più recenti e si può svuotare con conferma.
  • Tabella dedicata, indicizzata per data, esito, sorgente e IP.

Il log delle email WordPress non salva mail il corpo del messaggio, e la colonna che in passato lo conteneva viene eliminata dalla tabella all'aggiornamento: una colonna che ha ospitato link di reimpostazione password e codici di verifica non va lasciata lì per inerzia.

Privacy: il registro conserva indirizzi email e indirizzi IP, che sono dati personali ai sensi del GDPR. La raccolta è disattivabile e il registro svuotabile: indicalo nella tua privacy policy con il periodo di conservazione che applichi. Via d'uscita d'emergenza: define('ADMIN3WEBBLUE_DISABLE_MAILLOG', true);.

Leggi la documentazione

log delle email WordPress
Log delle email WordPress: Grafico a quattordici giorni, filtro per esito e tabella con destinatario, mittente reale, IP e origine.

Domande frequenti

Log delle email WordPress: le domande più frequenti

Cinque risposte su cosa viene registrato, cosa non viene salvato e come leggere un esito.

Cosa registra il log delle email WordPress?

Data e ora, destinatario, oggetto, esito, l’eventuale messaggio d’errore, l’indirizzo IP della richiesta e il plugin che ha spedito. Il modulo si aggancia a la funzione wp_mail() di WordPress con la priorità più bassa possibile, così vede il messaggio esattamente come lo riceve WordPress dopo che gli altri plugin lo hanno eventualmente modificato.

Se l’invio fallisce, la riga già scritta viene aggiornata con l’errore restituito. Non ci sono due voci per lo stesso messaggio: una riga, un esito.

Come faccio a verificare le email inviate da WordPress e da quale plugin?

Ogni riga indica il plugin di origine, ed è il dato che manca quasi sempre altrove. wp_mail() è una funzione e non un hook, quindi non c’è un callback da ispezionare: il modulo risale la pila delle chiamate, trova il primo file che appartiene a un plugin o al tema e ne mostra il nome leggibile.

Quando un sito spedisce quaranta messaggi al giorno tra ordini, moduli di contatto e notifiche di sistema, è l’unico modo per rispondere alla domanda vera: chi l’ha mandata.

Cosa significa esattamente “consegnata”?

Che il messaggio è stato accettato dal server di posta, non che sia arrivato nella casella del destinatario. Sono due cose diverse e conviene tenerle distinte: il plugin può sapere solo la prima, perché è tutto ciò che WordPress gli riporta.

Quindi una riga verde con destinatario che sostiene di non aver ricevuto nulla indica un problema di recapito, quasi sempre record SPF e DKIM mancanti o non allineati, che fanno finire i messaggi nello spam o li fanno rifiutare a monte. Il log ti dice da che parte guardare, che è già metà del lavoro.

Viene salvato anche il testo del messaggio?

No, e la colonna che in passato lo conteneva viene eliminata dalla tabella all’aggiornamento. Non è una funzione mancante ma una scelta: una colonna che ha ospitato link di reimpostazione password e codici di verifica non va lasciata lì per inerzia.

Restano i campi che servono a diagnosticare, senza conservare il contenuto delle comunicazioni dei tuoi utenti. Vale la pena ricordare che indirizzi email e IP sono comunque dati personali: indica il trattamento nella privacy policy con il periodo di conservazione che applichi davvero.

Perché alcune righe hanno l’indirizzo IP e altre no?

Perché l’IP registrato è quello della richiesta durante la quale l’email è partita. Per un modulo di contatto coincide con chi ha scritto, ed è utile. Ma i messaggi generati dal cron o da riga di comando non hanno nessuno dietro, e quelli scatenati da un’azione in bacheca porterebbero l’IP dell’amministratore: scriverlo lì sarebbe una bugia comoda, quindi il campo resta vuoto.

Il registro conserva le diecimila voci più recenti in una tabella dedicata e indicizzata, si svuota dalla pagina con una conferma e si disattiva del tutto con ADMIN3WEBBLUE_DISABLE_MAILLOG in wp-config.php.

Carrello