Email transazionali8 min di lettura

Contact Form 7 non invia email: come risolvere

Il modulo di contatto WordPress non funziona? Scopri la causa più comune e la soluzione step-by-step per far arrivare le email dove devono andare.

Hai appena installato Contact Form 7, il modulo funziona perfettamente dal punto di vista visivo, ma le email dei visitatori spariscono nel nulla. Niente avvisi di errore, niente log — solo il silenzio frustrante di una comunicazione che non avviene mai.

Tranquillo: questo è uno dei problemi più comuni su WordPress, e la causa è quasi sempre la stessa. WordPress usa per default una funzione chiamata wp_mail(), che funziona come un bancomat rotto: accetta il deposito ma non garantisce che i soldi arrivino a destinazione. Il problema è che il tuo server di hosting, specialmente se in shared hosting, non ha un server SMTP configurato correttamente per l'invio.

Perché Contact Form 7 non invia email

Quando installi WordPress, la funzione wp_mail() cerca di inviare email direttamente dal tuo server web. Suona bene in teoria, ma nella pratica succede questo:

  • Il tuo hosting condiviso disabilita l'invio di email per evitare abusi (spam).
  • Anche se lo consente, la maggior parte dei server non ha Postfix, Sendmail o altri servizi SMTP configurati.
  • WordPress tenta di inviare da un indirizzo From: che non corrisponde al dominio del server — le email vengono rifiutate come spoofing o finiscono direttamente in spam.
  • Se non hai SPF e DKIM configurati, i filtri antispam di Gmail, Libero, Virgilio e altri provider italiani scartano le email.

Risultato: Contact Form 7 non sa nemmeno che c'è un errore, perché la funzione wp_mail() ritorna sempre true anche se il messaggio non è stato mai spedito. È un bug di design di WordPress, ma la soluzione è semplice.

Soluzione 1: Installa WP Mail SMTP

Il primo passo è installare WP Mail SMTP, un plugin gratuito che intercetta tutti gli invii di email da WordPress e li devia verso un vero server SMTP esterno (Google, Microsoft, Brevo, GetResponse, etc.).

  1. Accedi alla dashboard di WordPress → PluginAggiungi nuovo.
  2. Cerca WP Mail SMTP (creato da WP Mail SMTP by WPForms).
  3. Installa e attiva il plugin.
  4. Vai a WP Mail SMTPSettings.
  5. Scegli un provider SMTP:
    • Gmail — facile se usi Google Workspace; richiede una password specifica per app (non la password account).
    • Brevo — ESP italiano-friendly, gratuito fino a 300 email/giorno, credenziali nel dashboard Brevo.
    • GetResponse — ESP con ottimo supporto italiano, API key nel dashboard.
    • Mailgun, SendGrid, MailerSend — provider internazionali affidabili.
  6. Inserisci le credenziali SMTP nel plugin (host, porta, username, password).
  7. Nel campo From Email, metti un indirizzo che corrisponde al dominio del tuo sito (es. se il sito è miosite.it, usa noreply@miosite.it oppure info@miosite.it).
  8. Salva e testa.
WordPress (WP Mail SMTP)SPF + DKIMAutenticazione sul dominio @tuosite.itProvider riceventiGmail, Libero, Virgilio, TIM, OutlookInboxSpam
WordPress con WP Mail SMTP: il flusso corretto dell'email.
Attenzione al dominio From
Se il tuo WordPress invia da admin@tuohosting.it ma il dominio reale è miosite.it, è spoofing. I provider email rifiutano le email o le mettono in spam. Assicurati che l'indirizzo From sia sempre nomeutente@tuosito.it, mai da un dominio diverso.

Soluzione 2: Configura SPF e DKIM

Anche con WP Mail SMTP attivo, se non hai SPF (Sender Policy Framework) e DKIM (DomainKeys Identified Mail) configurati, le tue email avranno meno credibilità ai occhi di Gmail, Libero, Virgilio, TIM e altri provider italiani.

Questi due standard dicono ai server riceventi: «Sì, l'email viene da noi, potete fidarvi».

SPFSpecifica quali server possono spedire email dal tuo dominioDKIMFirma digitale che prova che l'email viene veramente da teDMARCPolicy che dice ai riceventi come trattare le email che falliscono SPF/DKIM
SPF, DKIM e DMARC: la trinità dell'autenticazione email.

