Email Spam Tester

HomeBlogWordPress: email spam, fix moduli, avvisi e WooCommerce

WordPress: email spam, fix moduli, avvisi e WooCommerce

Perché le email WordPress finiscono nello spam o non arrivano, e come risolvere per moduli di contatto, reset password e ordini WooCommerce.

In questa paginaCome WordPress invia le email con la configurazione predefinita
  1. Come WordPress invia le email con la configurazione predefinita
  2. Invia tramite un vero servizio email
  3. L'indirizzo From nei moduli di contatto
  4. Email di WooCommerce
  5. Il lato DNS, in parole semplici
  6. Testare le email reali, non un messaggio di prova
  7. Quando continua a finire nello spam

Un sito WordPress invia più email di quanto pensi chi lo gestisce. La notifica del modulo di contatto. La reimpostazione della password. Il messaggio di benvenuto per un nuovo utente, l'avviso per la moderazione dei commenti e, in un negozio, ogni conferma d'ordine, fattura e aggiornamento sulla spedizione di WooCommerce. La maggior parte di queste email non è stata progettata da nessuno e nessuno le controlla finché un cliente non scrive per dire che l'email dell'ordine non è mai arrivata.

Quando una di queste email finisce nello spam, controlla come il messaggio lascia il server prima di modificarne il testo. In WordPress, per impostazione predefinita, questa parte usa l'opzione meno adatta alla consegna.

Come WordPress invia le email con la configurazione predefinita

WordPress e quasi tutti i plugin che inviano email, inclusi WooCommerce e i plugin per i moduli, passano da un'unica funzione, wp_mail(). Questa affida il messaggio a PHPMailer, che per impostazione predefinita lo passa alla funzione mail() di PHP. La funzione lo consegna quindi al programma di posta presente sul server di hosting. Nessun accesso a un provider di posta, nessuna firma e nulla nel tuo DNS che indichi che questo server può inviare email per il tuo dominio.

