Cómo solucionar el error 'PrestaShop no envía correos' (soluciones)
¿Por qué PrestaShop deja de enviar correos?
Que tu tienda deje de enviar emails es un problema más común de lo que parece. Los clientes no reciben confirmaciones de pedido, no llegan las alertas de nuevos pedidos y, en definitiva, la comunicación con tus clientes se rompe por completo. La buena noticia es que en la mayoría de los casos tiene una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto técnico.
El error prestashop no envia correos puede deberse a múltiples factores: desde una configuración incorrecta en el panel de administración hasta problemas con el servidor SMTP, pasando por conflictos con módulos o incluso bloqueos por parte de tu proveedor de hosting. Vamos a desgranar cada posible causa y te daremos la solución paso a paso.
Los 4 síntomas más habituales del error email PrestaShop
Antes de entrar en materia, conviene que identifiques qué tipo de problema estás experimentando exactamente. Esto te ayudará a aplicar la solución correcta:
- No se envía ningún correo: Ni a clientes ni a ti. Suele indicar un problema de configuración general o de servidor.
- Se envían algunos correos pero no todos: Por ejemplo, los pedidos llegan pero las contraseñas no. Esto apunta a problemas con plantillas o módulos específicos.
- Los correos se marcan como spam: Los emails llegan pero van a la carpeta de spam. Es un problema de reputación del dominio o de configuración del remitente.
- El error aparece solo en el envío de archivos adjuntos: Facturas o albaranes que no llegan. Indica un problema de permisos o de tamaño máximo permitido.
Solución 1: Configuración básica del envío de correos en PrestaShop
La primera parada obligatoria es la configuración nativa de PrestaShop. Es sorprendente cuántas veces el error email prestashop se soluciona simplemente ajustando estos parámetros.
Paso 1: Accede a la configuración de correo
Ve a Parámetros avanzados → E-mail en tu panel de administración de PrestaShop. Aquí es donde se gestiona todo el envío de correos.
Paso 2: Elige el método de envío correcto
PrestaShop ofrece dos métodos principales:
- Usar la función mail() de PHP: Es la opción más sencilla, pero también la más propensa a fallos. Muchos servidores la bloquean por seguridad o por problemas de configuración.
- Usar SMTP: Es la opción más fiable y recomendada. Utiliza un servidor de correo externo (como Gmail, Outlook o el de tu hosting) para enviar los emails.
[TIP] Si tu hosting usa Syspanel (accesible por el puerto 2106), es muy probable que tengas que configurar SMTP manualmente, ya que la función mail() de PHP suele estar deshabilitada por seguridad.
Paso 3: Configura los parámetros SMTP
Si eliges SMTP, deberás rellenar los siguientes campos:
- Servidor SMTP: Por ejemplo,
smtp.gmail.comomail.tudominio.com. - Puerto: Normalmente 465 (SSL) o 587 (TLS).
- Cifrado: SSL o TLS según el puerto elegido.
- Usuario y contraseña: Las credenciales de tu cuenta de correo.
[WARNING] Asegúrate de que la contraseña no tenga caracteres especiales que puedan dar problemas. Si tu contraseña tiene símbolos como #, @ o !, considera cambiarla temporalmente para probar.
Paso 4: Guarda y prueba
Después de guardar los cambios, PrestaShop te ofrece la opción de enviar un email de prueba. Aprovecha esta función para verificar si la configuración funciona. Si no recibes el correo, revisa la carpeta de spam.
Solución 2: Problemas con el servidor de hosting
A veces el problema no está en PrestaShop sino en el servidor donde está alojada tu tienda. Los proveedores de hosting suelen tener políticas estrictas sobre el envío de correos para evitar el spam.
Verifica los registros DNS (SPF y DKIM)
Si los correos se envían pero no llegan o van a spam, es muy probable que los registros DNS de tu dominio no estén correctamente configurados. Los dos más importantes son:
- SPF (Sender Policy Framework): Indica qué servidores están autorizados a enviar correos en nombre de tu dominio.
- DKIM (DomainKeys Identified Mail): Añade una firma digital que verifica que el correo es auténtico.
[INFO] Para configurar estos registros, tendrás que acceder al panel de administración de tu dominio. Si tu hosting usa Syspanel, recuerda que el acceso se realiza a través del puerto 2106.
Comprueba si el puerto SMTP está bloqueado
Algunos servidores bloquean los puertos SMTP (25, 465, 587) por defecto. Esto es especialmente común en servidores compartidos. Puedes verificar si el puerto está abierto usando herramientas online como portchecker.co o desde la línea de comandos con telnet.
Políticas de límite de envío
Muchos hostings limitan el número de correos que puedes enviar por hora o por día. Si superas ese límite, los correos se bloquean silenciosamente. Consulta con tu proveedor de hosting cuáles son estos límites.
Solución 3: Conflictos con módulos o plantillas
Otra causa frecuente del error prestashop mail no funciona son los conflictos entre módulos o con la plantilla activa.
Desactiva módulos recientes
Si el problema comenzó después de instalar o actualizar un módulo, prueba a desactivarlo temporalmente. Ve a Módulos → Gestor de módulos y desactiva los que no sean esenciales.
Revisa las plantillas de correo
PrestaShop utiliza plantillas HTML para cada tipo de correo. Si alguna plantilla está corrupta o tiene errores de código, el correo no se enviará. Puedes restaurar las plantillas originales desde Diseño → Tema de email.
[TIP] Guarda siempre una copia de seguridad de tus plantillas personalizadas antes de restaurarlas.
Caché de plantillas
A veces el problema se debe a una caché de plantillas corrupta. Ve a Parámetros avanzados → Rendimiento y fuerza la recompilación de plantillas. También puedes borrar la caché manualmente eliminando los archivos de la carpeta var/cache/ mediante FTP o el administrador de archivos.
Solución 4: Problemas de permisos y archivos corruptos
Los archivos corruptos o con permisos incorrectos pueden impedir el envío de correos.
Verifica los permisos de las carpetas
PrestaShop necesita permisos de escritura en varias carpetas para poder generar y enviar correos. Las carpetas principales son:
var/var/logs/var/cache/var/mails/
Los permisos correctos suelen ser 755 para directorios y 644 para archivos.
Comprueba la integridad de los archivos
Si sospechas que algún archivo está corrupto, puedes comparar tu instalación con una copia limpia de PrestaShop de la misma versión. Esto es especialmente importante para los archivos de las clases de correo (classes/Mail.php).
Solución 5: Configuración avanzada de PHP
Los límites de PHP pueden causar problemas silenciosos en el envío de correos.
Aumenta los límites de PHP
Revisa y, si es necesario, aumenta los siguientes valores en tu archivo php.ini:
max_execution_time: Asegúrate de que sea al menos 300 segundos.memory_limit: Mínimo 256M, recomendable 512M.max_input_time: Al menos 300 segundos.
[WARNING] Si no tienes acceso al php.ini, puedes crear un archivo .htaccess en la raíz con las directivas php_value correspondientes, o usar el panel de control de tu hosting.
Verifica la versión de PHP
PrestaShop requiere una versión específica de PHP según la versión que uses. Por ejemplo, PrestaShop 8.x funciona mejor con PHP 7.4 o superior. Una versión incompatible puede causar errores en el envío de correos.
Solución 6: Solución definitiva usando un servicio SMTP externo
Si has probado todo lo anterior y el error prestashop no envia correos persiste, la solución más robusta es utilizar un servicio SMTP externo. Servicios como SendGrid, Mailgun o Amazon SES son altamente fiables y tienen tasas de entrega muy superiores a las de un servidor compartido.
Ventajas de usar un SMTP externo
- Mayor tasa de entrega: Sus servidores tienen mejor reputación y los correos llegan antes y mejor.
- Análisis y estadísticas: Puedes ver métricas de apertura, clics y rebotes.
- Escalabilidad: No tienes que preocuparte por los límites de tu hosting.
Configuración paso a paso
- Crea una cuenta en el servicio SMTP de tu elección.
- Verifica tu dominio siguiendo las instrucciones del proveedor.
- Obtén las credenciales SMTP (usuario, contraseña, servidor, puerto).
- Introduce estos datos en Parámetros avanzados → E-mail de PrestaShop.
- Realiza una prueba de envío.
Preguntas frecuentes sobre el error email PrestaShop
¿Por qué PrestaShop no envía correos a Gmail?
El problema más común con Gmail es que los correos se marcan como spam. Esto se debe a que el servidor de tu hosting tiene una reputación baja o los registros SPF/DKIM no están configurados correctamente. La solución es configurar SMTP con autenticación y verificar los registros DNS.
¿Cómo puedo saber si el problema es de configuración o del servidor?
Activa el modo de depuración de PrestaShop (en Parámetros avanzados → Información). Esto te mostrará los errores exactos que ocurren durante el envío. Si el error indica un problema de conexión SMTP, el problema es del servidor. Si indica un error de autenticación, es de configuración.
¿Qué hago si los correos se envían pero no llegan?
Primero verifica la carpeta de spam. Si están ahí, el problema es de reputación del servidor. Si no llegan en absoluto, revisa los registros DNS y considera cambiar a un servicio SMTP externo.
¿Puedo usar mi cuenta de Gmail como SMTP para PrestaShop?
Sí, es posible, pero no recomendable para tiendas con alto volumen de correos. Gmail tiene límites de envío (500 correos por día) y puede bloquear la cuenta si detecta actividad sospechosa.
¿El error puede deberse a una actualización de PrestaShop?
Sí, las actualizaciones pueden cambiar la configuración de correo o introducir incompatibilidades con módulos. Si el problema comenzó después de una actualización, revisa los módulos de correo y las plantillas.
Resumen y recomendaciones finales
El error prestashop mail no funciona es frustrante, pero como has visto, tiene solución en la mayoría de los casos. Te recomendamos seguir este orden de actuación:
- Revisa la configuración básica en Parámetros avanzados → E-mail.
- Cambia a SMTP con autenticación en lugar de usar mail().
- Verifica los registros DNS (SPF y DKIM) de tu dominio.
- Comprueba los permisos de las carpetas y archivos.
- Desactiva módulos recientes para descartar conflictos.
- Si nada funciona, opta por un servicio SMTP externo.
Recuerda que la paciencia es clave. A veces el problema no es inmediatamente visible y requiere probar varias soluciones. Y si tu hosting usa Syspanel (recuerda, el acceso es a través del puerto 2106), no dudes en consultar su documentación o soporte técnico, ya que suelen tener guías específicas para la configuración de correos en PrestaShop.
Con estas soluciones, tu tienda volverá a estar operativa y tus clientes recibirán todas las notificaciones sin problemas. ¡Mucha suerte!
