PrestaShop 9 non invia le email via SMTP: il bug della porta 587

Strumenti · 6 min di lettura

PrestaShop 9 non invia le email via SMTP: il bug della porta 587

Lunedì mattina. Un cliente ti scrive per chiederti se il suo ordine di sabato è arrivato, perché non ha ricevuto niente. Apri il back office ed è lì, pagato. Anche quello di domenica, e tutti quelli della settimana. Il tuo negozio vende, ma da quando sei passato a PrestaShop 9 non è arrivata una sola email a nessuno.

Se invii con il tuo server di posta —quello di Aruba, OVH, Microsoft 365, Gmail o del tuo hosting— sulla porta 587, non hai configurato niente di sbagliato. È un bug di PrestaShop 9 presente in tutte le versioni dalla 9.0.0 alla 9.1.5, e corretto solo nella 9.2, pubblicata il 30 settembre 2026.

Come capire se è questo

Vai su Parametri Avanzati → Logs. Se ogni ordine ha lasciato una riga simile a questa, è il tuo caso:

Mailer Error: Connection could not be
established with host
"ssl://smtps.aruba.it:587":
stream_socket_client(): SSL operation
failed with code 1. OpenSSL Error
messages: error:0A00010B:SSL
routines::wrong version number

Il nome del server sarà il tuo. Quello che tradisce il bug è il ssl:// davanti e il :587 in fondo. Lo stesso messaggio compare subito se premi «Invia un'email di prova» in Parametri Avanzati → Email.

La parte subdola è tutto quello che non succede. Il cliente non vede nessun errore, l'ordine viene salvato e il pagamento va a buon fine. Per questo ci vogliono giorni per accorgersene, e quasi sempre è un cliente ad avvisarti, chiedendo la fattura o il numero di tracking.

Cosa è cambiato in PrestaShop 9

Ci sono due modi di cifrare la conversazione con un server di posta. In uno si cifra fin dal primo secondo, ed è quello che si aspetta la porta 465. Nell'altro ci si saluta prima in chiaro e subito dopo si chiede di passare a una conversazione cifrata: è la porta 587. Sono due porte diverse e ognuna si aspetta che bussi a modo suo.

Fino a PrestaShop 8, l'opzione «TLS» del back office bussava alla porta 587 come quella porta si aspetta. PrestaShop 9 ha cambiato il componente con cui invia la posta (da SwiftMailer a Symfony Mailer) e, già che c'era, quello che fa quell'opzione: ora «TLS» cifra fin dal primo secondo. Bussa alla 587 come se fosse la 465, il server risponde con un saluto normale e PrestaShop, che si aspettava una risposta cifrata, non capisce niente. Ecco il «wrong version number».

Per questo si rompe proprio quando aggiorni dalla 8 alla 9: gli stessi dati che funzionavano smettono di funzionare senza che tu abbia toccato niente. E per questo è sparita l'opzione «SSL» di prima: in PrestaShop 9 il menu del criptaggio offre solo «Nessuno» e «TLS».

Come sistemarlo oggi, senza toccare codice

Si cambia in Parametri Avanzati → Email, con «Imposta parametri SMTP personali» selezionato. Cosa mettere dipende dalle porte che accetta il tuo provider, e l'abbiamo verificato uno per uno sui server di undici provider:

  • Se il tuo provider accetta la 465 —Aruba (smtps.aruba.it), Gmail, IONOS, Brevo o la posta inclusa negli hosting OVH (MX Plan, ssl0.ovh.net)—: criptaggio TLS e porta 465. È così che è configurato il nostro negozio, che gira su PrestaShop 9.
  • Se il tuo provider accetta solo la 587 —Microsoft 365 (smtp.office365.com), Email Pro di OVH (pro1, pro2 o pro3.mail.ovh.net) ed Exchange di OVH—: criptaggio Nessuno e porta 587. Con questi, in 9.0 e 9.1, «TLS» non funziona su nessuna porta.

