Knowledge Base Guide

Deliverability email PrestaShop: SMTP, SPF, DKIM e configurazione email transazionali

Risolvi le email PrestaShop in spam — configura SMTP, imposta SPF/DKIM/DMARC, servizi email transazionali e guida alle impostazioni PS 8/9.

Perché le Email di PrestaShop Finiscono nello Spam

Il tuo cliente effettua un ordine. L’email di conferma non arriva mai — oppure finisce nello spam. Ti contatta, confuso. Controlli PrestaShop: l’email risulta “inviata”. La deliverability delle email non riguarda se PrestaShop invia l’email — riguarda se il server di posta del destinatario la accetta e la posiziona nella casella di posta in arrivo.

PHP mail() — L’Impostazione Predefinita che Nessuno Dovrebbe Usare

Un’installazione PrestaShop appena creata utilizza la funzione integrata mail() di PHP. Questa è la peggiore opzione per un negozio in produzione:

  • Nessuna autenticazione: L’email viene inviata senza alcuna prova che tu l’abbia autorizzata. Gmail, Outlook e Yahoo trattano le email non autenticate come sospette.
  • Reputazione IP condivisa: Sull’hosting condiviso, le tue email provengono dallo stesso IP di ogni altro sito. Se qualcuno invia spam, le tue email vengono penalizzate.
  • Nessuna firma DKIM: PHP mail() non firma i messaggi crittograficamente.
  • Header mancanti: Header minimi significano che i filtri antispam segnalano immediatamente il messaggio.
Se il tuo negozio utilizza PHP mail() in questo momento, passa a SMTP prima di fare qualsiasi altra cosa. Questa singola modifica risolve più problemi di deliverability di tutti gli altri passaggi messi insieme.

Cause Comuni di Spam

  • Indirizzo From non corrispondente: Invii da noreply@yourstore.com ma il tuo server non ha un record SPF che lo autorizzi.
  • Template ricchi di HTML: I template di PrestaShop sono pieni di immagini. Un alto rapporto immagini/testo attiva i filtri.
  • Alternativa in testo semplice mancante: PS invia entrambe le versioni, ma template personalizzati o moduli a volte rompono la parte in testo semplice.
  • Link non funzionanti: I filtri antispam seguono i link. Se l’URL del tuo negozio non è raggiungibile (errore SSL, modalità manutenzione), l’email viene segnalata.
  • Problemi di codifica: I negozi che utilizzano polacco, ceco o altri caratteri diacritici producono caratteri illeggibili quando la codifica è errata.

Configurazione Email di PrestaShop

Le impostazioni email sono state spostate e la libreria sottostante è cambiata significativamente nella versione 9.

PrestaShop 1.6 e 1.7

Vai su Parametri Avanzati → E-mail. Seleziona “Imposta i miei parametri SMTP” e compila server, porta, crittografia, nome utente e password. PS 1.6 utilizza la gestione SMTP integrata di PHP; PS 1.7 ha introdotto Swift Mailer per connessioni più affidabili. Opzioni di crittografia:

  • TLS (porta 587): Standard moderno che utilizza STARTTLS. Questa è l’opzione consigliata.
  • SSL (porta 465): TLS implicito legacy. Alcuni host più vecchi lo richiedono.
  • Nessuno (porta 25): Non crittografato. Non usare mai questa opzione.

PrestaShop 8.x

Stessa posizione, stessa interfaccia. PS 8 utilizza l’ultima versione di Swift Mailer con una migliore segnalazione degli errori. Gli errori SMTP vengono registrati con più contesto in var/logs/.

PrestaShop 9.x — Symfony Mailer

PS 9 sostituisce il deprecato Swift Mailer con Symfony Mailer. L’interfaccia di amministrazione sembra simile, ma il livello di trasporto è completamente diverso:

  • Formato DSN: Internamente utilizza smtp://user:password@server:port.
  • Gestione TLS: Rileva automaticamente STARTTLS sulla porta 587. Il menu a tendina “crittografia” potrebbe comportarsi diversamente dopo l’aggiornamento da PS 8.
  • Validazione più rigorosa: Symfony Mailer è più rigoroso sulla corrispondenza tra il mittente dell’envelope e l’header From e sui certificati TLS.
  • Compatibilità dei moduli: I moduli che fanno riferimento a Swift_Message o Swift_SmtpTransport non funzioneranno su PS 9.
