PrestaShop 9 no envía correos por SMTP: el fallo del puerto 587

Herramientas · 6 min de lectura

PrestaShop 9 no envía correos por SMTP: el fallo del puerto 587

Lunes por la mañana. Un cliente te escribe para preguntar si su pedido del sábado ha entrado, porque no le ha llegado nada. Abres el panel y ahí está, pagado. Y el del domingo, y los de toda la semana. Tu tienda vende, pero desde que pasaste a PrestaShop 9 no le ha llegado un solo correo a nadie.

Si envías con tu propio servidor de correo —el de OVH, Microsoft 365, Gmail o el de tu hosting— por el puerto 587, no has configurado nada mal. Es un fallo de PrestaShop 9 que está en todas las versiones desde la 9.0.0 hasta la 9.1.5, y que no se ha corregido hasta la 9.2, publicada el 30 de septiembre de 2026.

Cómo saber si es esto

Entra en Parámetros Avanzados → Registros/Logs. Si cada pedido te ha dejado una línea parecida a esta, es tu caso:

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

El nombre del servidor será el tuyo. Lo que delata el fallo es que delante ponga ssl:// y detrás :587. El mismo mensaje te sale al momento si pulsas «Enviar un correo electrónico de prueba» en Parámetros Avanzados → Dirección de correo electrónico.

Lo traicionero es todo lo que no pasa. El cliente no ve ningún error, el pedido se guarda y el pago entra. Por eso se tarda días en descubrir, y casi siempre es un cliente quien te avisa, preguntando por su factura o por el número de seguimiento.

Qué ha cambiado en PrestaShop 9

Hay dos formas de cifrar la conversación con un servidor de correo. En una se cifra desde el primer segundo, y es la que espera el puerto 465. En la otra se saluda primero sin cifrar y justo después se pide pasar a una conversación cifrada: es la del puerto 587. Son dos puertas distintas y cada una espera que llames a su manera.

Hasta PrestaShop 8, la opción «TLS» del panel llamaba a la puerta del 587 como esa puerta espera. PrestaShop 9 cambió la pieza con la que envía el correo (pasó de SwiftMailer a Symfony Mailer) y, de paso, lo que hace esa opción: ahora «TLS» cifra desde el primer segundo. Llama al 587 como si fuera el 465, el servidor le contesta con un saludo normal y PrestaShop, que esperaba una respuesta cifrada, no entiende nada. Eso es el «wrong version number».

Por eso salta justo al actualizar de la 8 a la 9: los mismos datos que funcionaban dejan de hacerlo sin que hayas tocado nada. Y por eso ha desaparecido la opción «SSL» que había antes: en PrestaShop 9 el desplegable de cifrado solo ofrece «Ninguno» y «TLS».

Cómo arreglarlo hoy, sin tocar código

Se cambia en Parámetros Avanzados → Dirección de correo electrónico, con «Establecer mis propios parámetros SMTP» marcado. Lo que tienes que poner depende de los puertos que acepte tu proveedor, y lo hemos comprobado uno a uno contra los servidores de once proveedores:

  • Si tu proveedor acepta el 465 —el correo que viene con los hostings de OVH (MX Plan, ssl0.ovh.net), Gmail, IONOS, Hostinger o Brevo—: cifrado TLS y puerto 465. Así está configurada nuestra propia tienda, que funciona con PrestaShop 9.
  • Si tu proveedor solo acepta el 587 —Microsoft 365 (smtp.office365.com), Email Pro de OVH (pro1, pro2 o pro3.mail.ovh.net) y Exchange de OVH—: cifrado Ninguno y puerto 587. Con estos, en 9.0 y 9.1, «TLS» no funciona en ningún puerto.

Sabemos que lo segundo da reparo, porque pone «Ninguno». Pero no significa que tu contraseña viaje a la vista. Con esa opción, PrestaShop 9 saluda sin cifrar y, en cuanto el servidor le ofrece cifrar —todos estos lo ofrecen—, cifra la conversación antes de mandar el usuario y la contraseña. Lo hemos comprobado contra los servidores de Microsoft 365 y de OVH: la conexión queda cifrada (TLS 1.3 en Microsoft, TLS 1.2 en OVH) antes de que salga ningún dato.