Sappiamo che la seconda fa un po' paura, perché dice «Nessuno». Ma non vuol dire che la tua password viaggi in chiaro. Con quell'opzione PrestaShop 9 saluta in chiaro e, appena il server propone di cifrare —tutti questi lo fanno—, cifra la conversazione prima di inviare utente e password. L'abbiamo verificato sui server di Microsoft 365 e di OVH: la connessione risulta cifrata (TLS 1.3 su Microsoft, TLS 1.2 su OVH) prima che parta qualsiasi dato.

Salva, invia l'email di prova e, se arriva, hai finito: gli ordini che entrano da adesso inviano le loro email. Quelli rimasti per strada non ripartono da soli. Nella scheda di ogni ordine, nello storico degli stati, il pulsante «Rimanda email» invia di nuovo l'email di quello stato, come quella del pagamento accettato o dell'ordine spedito.

La trappola se arrivi da PrestaShop 8 con SSL

Se in PrestaShop 8 avevi scelto «SSL» con la porta 465, dopo l'aggiornamento continua a inviare: PrestaShop 9 conserva quel valore e lo tratta come il suo «TLS». Il problema arriva il giorno in cui apri quella pagina e salvi, anche solo per cambiare altro. Siccome «SSL» non è più nel menu, il back office mostra «Nessuno», ed è quello che viene salvato. Con «Nessuno» e la 465 il negozio resta ad aspettare una risposta che non arriva, e il log dice Connection to "…:465" timed out.

L'abbiamo riprodotto sul nostro negozio di prova. Prima di salvare qualsiasi cosa in quella pagina, controlla che il criptaggio dica quello che vuoi tu.

E in PrestaShop 9.2

La 9.2 lo corregge alla radice: «TLS» torna a funzionare sulla 587, come in PrestaShop 8. È la modifica 42197 del progetto, che chiude una segnalazione aperta ad agosto 2024. Non è arrivata in tempo per la 9.1.5, l'ultima della serie 9.1: se sei su una qualsiasi 9.0 o 9.1, hai il bug.

Quello che imposti oggi seguendo questo articolo continua a valere dopo l'aggiornamento —«TLS» con la 465 e «Nessuno» con la 587 inviano allo stesso modo nella 9.2—, quindi non c'è niente da disfare. Sistema la posta adesso e aggiorna quando ti conviene, senza fretta: la 9.2 porta cambiamenti grossi, come il nuovo checkout in una sola pagina, e i tuoi moduli di pagamento e di spedizione devono essere pronti. Un aggiornamento così si prova prima su una copia del negozio.

Se invii con Microsoft 365, segnati dicembre

Microsoft ha annunciato che a fine dicembre 2026 disattiverà per impostazione predefinita l'invio dalle applicazioni con utente e password, che è esattamente il modo in cui invia PrestaShop. L'amministratore del tuo account Microsoft potrà riattivarlo, e la data di rimozione definitiva verrà annunciata nella seconda metà del 2027. Se il tuo negozio dipende da Microsoft 365 per inviare le email, è un buon momento per passarlo a un servizio di invio transazionale come Brevo o Mailjet e toglierti questa scadenza dalla testa.

Ancora niente?

Il log ti dice dove guardare. Se dice Failed to authenticate, è l'utente o la password: l'utente è sempre l'indirizzo completo, e in Microsoft 365 la casella deve avere attivo l'invio SMTP autenticato. Se dice timed out, o quella porta non esiste presso il tuo provider —Microsoft 365 ed Email Pro di OVH non hanno la 465—, o sei caduto nella trappola del menu, o il tuo hosting blocca l'uscita su quella porta.

E se preferisci che lo guardi qualcuno che l'ha già risolto, mandaci il messaggio del log e la tua versione di PrestaShop. Ti diciamo cosa mettere nel tuo caso e, se dietro c'è altro, lo rimettiamo in funzione.

Quando le tue email ripartono, fai in modo che valga la pena aprirle: ne parlavamo in la conferma d’ordine è la pagina peggiore del tuo negozio.

Raccontaci il tuo caso

Come possiamo aiutarti

Vedi tutti i servizi →

Continua a leggere

Ti diamo una mano con il tuo progetto? Parliamone

Raccontaci di cosa ha bisogno la tua attività

Un modulo, un’app, un server che dà problemi o solo un parere. La prima consulenza non costa nulla, e da lì esce un preventivo chiuso con prezzo e data.