Come fare:

  1. SPF: Accedi al pannello DNS del tuo hosting e aggiungi un record TXT. Se usi Brevo, sarà qualcosa come v=spf1 include:brevo.com ~all. Se usi Gmail, sarà v=spf1 include:sendgrid.net ~all (dipende dal provider SMTP).
  2. DKIM: Il tuo provider SMTP (Brevo, Gmail, GetResponse) ti fornirà una chiave DKIM da aggiungere al DNS. È una stringa lunga in un record TXT o CNAME. Il plugin WP Mail SMTP spesso non configura DKIM automaticamente — devi farlo nel pannello del provider SMTP e poi nel DNS del tuo hosting.
  3. DMARC (opzionale ma consigliato): Aggiungi un record TXT v=DMARC1; p=none; rua=mailto:admin@tuosito.it per monitorare cosa succede alle tue email.

Se tutto questo ti sembra complicato, il tuo hosting dovrebbe avere un tutorial nel pannello di controllo (cPanel, Plesk, etc.) su come aggiungere record SPF/DKIM. Se sei in dubbio, chiedi al supporto hosting.

Soluzione 3: Testa la deliverability prima di andare in produzione

Una volta configurato WP Mail SMTP e aggiunti SPF/DKIM, come verifichi che tutto funziona? Non aspettare che un cliente si lamenti che non ha ricevuto il messaggio.

Usa check.live-direct-marketing.online, lo strumento gratuito di inbox placement test: crei un form di contatto finto, invii un email di test, e lo strumento ti mostra:

  • Se l'email è arrivata in Inbox, Spam, o se è stata rifiutata completamente.
  • I veredetti di SPF/DKIM/DMARC.
  • Come il tuo email appare in Gmail, Libero, Virgilio, TIM, Outlook, Yahoo — con screenshot reali.
  • I verdetti del filtro antispam di ciascun provider.

È gratuito, non richiede registrazione, e in pochi minuti sai esattamente se il tuo setup è corretto. Se l'email non arriva nemmeno al test, allora sai che c'è ancora un problema da risolvere.

Soluzione 4: Verifica i log di WordPress

Se dopo tutte queste correzioni Contact Form 7 ancora non invia, attiva il debug di WordPress per vedere se ci sono errori nascosti:

  1. Apri il file wp-config.php nella root del tuo sito.
  2. Aggiungi (o modifica):define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
  3. Salva il file.
  4. Invia un test dalla form.
  5. Vai a /wp-content/debug.log (sul server, via FTP o file manager dell'hosting) e leggi i messaggi di errore.

Questo file di log ti dirà esattamente cosa è andato storto — credenziali SMTP sbagliate, provider irraggiungibile, etc. Non ignorare gli errori: Contact Form 7 non è responsabile della consegna email, lo è il tuo stack SMTP.

Caso speciale: Elementor Forms

Se non usi Contact Form 7 ma Elementor Forms (il builder drag-and-drop), il problema è identico: anche Elementor usa wp_mail() per default. La soluzione è la stessa: installa WP Mail SMTP e configura un provider SMTP esterno. Non devi fare nulla di speciale in Elementor — il plugin intercetta tutti gli invii di WordPress.

Contact Form 7 non invia email quando attivato su un nuovo sito — cosa significa?

Significa che WordPress non ha accesso a un server SMTP. Per default, wp_mail() usa il server locale, che sulla maggior parte degli hosting condivisi è disabilitato. Installa WP Mail SMTP e scegli un provider esterno (Gmail, Brevo, etc.).

Se attivo WP Mail SMTP, tutte le email di WordPress passano attraverso il provider SMTP?

Sì. WP Mail SMTP intercetta tutti gli invii di WordPress: form di contatto, notifiche di commenti, email di reset password, email di conferma ordine WooCommerce, etc. È un vantaggio perché garantisce deliverability uniforme; l'unico limite è la quota giornaliera del provider (Gmail gratuito: ~500 email/giorno, Brevo gratuito: 300 email/giorno).

Come verifico se il problema è veramente il dominio From?

Controlla le impostazioni di WP Mail SMTP: il campo From Email deve essere nomeutente@tuodominio.it, non un indirizzo di un altro dominio. Se vedi qualcosa come admin@tuohosting.it mentre il tuo sito è miosite.it, è spoofing. Correggi il From e aggiungi SPF/DKIM del tuo dominio nel DNS.

Letture correlate
Found this useful? Share it
AB
Sull'autore
Artem Berezin
B2B Deliverability Specialist

B2B deliverability specialist with 5+ years of hands-on outreach experience. Built campaigns reaching 90,000+ inboxes across 20+ countries — and fixed the deliverability problems that came with that scale.

Verifica la tua deliverability su oltre 20 provider

Gmail, Outlook, Yahoo, Libero, GMX, ProtonMail e altri. Screenshot reali della posta in arrivo, SPF/DKIM/DMARC, verdetti dei filtri antispam. Gratis, senza registrazione.

Avvia il test gratuito →

Test illimitati · Oltre 20 caselle · Risultati in tempo reale · Nessun account