# PS 9 internal DSN examples (configured via admin UI)
smtp://user:password@mail.example.com:587      # STARTTLS
smtps://user:password@mail.example.com:465     # Implicit TLS
smtp://your%40gmail.com:app-pass@smtp.gmail.com:587  # Gmail
native://default                                # PHP mail() (not recommended)
Dopo l’aggiornamento a PS 9, testa sempre le email. La migrazione da Swift Mailer a Symfony Mailer può far emergere casi particolari con certificati auto-firmati, porte non standard o server SMTP implementati in modo approssimativo.

Il Pulsante Email di Prova

Ogni versione di PS ha “Invia un’email di prova”. Usalo, ma sappi che conferma solo che la connessione SMTP funziona — non che l’email raggiunga la casella di posta. Invia testo semplice, non l’HTML ricco delle conferme d’ordine. Testa con Gmail, Outlook e il tuo dominio personale.

Autenticazione del Dominio — La Sacra Trinità

SPF, DKIM e DMARC sono sistemi di autenticazione basati su DNS che dimostrano che le tue email sono legittime. Gmail e Yahoo hanno reso SPF e DKIM obbligatori per i mittenti di massa a febbraio 2024.

SPF (Sender Policy Framework)

SPF comunica ai server riceventi quali IP possono inviare email per il tuo dominio — un singolo record TXT nel DNS.

# Basic — allows hosting + Google
v=spf1 include:_spf.google.com include:your-hosting-provider.com ~all

# OVH
v=spf1 include:mx.ovh.com ~all

# Hostinger
v=spf1 include:_spf.hostinger.com ~all

# With Mailgun
v=spf1 include:mailgun.org include:_spf.google.com ~all

Errori comuni:

  • Record SPF multipli: Solo UN record TXT SPF per dominio. Due record = entrambi non validi. Combina i servizi con più direttive include:.
  • Troppe ricerche DNS: SPF consente un massimo di 10 ricerche (ogni include: conta, anche quelli annidati). Usa i validatori SPF per verificare.
  • +all invece di ~all: +all permette a chiunque di inviare come il tuo dominio. Usa ~all (softfail) durante la configurazione, poi -all (hardfail) in produzione.
  • Dimenticare i sottodomini: SPF per shop.example.com necessità del proprio record — non eredita da example.com.

DKIM (DomainKeys Identified Mail)

DKIM aggiunge una firma crittografica a ogni email in uscita. PrestaShop non gestisce DKIM — lo fa il tuo provider di hosting, relay SMTP o servizio transazionale. Tu pubblichi la chiave pubblica nel DNS.

  • Hosting condiviso (cPanel/Plesk): Di solito abilitato automaticamente. Controlla cPanel → Email Deliverability.
  • Gmail/Google Workspace: Console di amministrazione → Gmail → Autentica email. Google fornisce un record TXT.
  • Servizi transazionali: Ciascuno fornisce i record DNS durante la procedura guidata di verifica del dominio.
# DKIM TXT record example
# Name: default._domainkey.yourstore.com (selector varies by provider)
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...

DMARC (Domain-based Message Authentication, Reporting, and Conformance)

DMARC collega SPF e DKIM e indica ai server cosa fare quando l’autenticazione fallisce.

# Stage 1: Monitor only
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourstore.com;

# Stage 2: Quarantine failures
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourstore.com;

# Stage 3: Reject failures (maximum protection)
v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourstore.com;

Il tag rua invia report aggregati — file XML che mostrano chi invia email come il tuo dominio. Usa Postmark DMARC monitoring per convertirli in dashboard leggibili.

