Solución: No se envía el correo de pedido en PrestaShop con Plesk
¿Por qué PrestaShop no envía los correos de pedido en Plesk?
Es una de las consultas más frecuentes que recibimos en soporte. Acabas de configurar tu tienda online, un cliente realiza su primer pedido y, de repente, el correo de confirmación nunca llega. Ni al cliente ni a ti. El pedido está en el panel de administración, pero el email brilla por su ausencia.
Este problema suele aparecer cuando tu tienda PrestaShop está alojada en un servidor con panel Plesk. La causa principal no suele ser un fallo de tu tienda, sino una combinación de configuración de PHP, los ajustes SMTP del propio panel y la forma en que PrestaShop gestiona el envío de correos.
La buena noticia es que tiene solución. Y casi siempre, puedes resolverlo tú mismo siguiendo una serie de pasos lógicos. Vamos a desgranarlos uno a uno, desde lo más básico hasta lo más técnico, para que tu tienda vuelva a enviar todos los correos de pedido sin contratiempos.
Primero, diagnostiquemos el origen del problema
Antes de tocar nada, necesitas saber si el problema es global (no se envía ningún correo) o específico (solo fallan los de pedido). Para ello, PrestaShop incluye una herramienta muy útil.
El botón de prueba de envío de correo
Accede a tu panel de administración de PrestaShop y sigue esta ruta:
- Ve a Parámetros avanzados.
- Dentro de este menú, busca E-mail.
- Verás la configuración general de correo. En esta pantalla, hay un botón llamado Enviar un email de prueba.
- Introduce la dirección de correo a la que quieres que llegue la prueba y pulsa el botón.
Si recibes el correo de prueba, significa que la configuración base de PHP mail o SMTP funciona. El problema sería específico de las plantillas de pedido o de los hooks de correo.
Si no recibes el correo de prueba, el problema está en la configuración base del envío de emails. Sigue leyendo, porque vamos a solucionarlo.
Solución paso a paso para configurar el email en PrestaShop con Plesk
Vamos a dividir la solución en dos frentes: usar la función mail() de PHP (lo más sencillo) o configurar un servidor SMTP de verdad. Te recomiendo empezar por la primera.
Opción 1: Usar la función mail() de PHP (la más rápida)
En muchos servidores Plesk, la función mail() de PHP está deshabilitada o mal configurada por defecto. Vamos a revisarla.
Paso 1: Verifica que la función mail() esté activa
Plesk a veces configura PHP con la función mail() deshabilitada por seguridad. Para comprobarlo:
- Accede a Plesk.
- Ve a Hosting y DNS > tu dominio.
- Busca la sección PHP o Configuración de PHP.
- Dentro de los ajustes, busca la lista de funciones deshabilitadas (suele ser un campo llamado
disable_functions). - Asegúrate de que
mailno aparezca en esa lista. Si aparece, elimínala y guarda los cambios.
Paso 2: Configura PrestaShop para usar mail()
Dentro de tu back-office de PrestaShop:
- Ve a Parámetros avanzados > E-mail.
- En Cómo enviar mensajes, selecciona Usar la función mail() de PHP.
- En Formato de los mensajes, elige Formato HTML (o texto plano, pero HTML es lo habitual).
- Guarda los cambios y vuelve a realizar la prueba de envío.
[TIP] Si tu servidor usa PHP 8.0 o superior y el envío falla, puede deberse a incompatibilidades con funciones antiguas. Asegúrate de tener la última versión de PrestaShop instalada, ya que las versiones antiguas no son compatibles con PHP 8.x.
Opción 2: Configurar SMTP manualmente (la más fiable)
Si la función mail() de PHP no te funciona o tu hosting la bloquea, la solución definitiva es configurar un servidor SMTP. Plesk incluye un servidor de correo (normalmente Postfix o Qmail) que puedes utilizar.
Paso 1: Crea una cuenta de correo específica para el envío
Es una buena práctica no usar tu correo personal. Crea una cuenta específica en tu dominio, por ejemplo, pedidos@tudominio.com.
- En Plesk, ve a Correo.
- Crea una nueva cuenta de correo. La llamaremos
pedidos@tudominio.comy le pondremos una contraseña segura. - Asegúrate de que la cuenta esté activa.
Paso 2: Configura PrestaShop con los datos SMTP de Plesk
Ahora, en tu back-office de PrestaShop:
-
Ve a Parámetros avanzados > E-mail.
-
En Cómo enviar mensajes, selecciona Usar mis propios parámetros SMTP. Se desplegarán varios campos nuevos.
-
Rellena los campos con estos datos:
- Servidor SMTP:
mail.tudominio.com(o el servidor que te indique tu proveedor). - Puerto SMTP:
465(si usas SSL) o587(si usas TLS). En Plesk, lo más común es el 465. - Cifrado: SSL o TLS (si elegiste el puerto 465, usa SSL; si elegiste el 587, usa TLS).
- Autenticación SMTP: Sí.
- Nombre de usuario:
pedidos@tudominio.com. - Contraseña: La contraseña que pusiste a esa cuenta de correo.
- Servidor SMTP:
-
Guarda los cambios y haz la prueba de envío.
[WARNING] Verifica que el puerto SMTP elegido esté abierto en tu firewall. En Plesk, a veces solo está abierto el 25 (no recomendado para envío autenticado). Si usas un puerto no estándar, el envío fallará. El 465 y el 587 suelen estar habilitados por defecto.
Problemas comunes con Plesk y sus soluciones específicas
A veces, la configuración es correcta pero el correo sigue sin salir. Aquí tienes las casuísticas más habituales que encontramos en Plesk.
El correo se envía pero cae en spam
Esto no es un fallo de envío, pero es igual de grave porque el cliente no lo ve. La causa principal es la falta de autenticación del dominio.
Solución: Configura los registros SPF y DKIM en Plesk.
- En Plesk, ve a tu dominio.
- Busca la sección Correo o Configuración de correo.
- Activa el DKIM (firmas de correo) y asegúrate de que el registro SPF esté publicado en el DNS. Plesk suele tener un botón para activar ambos automáticamente.
- Espera unas horas a que se propaguen los registros DNS y vuelve a probar.
El correo de pedido se envía, pero la plantilla sale sin formato
Esto suele pasar cuando usas la función mail() de PHP y el servidor no interpreta el HTML correctamente.
Solución: Cambia a SMTP como te he indicado antes. El envío a través de un servidor SMTP respeta mucho mejor el formato HTML de las plantillas de PrestaShop.
El error dice "No se puede enviar el correo" o "SMTP Error"
Este es un error genérico. Si has configurado SMTP y te sale este fallo, revisa:
- Credenciales incorrectas: Verifica que el usuario y la contraseña son exactamente los de la cuenta de correo.
- Puerto incorrecto: Prueba a cambiar entre el 465 y el 587.
- Cifrado incorrecto: Si usas el puerto 465, el cifrado debe ser SSL. Si usas el 587, debe ser TLS. Mezclarlos da error.
- El servidor SMTP no responde: A veces, el servidor de correo de Plesk está caído o sobrecargado. Contacta con tu proveedor de hosting para verificar el estado del servicio.
Cómo verificar los logs de correo en Plesk
Si nada de lo anterior funciona, necesitas ver los registros del servidor. No es tan complicado como parece.
- Accede a Plesk.
- Ve a Herramientas y ajustes.
- Busca la sección Registros o Logs.
- Dentro, busca los logs del servicio de correo (suele llamarse Mail o Postfix).
- Busca la hora exacta en la que intentaste enviar el correo de prueba. Ahí verás errores detallados como
Authentication failureoConnection refused.
[INFO] Si no te ves capaz de interpretar los logs, copia el texto del error y envíalo a tu proveedor de hosting. Ellos podrán decirte exactamente qué está fallando. Es la forma más rápida de solucionarlo si el problema es del servidor.
Ajustes avanzados de PrestaShop para el envío de correos
PrestaShop tiene algunos parámetros ocultos que pueden interferir con el envío de correos. Te recomiendo revisar estos dos:
El modo de mantenimiento
Si tu tienda está en modo mantenimiento, PrestaShop no envía correos de pedido por defecto. Es una protección para no spamear a los clientes mientras trabajas en la tienda.
Solución: Desactiva el modo mantenimiento en Parámetros generales > Mantenimiento. Si necesitas tener la tienda cerrada, activa la opción "Permitir el acceso a la tienda a las IPs" y añade tu IP para poder probar los correos.
La opción "Reducir el riesgo de fraude"
En Clientes > Grupos, a veces se configura una regla que bloquea el envío de correos a clientes nuevos si se supera un umbral de pedidos. Revisa esta configuración si el problema solo ocurre con clientes nuevos.
Conclusión: plan de acción rápido
Si estás frustrado, sigue esta lista de verificación. Es el orden lógico que yo usaría:
- Prueba el envío desde PrestaShop con la herramienta de prueba.
- Activa la función
mail()de PHP en Plesk si está deshabilitada. - Crea una cuenta de correo en tu dominio.
- Configura SMTP en PrestaShop con los datos de esa cuenta (puerto 465 y SSL).
- Comprueba los registros SPF y DKIM en Plesk para evitar spam.
- Desactiva el modo mantenimiento si está activo.
- Revisa los logs de correo en Plesk si el error persiste.
Preguntas frecuentes (FAQ) sobre el correo de PrestaShop en Plesk
¿Por qué PrestaShop no envía correos de pedido y sí otros?
Esto suele deberse a que los correos de pedido usan una plantilla diferente y un hook de ejecución distinto. Si la plantilla está corrupta o el módulo de pedidos tiene un conflicto, fallará solo ese tipo de correo. La solución es restaurar la plantilla de correo por defecto desde Diseño > Email.
¿Es mejor usar SMTP o la función mail() en Plesk?
SMTP siempre es más fiable. La función mail() depende de la configuración del servidor y es más fácil que falle. Con SMTP, PrestaShop se conecta directamente al servidor de correo, lo que garantiza una mayor tasa de entrega.
¿Puedo usar el correo de Gmail o Outlook en mi PrestaShop?
Sí, puedes, pero no es recomendable para una tienda online. Gmail y Outlook limitan el número de correos diarios y pueden bloquear tu cuenta si envías muchos correos de pedido. Además, es poco profesional que un pedido salga de una cuenta personal. Usa siempre un correo de tu propio dominio.
¿Qué hago si el correo de pedido se envía pero el cliente no lo recibe?
Revisa la bandeja de spam del cliente. Si está ahí, es un problema de reputación del dominio. Asegúrate de tener configurados el SPF y el DKIM. También puedes pedirle al cliente que te añada a su lista de remitentes seguros.
¿El puerto 25 funciona para SMTP en Plesk?
Técnicamente sí, pero la mayoría de los proveedores lo bloquean para evitar spam. No uses el puerto 25. Usa el 465 o el 587, que son los puertos estándar para envío autenticado y cifrado.
¿Qué pasa si mi hosting usa Syspanel en lugar de Plesk?
Si tu proveedor usa Syspanel (antes conocido como HestiaCP), el proceso es muy similar. La diferencia principal es que el acceso al panel se realiza a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). El resto de la configuración de SMTP es análoga: crea una cuenta de correo, usa el servidor mail.tudominio.com y configura PrestaShop con el puerto 465 y SSL. Los registros SPF y DKIM también se gestionan desde ese panel.
Con esta guía, deberías poder resolver el problema de los correos de pedido en PrestaShop con Plesk. Recuerda que la paciencia es clave y que el diagnóstico paso a paso es tu mejor aliado. Si has llegado hasta aquí y sigues sin solución, no dudes en contactar con tu proveedor de hosting, ya que el problema podría estar en la infraestructura del servidor.
