Hai configurato Odoo, hai attivato la fatturazione elettronica, hai messo a posto i listini. Poi il cliente ti chiama: “il preventivo non mi è mai arrivato”. Lo cerchi: è nello spam. Oppure non è proprio partito.
È uno dei problemi più sottovalutati nei progetti ERP, e uno dei più costosi: un gestionale che manda email non recapitate è un gestionale che non funziona. Preventivi, conferme d’ordine, solleciti di pagamento, notifiche di spedizione, reset password del portale: tutta la comunicazione transazionale passa da lì.
In questa guida vediamo perché succede, come funziona davvero l’invio email in Odoo, e come si configura una deliverability solida con un provider dedicato come Amazon SES.
Implementazione Odoo
Implementare Odoo da soli è rischioso.
Lo abbiamo fatto per decine di PMI manifatturiere italiane. Solo senior, nessun junior. Risultati in tempi certi, senza sorprese.
Guida a cura di Davide Caio, CTO di Maia Management, partner Odoo per le PMI manifatturiere e commerciali italiane.
Perché le email di Odoo finiscono nello spam
Il problema quasi mai è Odoo. Il problema è l’autenticazione del dominio.
Quando Odoo invia una mail per conto di amministrazione@tuaazienda.it, il server ricevente (Gmail, Outlook, il server del tuo cliente) si fa tre domande:
- SPF: questo server è autorizzato a inviare mail per il dominio
tuaazienda.it? - DKIM: il messaggio ha una firma crittografica valida che dimostra che non è stato alterato e che proviene da chi dice?
- DMARC: cosa devo fare se SPF o DKIM falliscono? E i domini dichiarati sono allineati con quello del mittente?
Se le risposte non tornano, il messaggio viene declassato (spam) o rifiutato. Le grandi caselle (Gmail, Yahoo, Microsoft) hanno alzato molto l’asticella negli ultimi anni: l’invio non autenticato oggi è di fatto penalizzato per impostazione predefinita.
Il secondo grande fattore è la reputazione dell’IP e del dominio. Se invii da un IP condiviso con migliaia di altri mittenti, inclusi quelli che fanno spam, erediti la loro reputazione. Ecco perché un provider dedicato fa la differenza.
Come funziona davvero l’invio email in Odoo
Prima di configurare qualsiasi cosa, va capito il meccanismo interno. Qui si annidano gli errori più comuni.
Il server di posta in uscita e il from_filter
In Odoo configuri uno o più server di posta in uscita (Impostazioni tecniche → Server email in uscita). Ogni server ha un campo chiave: il filtro FROM (from_filter).
Odoo, quando deve inviare, cerca il server adatto confrontando l’indirizzo del mittente con il from_filter:
- Se esiste un server il cui filtro corrisponde al dominio del mittente, Odoo usa quel server e preserva il mittente reale. È lo scenario che vuoi.
- Se nessun server ha un filtro corrispondente, Odoo può riscrivere il FROM con l’indirizzo predefinito del dominio alias. Il risultato: le mail partono da un mittente che non è quello che ti aspetti, e la persona che risponde scrive a un indirizzo sbagliato.
Questa è la causa di gran parte dei “ma perché le mail partono da un altro indirizzo?”.
Il dominio alias e il mittente predefinito
Odoo 19 gestisce il mittente predefinito tramite il dominio alias (mail.alias.domain), che ha un proprio campo default from. È lì che si imposta l’indirizzo di fallback.
Attenzione a un mito tecnico diffuso: il vecchio parametro di sistema
mail.default.fromnon ha effetto in Odoo 19. Se cerchi online guide datate, rischi di perdere ore su una configurazione che non fa nulla. Il posto giusto è ildefault_fromsul dominio alias.
Return-Path e bounce
Il Return-Path (o envelope sender) è l’indirizzo a cui tornano i messaggi non recapitati. È tecnicamente distinto dal mittente visibile. Per l’allineamento DMARC via SPF, il dominio del Return-Path deve appartenere al tuo dominio: per questo con Amazon SES si configura un MAIL FROM personalizzato (es. bounce.tuodominio.it).
Perché Amazon SES (e quando non serve)
Amazon SES (Simple Email Service) è un servizio di invio email transazionale. Non è l’unica opzione, esistono alternative equivalenti, ma è quella che usiamo più spesso, per tre motivi pratici:
- Costo bassissimo rispetto ai volumi transazionali di una PMI
- Reputazione gestibile: puoi monitorare bounce e reclami, e in caso di volumi importanti usare IP dedicati
- Controllo completo su MAIL FROM personalizzato, DKIM e verifica del dominio
Quando NON ti serve un provider dedicato: se invii pochissime email, tutte interne, e il tuo provider di posta aziendale (es. Google Workspace o Microsoft 365) è già autenticato correttamente e permette il relay SMTP autenticato dal tuo Odoo, puoi restare lì. Il salto a SES ha senso quando i volumi crescono, quando la deliverability è critica (fatture, solleciti) o quando il tuo provider inizia a limitarti.
La configurazione corretta, passo per passo
1. Verifica il dominio su SES
Aggiungi il dominio e completa la verifica. Attiva la firma DKIM: SES ti fornisce i record da pubblicare nel DNS (tipicamente tre record CNAME per la rotazione delle chiavi).
2. Configura un MAIL FROM personalizzato
Imposta un sottodominio dedicato ai bounce, per esempio bounce.tuodominio.it. Serve a far sì che il Return-Path sia sul tuo dominio: è ciò che permette l’allineamento SPF ai fini DMARC. Va pubblicato un record MX e un record SPF (TXT) per quel sottodominio.
3. Pubblica i record DNS
- SPF sul dominio di invio: includi il meccanismo di SES (
include:amazonses.com) nel tuo record TXT esistente. Attenzione: un solo record SPF per dominio, e massimo 10 lookup DNS. Sommare piùinclude:senza criterio rompe SPF silenziosamente. - DKIM: i CNAME forniti da SES.
- DMARC: parti in modalità osservazione (
p=none) con un indirizzo per i report aggregati, verifica che tutto sia allineato, e solo dopo irrigidisci la policy (quarantine, poi eventualmentereject).
Non partire da
p=reject“per sicurezza”. Se qualcosa non è allineato, blocchi le tue stesse mail.
4. Configura Odoo
- Crea il server di posta in uscita con le credenziali SMTP di SES (utente e password SMTP generati da SES: non sono le tue chiavi API AWS).
- Imposta il
from_filtersul tuo dominio (es.tuodominio.it), così Odoo usa quel server e preserva il mittente reale. - Imposta il dominio alias e il suo
default_fromin modo coerente. - Se sei su Odoo Online o Odoo.sh, ricorda che l’infrastruttura è gestita: la configurazione avviene comunque a livello di server di posta in uscita e DNS, non di sistema operativo.
5. Esci dalla sandbox
SES parte in modalità sandbox: puoi inviare solo a indirizzi verificati. Va richiesto l’accesso alla produzione prima del go-live: è un passaggio che, se scoperto all’ultimo, ti fa saltare la pianificazione.
Guida gratuita in PDF
Odoo è la scelta giusta per la tua azienda?
Una guida di 35 pagine per capire se Odoo è adatto alla tua PMI: criteri di valutazione, costi reali, errori da evitare. Scritta da chi implementa Odoo ogni giorno, senza gergo tecnico.
Scarica la guida gratuita →6. Testa davvero
Non fidarti di “a me arriva”. Invia a caselle Gmail, Outlook e a un dominio aziendale con filtri severi. Controlla negli header che SPF, DKIM e DMARC risultino tutti pass, e che il dominio DKIM sia allineato con quello del mittente.
Gli errori che vediamo più spesso
- Più record SPF sullo stesso dominio. Ne vale uno solo: il secondo invalida tutto.
- Superare i 10 lookup DNS in SPF accumulando
include:di ogni servizio mai usato. - DKIM configurato ma non allineato al dominio del mittente: DMARC fallisce comunque.
- Nessun MAIL FROM personalizzato, quindi Return-Path su dominio del provider e SPF non allineato.
from_filtervuoto, quindi Odoo riscrive il mittente e le risposte finiscono nel vuoto.- Restare in sandbox SES e accorgersene al go-live.
- Cercare
mail.default.from: in Odoo 19 non fa nulla. - Ignorare bounce e reclami: la reputazione si costruisce nel tempo e si distrugge in fretta. Se mandi a indirizzi inesistenti, peggiori il tuo tasso di recapito per tutti gli altri.
Domande frequenti
La deliverability è un problema di Odoo?
No. Odoo si limita a consegnare il messaggio al server SMTP che gli indichi. Il recapito dipende da autenticazione del dominio (SPF/DKIM/DMARC), reputazione del mittente e qualità della lista. Odoo però ha una sua logica interna di selezione del server e riscrittura del mittente, che va conosciuta per non fare danni.
Serve Enterprise per configurare tutto questo?
No. La configurazione dei server di posta in uscita e dei domini alias è disponibile a prescindere dall’edizione. Cambia il contesto di hosting (Online, Odoo.sh, on-premise), non la funzione.
Posso usare la PEC per inviare le fatture?
Per l’invio delle fatture elettroniche al Sistema di Interscambio, Odoo trasmette tramite il proprio canale verso lo SdI, non via PEC. La deliverability di cui parliamo qui riguarda le email ordinarie del gestionale (preventivi, conferme, solleciti, notifiche), che sono un canale diverso e altrettanto importante.
Quanto costa Amazon SES?
Il costo è a volume ed è molto contenuto per i volumi transazionali tipici di una PMI. La voce di spesa vera non è il servizio: è la configurazione fatta bene e il monitoraggio nel tempo.
Come faccio a sapere se ho un problema, oggi?
Attiva DMARC in modalità osservazione con report aggregati. Nel giro di qualche giorno hai un quadro oggettivo di chi invia per conto del tuo dominio e di cosa passa o fallisce.
In conclusione
La deliverability non è un dettaglio sistemistico: è la differenza tra un preventivo che arriva e uno che sparisce. Ed è un’area dove la maggior parte dei progetti Odoo viene consegnata incompleta, perché è considerata “roba di rete” e rimandata a dopo il go-live.
In Maia la trattiamo come parte integrante dell’implementazione: SPF, DKIM, DMARC, MAIL FROM dedicato, from_filter corretto, uscita dalla sandbox e test reali prima del go-live.
Le tue email di Odoo arrivano davvero? Se non lo sai con certezza, la risposta è probabilmente no. Scrivici e facciamo un check.