Rollout consigliato: p=none per 2-4 settimane mentre leggi i report. Correggi i mittenti legittimi che falliscono. Passa a p=quarantine per 2-4 settimane. Poi p=reject. Passare direttamente a reject il primo giorno blocca email di cui non eri a conoscenza.

Configurazione SMTP per Hosting Condiviso

La maggior parte dei negozi PrestaShop funziona su hosting condiviso. Crea un account email dedicato (es. orders@yourstore.com) e usa quelle credenziali.

Impostazioni Specifiche per Provider

# Generic cPanel
Server: mail.yourstore.com | Port: 587 | Encryption: TLS

# OVH
Server: ssl0.ovh.net | Port: 587 | Encryption: TLS

# Hostinger
Server: smtp.hostinger.com | Port: 587 | Encryption: TLS

# SiteGround
Server: yourstore.com | Port: 465 | Encryption: SSL

# Bluehost
Server: mail.yourstore.com | Port: 465 | Encryption: SSL

Gmail SMTP

Richiede una Password per le App (Account Google → Sicurezza → Verifica in due passaggi → Password per le app).

Server: smtp.gmail.com | Port: 587 | Encryption: TLS
Username: your@gmail.com | Password: (16-char App Password)

Limiti: Gmail gratuito: 500/giorno. Google Workspace: 2.000/giorno. Invii troppo rapidi attivano blocchi temporanei.

Gmail SMTP funziona per negozi con meno di 30 ordini al giorno. Oltre a ciò, raggiungere i limiti significa che i clienti aspettano fino a 24 ore per le conferme d’ordine.

Microsoft 365 SMTP

Server: smtp.office365.com | Port: 587 | Encryption: TLS
Username: your@yourstore.com | Password: account or App Password

Limite: 10.000 destinatari/giorno, 30 messaggi/minuto. Microsoft richiede sempre più spesso OAuth al posto dell’autenticazione SMTP di base — verifica le impostazioni del tuo tenant.

Servizi Email Transazionali

Quando il tuo negozio supera le capacità dell’SMTP dell’hosting, questi servizi forniscono infrastruttura dedicata ad alta reputazione, firma DKIM, gestione dei bounce e analisi delle consegne.

Quando Passare

  • Raggiungi i limiti di invio dell’hosting
  • Le email finiscono nello spam nonostante i record DNS corretti
  • Hai bisogno di tracciamento delle consegne e gestione dei bounce
  • La reputazione dell’IP condiviso dell’hosting ti sta penalizzando

Confronto dei Servizi

Mailgun — Da $15/mese per 10K email. API eccellente, analisi dettagliate. SMTP: smtp.mailgun.org:587.

Postmark — Da $15/mese per 10K email. I tassi di consegna in inbox più alti del settore. Separa le email transazionali da quelle di marketing. SMTP: smtp.postmarkapp.com:587. Usa il Server API Token come nome utente e password.

Amazon SES — $0,10 per 1.000 email. Il più economico su larga scala. Crea le credenziali SMTP nella console SES (non le chiavi di accesso AWS). I nuovi account partono in modalità sandbox. Server specifico per regione: email-smtp.eu-west-1.amazonaws.com:587.

SendGrid — Piano gratuito: 100/giorno. A pagamento da $19,95/mese. Il nome utente è letteralmente apikey, la password è la tua API key. SMTP: smtp.sendgrid.net:587. Gli IP condivisi del piano gratuito hanno una reputazione scarsa — prevedi un budget per il piano a pagamento.

Brevo — Piano gratuito: 300/giorno. A pagamento da $9/mese. Newsletter/CRM integrato, basato in UE (GDPR). SMTP: smtp-relay.brevo.com:587. Ha un plugin dedicato per PrestaShop.

Raccomandazione: Brevo se vuoi anche le email di marketing. Postmark se la deliverability transazionale è la tua priorità. Amazon SES per grandi volumi con un budget limitato. Mailgun come soluzione universale.

Integrazione