Guarda, envía el correo de prueba y, si llega, ya está: los pedidos que entren a partir de ahora mandan sus correos. Los que se quedaron por el camino no se reenvían solos. En la ficha de cada pedido, en el historial de estados, el botón «Reenviar email» vuelve a mandar el correo de ese estado, como el de pago aceptado o el de pedido enviado.

La trampa si vienes de PrestaShop 8 con SSL

Si en PrestaShop 8 tenías elegido «SSL» con el puerto 465, después de actualizar te sigue enviando: PrestaShop 9 conserva ese valor y lo trata como su «TLS». El problema llega el día que abres esa página y guardas, aunque sea para cambiar otra cosa. Como «SSL» ya no está en el desplegable, el panel te enseña «Ninguno», y eso es lo que se guarda. Con «Ninguno» y el 465 la tienda se queda esperando una respuesta que no llega, y el registro dice Connection to "…:465" timed out.

Lo hemos reproducido en nuestra tienda de pruebas. Antes de guardar nada en esa página, mira que el cifrado diga lo que tú quieres.

Y en PrestaShop 9.2

La 9.2 lo corrige de raíz: «TLS» vuelve a funcionar en el 587, como en PrestaShop 8. Es el cambio 42197 del proyecto, que cierra una incidencia abierta en agosto de 2024. No llegó a la 9.1.5, la última de la serie 9.1: si estás en cualquier 9.0 o 9.1, tienes el fallo.

Lo que pongas hoy siguiendo este artículo sigue valiendo después de actualizar —«TLS» con el 465 y «Ninguno» con el 587 envían igual en la 9.2—, así que no hay nada que deshacer. Arregla el correo ahora y actualiza cuando te convenga, sin prisas: la 9.2 trae cambios grandes, como el nuevo proceso de compra en una sola página, y tus módulos de pago y de envío tienen que estar preparados. Una actualización así se prueba antes en una copia de la tienda.

Si envías con Microsoft 365, apunta diciembre

Microsoft ha anunciado que a finales de diciembre de 2026 dejará desactivado por defecto el envío desde aplicaciones con usuario y contraseña, que es justo como envía PrestaShop. El administrador de tu cuenta de Microsoft podrá volver a activarlo, y la retirada definitiva la anunciarán en la segunda mitad de 2027. Si tu tienda depende de Microsoft 365 para mandar sus correos, es buen momento para pasarla a un servicio de envío transaccional como Brevo o Mailjet y quitarte esa fecha de encima.

¿Sigue sin salir?

El registro te dice por dónde seguir. Si pone Failed to authenticate, es el usuario o la contraseña: el usuario es siempre la dirección completa, y en Microsoft 365 el buzón tiene que tener activado el envío autenticado. Si pone timed out, o ese puerto no existe en tu proveedor —Microsoft 365 y Email Pro de OVH no tienen el 465—, o te ha pasado lo del desplegable, o tu hosting no deja salir por ese puerto.

Y si prefieres que lo mire alguien que ya lo ha resuelto, mándanos el mensaje del registro y tu versión de PrestaShop. Te decimos qué poner en tu caso y, si hay algo más detrás, lo dejamos funcionando.

Cuando tus correos vuelvan a salir, que merezca la pena abrirlos: lo contábamos en el correo de confirmación es la peor página de tu tienda.

Cuéntanos tu caso

Cómo te podemos ayudar

Ver todos los servicios →

Seguir leyendo

¿Te echamos una mano con tu proyecto? Hablemos

Cuéntanos qué necesita tu negocio

Un módulo, una app, un servidor que da guerra o solo una opinión. La primera consulta no cuesta nada, y de ahí sale un presupuesto cerrado con precio y fecha.