Come indirizzo del mittente viene usato wordpress@ seguito dal dominio del tuo sito (WordPress rimuove l'eventuale www. iniziale). Se non l'hai mai modificato, questo è ciò che i tuoi clienti vedono nel campo From e, su molti siti, quella casella di posta non è mai stata creata.

Su un hosting condiviso, il messaggio parte quindi dal server dell'host tramite un indirizzo IP condiviso con molti altri siti. Se uno di questi invia email a una lista acquistata, oppure viene compromesso e inizia a diffondere spam, l'indirizzo acquisisce una cattiva reputazione e le email per reimpostare le tue password partono dallo stesso indirizzo usato da quei siti.

Di conseguenza, un'installazione predefinita di WordPress invia email il cui SPF non è allineato con il tuo dominio. L'indirizzo per i messaggi di mancato recapito in genere rimane associato al nome del server dell'host e, se al suo posto viene usato il tuo indirizzo, SPF fallisce del tutto. Inoltre, non è presente alcuna firma DKIM per il tuo dominio, quindi DMARC fallisce. Gmail e Yahoo hanno introdotto le proprie regole per i mittenti a febbraio 2024, Microsoft ha fatto lo stesso a maggio 2025 per i domini che inviano più di 5.000 messaggi al giorno a Outlook.com e, da novembre 2025, Gmail rifiuta una quantità maggiore di email che violano le sue regole anziché archiviarle nello spam.

Invia tramite un vero servizio email

La correzione più importante è smettere di usare mail(). Installa un plugin SMTP (WP Mail SMTP, FluentSMTP e Post SMTP sono i più comuni e ciascuno ha una versione gratuita) e collegalo a un servizio che invia correttamente le email: il provider della tua casella di posta, come Google Workspace o Microsoft 365, oppure un servizio transazionale come Amazon SES, Brevo, SendGrid o Mailgun.

Il plugin sostituisce il sistema di trasporto usato da wp_mail(), quindi tutte le email di ogni plugin vengono inviate tramite il nuovo sistema, senza dover modificare i plugin stessi. Se il plugin lo consente, usa l'opzione API del provider invece del semplice SMTP con password. WP Mail SMTP segnala che il collegamento tramite API funziona anche quando il tuo hosting blocca le porte SMTP.

Molti saltano il passaggio successivo. Autentica il dominio presso quel provider: ciascun servizio ti fornisce record DNS da pubblicare, in genere due o tre record CNAME per DKIM e un'inclusione SPF oppure un dominio return-path personalizzato. Finché questi record non sono presenti nel tuo DNS, il provider inserisce il proprio nome nella firma e DMARC non riesce anche lì, proprio come accadeva sull'hosting.

L'indirizzo From nei moduli di contatto

I plugin per moduli, tra cui Contact Form 7 e WPForms, ti permettono di scegliere cosa inserire nella riga From della notifica che ricevi. Molte configurazioni usano l'indirizzo del visitatore, così premendo Reply puoi rispondere direttamente a lui. Sembra una soluzione intelligente, ma è esattamente ciò che DMARC è stato progettato per impedire.

Supponiamo che una visitatrice di nome Anna scriva da anna@yahoo.com. Il tuo sito invia un messaggio che dichiara di provenire da yahoo.com tramite un server mai autorizzato da Yahoo. yahoo.com pubblica una policy DMARC con p=reject, quindi un destinatario che la applica rifiuta la notifica perché contraffatta. Con una visitatrice che usa Gmail, la policy è meno rigida e il messaggio finisce più spesso nello spam. WPForms segnala esattamente questo problema nella sua documentazione.From sei tu, Reply-To è il visitatore

Configura invece il modulo in questo modo:

  • From: un indirizzo del tuo dominio, come forms@yourdomain.com, sullo stesso dominio per cui è autenticato il tuo plugin SMTP.
  • Reply-To: l'indirizzo del visitatore, preso dal campo del modulo. Premendo Reply continuerai a rispondere ad Anna.
  • To: la casella di posta che controlli effettivamente.

In Contact Form 7, queste impostazioni si trovano nella scheda Mail: inserisci il tuo indirizzo in From e aggiungi Reply-To: [your-email] in Additional headers. Gli altri plugin per moduli hanno un campo Reply-To nelle impostazioni delle notifiche.

Email di WooCommerce

WooCommerce ha le proprie impostazioni per il mittente: WooCommerce, poi Settings, quindi Emails, nella sezione Email Sender Options, con un nome "From" e un indirizzo "From". Per impostazione predefinita, l'indirizzo è l'email dell'amministratore del sito. Se chi ha installato il negozio ha usato un indirizzo Gmail, ogni conferma d'ordine viene inviata dichiarando di provenire da gmail.com e non supera DMARC per lo stesso motivo del modulo di contatto descritto sopra. Inserisci in quel campo un indirizzo del tuo dominio autenticato. Il nome del negozio è un buon nome mittente. (Per le notifiche degli ordini inviate a te, WooCommerce inserisce già il cliente nel campo Reply-To, che è la configurazione corretta.)

Con le email del negozio possono verificarsi due problemi che non riguardano i moduli di contatto.

Il primo è il volume. Se una promozione o un plugin per newsletter invia email ai clienti usando lo stesso canale delle conferme d'ordine, i messaggi di marketing e quelli transazionali condividono la stessa reputazione. Se la newsletter riceve segnalazioni, ne risentono anche le ricevute. Inviare i due tipi di messaggi tramite servizi diversi li mantiene separati. Anche usare un sottodominio distinto per il marketing aiuta un po', anche se i destinatari continuano a dare un certo peso alla reputazione del dominio principale.

Il secondo problema riguarda la disiscrizione. Le conferme d'ordine e le reimpostazioni della password sono messaggi transazionali, quindi la regola di Gmail e Yahoo sulla disiscrizione con un solo clic non si applica. Una richiesta di recensione, un promemoria per un carrello abbandonato o un'email del tipo "potrebbe piacerti anche" inviata ad acquirenti precedenti è invece marketing. Se invii questi messaggi in grandi volumi, la regola si applica integralmente e richiede un'intestazione List-Unsubscribe con un'opzione di disiscrizione con un solo clic. Controlla se l'add-on che li invia aggiunge questa intestazione. Il test qui sotto lo mostra in entrambi i casi.

Il lato DNS, in parole semplici

Qualunque sia il servizio che usi per l'invio, il tuo dominio ha bisogno di tre elementi nel DNS perché le email siano considerate attendibili. Trovi una guida completa in SPF, DKIM e DMARC spiegati; ecco cosa significa per un sito WordPress.

  • SPF. Un record TXT sul tuo dominio che elenca chi è autorizzato a inviare email per suo conto. Molti servizi di invio non richiedono modifiche, perché eseguono l'allineamento tramite il proprio dominio di bounce. Se il tuo servizio richiede un include: e il dominio ha già un record per il provider della casella di posta, aggiungilo a quel record. Non crearne un secondo: due record SPF sono un errore e smettono entrambi di funzionare. Controlla il risultato con lo strumento di verifica SPF.
  • DKIM. I record forniti dal tuo servizio di invio. Quando diventano attivi, il servizio firma ogni messaggio con il tuo dominio. Questa è la firma che DMARC cerca.
  • DMARC. Un record TXT in _dmarc.yourdomain.com. Inizia con v=DMARC1; p=none; rua=mailto: e un indirizzo che controlli, quindi rendi più restrittiva la policy quando i report mostrano che nessuno dei tuoi messaggi non supera i controlli. Lo strumento di verifica DMARC legge la configurazione esistente.

Tieni presente che il server di hosting potrebbe continuare a inviare autonomamente alcuni messaggi, per esempio tramite un cron job o un vecchio plugin che chiama direttamente mail() invece di wp_mail(). Questi messaggi non passano dal plugin SMTP e i report DMARC li mostreranno come una fonte imprevista.

Testare le email reali, non un messaggio di prova

Ogni plugin SMTP ha un pulsante "send test email", che dimostra soltanto che la connessione funziona. Non ti mostra la conferma dell'ordine così come viene generata da WooCommerce, la notifica del modulo con il relativo Reply-To o l'email di reimpostazione della password con il link inserito da WordPress.

Per questo faccio inviare a WordPress le email reali. Un indirizzo di prova dalla pagina iniziale accetta un solo messaggio, quindi richiedi un nuovo indirizzo per ogni email che vuoi controllare. Per il modulo, imposta temporaneamente l'indirizzo come destinatario della notifica e invia il modulo. Per WooCommerce, effettua un ordine di prova usando l'indirizzo come email del cliente. Per la reimpostazione della password, assegna l'indirizzo a un utente di prova e richiedi la reimpostazione. Ogni messaggio riceve un report separato, con SPF, DKIM e DMARC e il relativo allineamento, 21 liste di blocco, contenuti e link, oltre alle regole per i mittenti di grandi volumi. Per verificare la cartella di destinazione in Gmail, Outlook, Yahoo e altri provider, devi inviare lo stesso messaggio a un elenco di caselle di posta con un indicatore nell'oggetto. Un modulo o un ordine del negozio non può farlo, quindi lascia questa verifica alle email che invii tu stesso.

Se preferisci non creare manualmente gli ordini di prova, il plugin per WordPress gratuito invia questi messaggi tramite la funzione wp_mail() del tuo sito, seguendo lo stesso percorso delle email destinate ai tuoi clienti, e mostra il risultato nella bacheca. Rileva anche quando il sito inizia a inviare un tipo di email che non aveva mai visto prima.

Quando continua a finire nello spam

Se l'autenticazione viene superata, l'indirizzo From appartiene al tuo dominio e l'email continua a finire nello spam, controlla la reputazione dell'infrastruttura attraverso cui invii. Un IP di hosting condiviso presente in una lista di blocco è una causa comune quando usi ancora mail(), e lo strumento di controllo delle liste di blocco te lo mostrerà. Il contenuto conta meno di quanto si pensi. Una notifica di un modulo con un solo link e tre righe di testo raramente attiva un filtro da sola, mentre può farlo un'email di WooCommerce con un template HTML pesante, un'immagine di grandi dimensioni e un servizio di abbreviazione dei link.

Controlla un messaggio, correggi ciò che indica il report e invialo di nuovo a un nuovo indirizzo.

Altri articoli del blog

Invia prima l'email reale a un indirizzo di test

42 controlli su SPF, DKIM, DMARC, liste di blocco, intestazioni di annullamento dell'iscrizione e contenuto, oltre alla cartella in cui arriva su Gmail, Outlook, Yahoo e altri provider. Gratuito, senza registrazione.

Ottieni un indirizzo di test