Tutti funzionano tramite SMTP standard — nessun modulo richiesto: (1) verifica il tuo dominio, (2) aggiungi i loro record DNS (SPF, DKIM), (3) genera le credenziali SMTP, (4) inseriscile nelle impostazioni email di PrestaShop, (5) testa.

Email Self-Hosted (Avanzato)

Gestire il proprio server di posta offre il controllo completo — nessun limite di terze parti, nessun costo per email, privacy totale. Noi stessi utilizziamo Mailcow. Ma il costo in tempo e competenze è reale.

Quando Ha Senso

  • Privacy: Tutti i dati email restano sul tuo server. Importante in caso di GDPR rigoroso.
  • Volume: Con 100K+ email al mese, un VPS da $40/mese batte qualsiasi servizio transazionale.
  • Controllo: Regole personalizzate, nessun limite arbitrario, nessuna sospensione dell’account.

Quando Non Ha Senso

  • Nessuna esperienza di amministrazione di sistema: Un server di posta mal configurato è peggio dell’hosting condiviso.
  • IP nuovi: Costruire la reputazione da zero richiede settimane. I servizi transazionali ti danno una reputazione consolidata immediatamente.
  • Nessun record PTR: Senza DNS inverso, la maggior parte dei server rifiuta direttamente le tue email.
  • Onere di manutenzione: Patch, certificati, monitoraggio delle blocklist, log — lavoro continuo.

Opzioni

Mailcow: Basato su Docker, include webmail, antispam, antivirus, autodiscover. Richiede 4GB+ di RAM. La nostra scelta.

Mail-in-a-Box: Soluzione all-in-one su server Ubuntu dedicato. Più semplice ma occupa l’intera macchina.

iRedMail: Tradizionale Postfix+Dovecot. Il più flessibile, il più leggero, il più manuale.

Inizia utilizzando l’email self-hosted per la tua attività per 3 mesi prima di instradare le email dei negozi dei clienti attraverso di essa. Costruisci la reputazione gradualmente. Mantieni un servizio transazionale come fallback.

Tipi di Email in PrestaShop

Critiche — Devono Arrivare Immediatamente

  • Conferma d’ordine (order_conf): L’email più importante. Se finisce nello spam, aspettati chargeback e perdita di fiducia.
  • Conferma di pagamento (payment): I clienti sono ansiosi finché non la vedono.
  • Reset della password (password_query): Sensibile al tempo. Se impiega 10 minuti, il cliente se ne va.
  • Creazione account (account): La prima impressione del tuo negozio.

Importanti — Dovrebbero Arrivare Tempestivamente

  • Notifica di spedizione (shipping): Contiene le informazioni di tracciamento.
  • Aggiornamenti stato ordine (order_changed): In lavorazione, spedito, consegnato.
  • Fattura e rimborso: Necessari per il B2B e per rassicurare il cliente.
Separa le email transazionali da quelle di marketing. Usa il tuo dominio principale per le email degli ordini e un sottodominio (news@mail.yourstore.com) per le newsletter. Questo evita che le segnalazioni di spam sulle newsletter danneggino la reputazione delle conferme d’ordine.

I template si trovano in mails/{iso_code}/. Ciascuno ha una versione HTML (.html) e una in testo semplice (.txt). Mantieni sempre entrambe — un’alternativa in testo semplice mancante è un segnale di spam.

Scelta dell’Hosting per le Email

Limitazioni dell’Hosting Condiviso

  • Reputazione IP condivisa: Condividi un IP con oltre 200 siti. Se qualcuno invia spam, le tue email vengono penalizzate. Non puoi controllarlo.
  • Limiti di invio: Tipicamente 100-500/ora e 500-5.000/giorno. Vendite flash e newsletter esauriscono questi limiti rapidamente.
  • Nessun IP dedicato: Non disponibile sull’hosting condiviso. Punto.
  • Controllo DNS limitato: Alcuni host economici limitano i record DKIM, TXT o PTR personalizzati.
  • Porte bloccate: Alcuni host bloccano la porta 587 in uscita, impedendo la connessione ai servizi transazionali.

