Le email transazionali — ordini, password reset, conferme di registrazione, ricevute — sono il polso vitale di qualsiasi ecommerce o piattaforma. A differenza del marketing, dove il lettore sceglie di aprire, qui l'utente dipende dal tuo messaggio per completare un'azione. Se finisce in Spam, è un disastro: perde il client, reclama supporto, abbandona la piattaforma.
Eppure molti sviluppatori, agenzie e PMI in Italia ancora usano lo stesso SMTP generico — o peggio, PHP mail() — per transazionali e marketing. Il risultato? I filtri di Gmail, Libero, Virgilio e Aruba vedono un dominio che alterna messaggi promozionali a notifiche critiche, sospettano qualcosa (mixing content), e cominciano a mettere tutto in Spam. In questa guida vedrai perché accade e come proteggere le tue transazionali.
Perché le email transazionali finiscono in Spam
Un filtro anti-spam moderno non vede solo il testo del messaggio: vede la reputazione del dominio da cui viene spedito, l'IP di provenienza, la firma digitale (DKIM), le policy che hai dichiarato (SPF, DMARC). Se usi un SMTP di bassa qualità, condiviso con migliaia di altri mittenti, l'IP non ha reputazione — o peggio, ne ha una cattiva. Se il dominio nel From: non è autenticato, il filtro lo marca come sospetto. Se i tuoi mail marketing e transazionali escono dallo stesso SMTP con le stesse credenziali, il feedback loop (i reclami di spam che gli utenti marcano) colpisce indistintamente entrambi.
Su provider italiani come Libero e Virgilio (che usano infrastrutture comuni di Italiaonline), se la reputazione del tuo IP crolla per marketing aggressivo, anche una semplice email di conferma ordine finisce in cartella Posta Promozionale o Spam. TIM/Alice e Aruba fanno filtraggi simili, e alcuni — come Aruba — hanno requisiti extra di verifica del dominio (SPF/DKIM obbligatori).
Ultimo aspetto: il Codice Privacy italiano (e il GDPR) richiedono che ogni email commerciale sia chiaramente identificata e con unsubscribe facile. Se il tuo sistema non lo fa automaticamente, o lo fa male (link rotto, non funziona), i provider segnalano violazioni di compliance, e la reputazione scende ancora.
Il problema del PHP mail() e dell'SMTP generico
Molte piattaforme e plugin WordPress/WooCommerce in Italia usano ancora wp_mail() o mail() di PHP, che delega al server (Exim, Postfix locale). Questo approccio ha tre problemi fondamentali:
Nessun controllo sul From: di solito il server mette un indirizzo generico noreply@tuohost.it o addirittura nobody@server.hosting.com. Se il tuo dominio non è il dominio di hosting, la SPF fallisce e DKIM non esiste.
IP cattivo o non configurato: se usi un hosting condiviso, il tuo server condivide l'IP con altri siti. Se uno di loro spedisce spam, la reputazione dell'IP crolla e le tue transazionali ne soffrono.
Niente feedback loop: non ricevi segnalazioni di bounce, reclami di spam, o soft-reject. Pensi che tutto vada bene, mentre in realtà alcuni messaggi non arrivano.
La soluzione è un SMTP esterno dedicato: un servizio che gestisce autenticazione, reputazione IP, feedback loop, monitoraggio. In Italia, opzioni locali come MailUp (molto usato da enterprise e agenzie) offrono panelli dove configurare SPF/DKIM, monitorare delivery, e separare queue di transazionali da marketing. Per chi partite da zero, Brevo (ex Sendinblue) o GetResponse offrono piani che vanno bene per PMI, con localizzazione italiano.
Autenticazione email: SPF, DKIM e DMARC per transazionali
Per ogni email transazionale che spedisci, il provider ricevente controlla tre cose:
Su Libero, Virgilio, Gmail e Outlook, se anche uno di questi fallisce, il messaggio viene messo in quarantena (Spam). Per le transazionali, devi configurarli così:
SPF: Nel DNS del tuo dominio aggiungi un record TXT che autorizza l'SMTP esterno. Se usi MailUp, sarà qualcosa come v=spf1 include:mailup.net ~all. Se usi il tuo SMTP privato, v=spf1 ip4:203.0.113.42 ~all (sostituisci con l'IP vero). Aspetta 24-48 ore per la propagazione DNS in Italia (alcuni registratori italiani hanno latenza).
DKIM: L'SMTP genera una coppia di chiavi (privata nel server, pubblica nel DNS). Metti la chiave pubblica in un record CNAME o TXT del DNS. Gmail e Yahoo lo richiedono da febbraio 2024; Libero/Virgilio lo controllano sempre. Configurazione tipica: default._domainkey.tuodominio.it → chiave pubblica.
DMARC: Imposta almeno v=DMARC1; p=none; rua=mailto:admin@tuodominio.it nel DNS. Questo dice ai riceventi: "Se SPF/DKIM fallisce, avvisa, non rigettare" (p=none). Dopo una settimana, guarda i report DMARC e vedi se fallisce qualcosa. Se tutto è a posto, sali a p=quarantine o p=reject.
Sottodomini dedicati: separa transazionali da marketing
Il trucco più efficace è usare un sottodominio dedicato per le transazionali. Invece di spedire tutto da no-reply@tuodominio.it, crea no-reply@transazionali.tuodominio.it (o notify@, orders@).
Perché? Tre motivi chiari:
Reputazione separata: il sottodominio ha un track record diverso dal dominio principale. Se le tue campagne marketing ricevono reclami di spam, la reputazione di transazionali.tuodominio.it rimane pulita.
SPF/DKIM separati: puoi autorizzare un SMTP per transazionali e un altro per marketing. Così se il marketing temporaneamente scende di reputazione, le transazionali non ne soffrono.
Feedback loop segregato: i reclami di spam su transazionali.tuodominio.it vanno a un indirizzo di admin separato. Puoi vedere subito se un tipo di transazionale ha problemi (es: email di reset password che finiscono in Spam) senza confonderli con reclami sul marketing.
La configurazione è semplice: nei DNS aggiungi un record NS o CNAME che punta lo stesso SMTP, poi configura SPF/DKIM come sopra per il sottodominio. Molti hoster italiani (Aruba, SiteGround, Kinsta) hanno interfacce facili per farlo.
Monitoraggio: vedi cosa succede alle tue transazionali
Anche con autenticazione perfetta, senza monitoraggio non sai se le email arrivano veramente. Controlla questi indicatori con regolarità:
Bounce rate: percentuale di email che il provider ha rigettato (hard bounce: dominio inesistente; soft bounce: casella piena, server temporaneamente non disponibile). Se supera l'1-2%, c'è un problema (indirizzi sporchi, IP su lista nera, reputazione bassa).
Reclami di Spam (Feedback Loop): ogni provider italiano (Libero, Virgilio, Gmail, Yahoo, Aruba) invia rapporti quando un utente marca il tuo messaggio come Spam. Se vedi più di qualche click ogni 100mila email, è un segnale di warning.
Non-delivery reports (NDR): alcuni filtri moderni (come Aruba PEC, anche se quella è certificata) rinviano codici di errore SMTP: 550, 551, 421. Leggili — dicono se sei in lista nera, se reputazione è bassa, o se il dominio non è verificato.
Delivery time: se normalmente arriva in 30 secondi e improvvisamente ci vuole 5 minuti, il provider sta rallentando (throttling). Significa diffidenza: è il primo avviso prima di andare in Spam.
Caso pratico: WooCommerce e Contact Form 7 in Italia
Su WordPress, due plugin enormemente usati hanno lo stesso problema:
WooCommerce: di default usa wp_mail(), che non configura SPF/DKIM e finisce spesso in Spam su Libero/Virgilio. Soluzione: installa un plugin come WP Mail SMTP e collega un SMTP esterno (MailUp, Brevo, GetResponse). Nella configurazione, usa il sottodominio orders@transazionali.tuodominio.it per i confirmi di ordine, e un indirizzo di marketing per le email di follow-up (upsell, review request).
Contact Form 7: stesso problema. I messaggi da form di contatto potrebbero essere critici (prenotazioni, feedback urgenti), e finiscono in Spam perché il plugin spedisce via wp_mail(). Installa WP Mail SMTP con un SMTP, e opzionalmente usa un secondo sottodominio contact@transazionali.tuodominio.it per distinguere form da ordini.
Su PrestaShop (popolare in Italia tra piccoli ecommerce), la situazione è identica: configurazione → Email → SMTP. Collega un SMTP esterno con credenziali separate per transazionali e marketing.
Leggi e compliance in Italia
Non è solo tecnica: il Codice Privacy (D.Lgs. 196/2003, aggiornato per il GDPR) e il Garante per la protezione dei dati personali richiedono che ogni email commerciale identifichi chi la invia e offra un modo semplice per non riceverne più. Se non lo fai, oltre ai filtri anti-spam, rischi segnalazioni e sanzioni del Garante.
Cosa devi fare: Ogni email transazionale deve avere un List-Unsubscribe header (preferibilmente con link one-click, RFC 8058) e nel corpo un identificativo del mittente (ragione sociale, P.IVA/C.F.). Per ecommerce, la fattura/ricevuta ha requisiti ulteriori (firma digitale, conservazione — ma quello è un capitolo di fatturazione, non di deliverability).
Posso usare lo stesso SMTP per transazionali e marketing?
List-Unsubscribe separato per transazionali (un header che dice "non mandare più email di questo tipo") cosicché chi riceve non marca ordini come spam per frustrazione da marketing.