Vantaggi del VPS

  • IP dedicato con la tua reputazione personale
  • Nessun limite di invio artificiale
  • Record PTR (DNS inverso) — essenziale per la deliverability
  • Controllo DNS completo, qualsiasi server di posta desideri

Segnali d’Allarme

  • “Email illimitate”: Non esiste una cosa del genere sull’hosting condiviso.
  • Nessun supporto DKIM: Cambia provider.
  • Porta 587 bloccata: Impossibile utilizzare i servizi transazionali.
  • IP in blocklist: Controlla su MXToolbox prima di impegnarti.
La strategia migliore per l’hosting condiviso: ignora completamente l’email dell’host. Usa un servizio transazionale tramite SMTP. Il tuo negozio invia attraverso la loro infrastruttura ad alta reputazione, bypassando completamente il problema dell’IP condiviso.

Novità in PrestaShop 8 e 9

PS 8: L’Ultimo Swift Mailer

PS 8 utilizza l’ultima versione stabile di Swift Mailer 6.x. Negoziazione TLS migliorata, log degli errori più dettagliati in var/logs/ e metadati email in ps_mail. Test da CLI: php bin/console prestashop:mail:test recipient@example.com.

PS 9: Symfony Mailer

Sostituzione completa del livello di trasporto. Cambiamenti principali:

  • Distingue smtp:// (STARTTLS, porta 587) da smtps:// (TLS implicito, porta 465)
  • Più rigoroso sulla corrispondenza tra il mittente dell’envelope e l’header From
  • Validazione dei certificati TLS più rigorosa — i certificati auto-firmati che funzionavano in PS 8 potrebbero fallire
  • I moduli che utilizzano classi Swift Mailer (Swift_Message, ecc.) non funzionano e devono essere aggiornati
# PS 9 email via environment variables (advanced)
# .env.local — overrides admin panel settings
MAILER_DSN=smtp://user:password@smtp.example.com:587
MAILER_DSN=smtp://user%40gmail.com:app-pass@smtp.gmail.com:587
# Special chars must be URL-encoded: @ = %40, : = %3A

Per i certificati auto-firmati in fase di sviluppo:

# Disable TLS verification (NEVER in production)
MAILER_DSN=smtp://user:pass@host:587?verify_peer=0

Test e Monitoraggio

Prima del Lancio

mail-tester.com: Invia un’email di prova al loro indirizzo e ottieni un punteggio su 10 con problemi specifici. Punta a 9+. Gratuito per 3 test al giorno. Controlla SPF, DKIM, DMARC, blocklist, qualità HTML, header e link.

MXToolbox: Diagnostica DNS — record MX, validità SPF e conteggio ricerche, risoluzione DKIM, policy DMARC, stato delle blocklist.

Monitoraggio Continuo

Google Postmaster Tools: Mostra il tasso di spam, la reputazione dell’IP, la reputazione del dominio e il successo dell’autenticazione dalla prospettiva di Gmail. Gratuito, richiede la verifica del dominio.

Header delle email: In Gmail, apri l’email → tre puntini → “Mostra originale”. Cerca:

SPF: PASS with IP 1.2.3.4
DKIM: PASS (signature verified)
DMARC: PASS

Programmazione: controllo settimanale di ps_mail per i fallimenti e i report DMARC. Controllo mensile su mail-tester.com e delle blocklist. Verifica nuovamente il DNS dopo ogni modifica. Testa le email dopo ogni aggiornamento di PrestaShop.

Problemi Comuni e Soluzioni

“L’Email di Prova Funziona Ma i Clienti Non Ricevono gli Ordini”

  • Errore di rendering del template: Un errore Smarty nel template dell’ordine impedisce silenziosamente l’invio. Controlla var/logs/.
  • Template mancante: Il template per la lingua del cliente non esiste in mails/{lang_iso}/.
  • Timeout SMTP: Conferme d’ordine grandi (molti prodotti) vanno in timeout con connessioni SMTP lente.
  • Indirizzo From rifiutato: Server SMTP che richiedono che l’indirizzo From corrisponda all’utente autenticato.

Limitazione della Frequenza

Stai importando 200 ordini o inviando una newsletter a 1.000 iscritti? Il tuo server SMTP accetta il primo blocco e rifiuta il resto. Distanzia gli invii, controlla i limiti del provider o usa un servizio transazionale che gestisce automaticamente la coda.

Problemi di Codifica (Polacco/Ceco/Caratteri Speciali)

  • Oggetto illeggibile: Assicurati che la tua installazione utilizzi UTF-8 ovunque. Gli oggetti vengono codificati nel formato RFC 2047.
  • Contenuto del template corrotto: I file dei template email devono essere in UTF-8 senza BOM. Il Blocco Note di Windows può salvare come ANSI — usa VS Code.
  • Mismatch del database: Le tabelle dovrebbero usare utf8mb4. Verifica: SHOW CREATE TABLE ps_product_lang;

Email Bloccate Dopo la Migrazione

  • SPF non aggiornato con il nuovo IP del server
  • Chiave DKIM non corrispondente — il nuovo host ha generato nuove chiavi
  • Il nuovo IP non ha reputazione — riscaldalo gradualmente in 2 settimane
  • Porta 587 bloccata sul nuovo host
  • Propagazione DNS — attendi 24-48 ore dopo le modifiche

Il Modulo di Contatto Non Arriva

Alcuni moduli impostano l’email del cliente come indirizzo From. Questo fallisce l’SPF perché il tuo server non può inviare da customer@gmail.com. L’indirizzo From dovrebbe sempre essere il dominio del tuo negozio, con il cliente nel Reply-To.

Checklist per la Deliverability delle Email

Passaggio 1: Fondamenta

  • ☐ Passa da PHP mail() a SMTP
  • ☐ Crea un indirizzo di invio dedicato (es. orders@yourstore.com)
  • ☐ Invia un’email di prova a Gmail e Outlook — entrambe devono arrivare nella casella di posta

Passaggio 2: Autenticazione DNS

  • ☐ Aggiungi il record SPF — verifica su MXToolbox, meno di 10 ricerche
  • ☐ Abilita DKIM e pubblica la chiave nel DNS
  • ☐ Aggiungi il record DMARC con p=none e reporting rua
  • ☐ Controlla gli header delle email — tutti e tre devono mostrare PASS

Passaggio 3: Controllo Qualità

  • ☐ Punteggio 9+ su mail-tester.com
  • ☐ IP non presente nelle blocklist
  • ☐ I template esistono per tutte le lingue, sia in HTML che in testo semplice

Passaggio 4: Test nel Mondo Reale

  • ☐ Effettua un ordine di prova — l’email di conferma arriva nella casella di posta entro pochi secondi
  • ☐ Elabora l’ordine attraverso ogni stato — ogni email arriva
  • ☐ Testa il reset della password, la creazione dell’account, il modulo di contatto

Passaggio 5: Monitoraggio

  • ☐ Registrati su Google Postmaster Tools
  • ☐ Configura l’elaborazione dei report DMARC
  • ☐ Aggiorna DMARC a p=quarantine dopo 2-4 settimane, poi p=reject
  • ☐ Pianifica controlli mensili sulla deliverability

Passaggio 6: Avanzato

  • ☐ Migra a un servizio transazionale se raggiungi i limiti dell’hosting
  • ☐ Separa le email transazionali e di marketing su domini diversi
  • ☐ Imposta il record PTR se sei su VPS/dedicato
  • ☐ Implementa la gestione dei bounce

Ogni livello — SMTP, SPF, DKIM, DMARC, template puliti, IP con buona reputazione — aggiunge credibilità. Saltane uno e il sistema si indebolisce. Lavora su questa checklist in modo metodico, testa dopo ogni modifica, e le email del tuo PrestaShop raggiungeranno la casella di posta. Per passaggi diagnostici generali, consulta la nostra guida alla risoluzione dei problemi.

More guides available

Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.

Loading...
Back to top