Solucionar problemas de envío de correos en PrestaShop con Plesk
¿Tienes tu tienda en PrestaShop y de repente los clientes te dicen que no reciben los emails de confirmación de pedido? ¿O tú mismo no estás recibiendo las notificaciones de nuevos pedidos? Es una situación muy frustrante, pero no te preocupes: es uno de los problemas más comunes y, por suerte, casi siempre tiene solución.
En esta guía completa, vamos a desglosar paso a paso cómo solucionar los problemas de envío de correos en PrestaShop cuando tu servidor utiliza Plesk. Te explicaré desde los ajustes básicos hasta la configuración SMTP (que es la más fiable), todo en un lenguaje sencillo y directo.
¿Por qué no funcionan los correos en PrestaShop?
Antes de meternos en faena, es útil entender por qué ocurre esto. PrestaShop, por defecto, intenta enviar correos usando la función mail() de PHP. En muchos servidores compartidos o configuraciones de Plesk, esta función está limitada, bloqueada o mal configurada por razones de seguridad.
Además, los servidores de correo modernos (como Gmail, Outlook o los propios servidores corporativos) son muy estrictos con los emails que parecen spam o que no están autenticados. Por eso, aunque el correo salga de tu servidor, puede acabar en la carpeta de spam o simplemente perderse.
La solución más efectiva y profesional es configurar un servidor SMTP externo o el propio servidor de correo de tu hosting (Plesk). Esto garantiza que los correos se entreguen correctamente.
Paso 1: Verifica la configuración básica de email en PrestaShop
Lo primero es asegurarte de que PrestaShop está configurado para usar el método de envío correcto.
- Accede al panel de administración de tu PrestaShop.
- Ve al menú Parámetros avanzados > Email.
- En la sección "Configuración de email", verás dos opciones principales:
- Utilizar la función mail() de PHP: Esta es la opción por defecto y la que suele dar problemas.
- Establecer mis propios parámetros SMTP: Esta es la que te recomiendo usar.
[INFO] Si ves que la opción de SMTP está en gris o no puedes seleccionarla, es posible que tu versión de PrestaShop tenga un bug. No te preocupes, lo solucionaremos más adelante.
Paso 2: Configura SMTP en PrestaShop para usar el servidor de Plesk
Esta es la parte clave. Vamos a configurar PrestaShop para que envíe los correos a través del servidor SMTP que gestiona Plesk. Para ello, necesitas tener creada una cuenta de correo en Plesk (por ejemplo, tienda@tudominio.com).
2.1. Obtén los datos de tu cuenta de correo en Plesk
- Accede a tu panel de Plesk.
- Ve a la sección Correo (o "Mail").
- Si no tienes una cuenta de correo, créala. Recuerda la dirección de email y la contraseña.
- Anota los siguientes datos (los necesitarás):
- Dirección de email completa:
tuemail@tudominio.com - Contraseña: La que hayas establecido.
- Servidor de correo saliente (SMTP): Normalmente es
mail.tudominio.comosmtp.tudominio.com. Si no estás seguro, en Plesk puedes verlo en la configuración de la cuenta. - Puerto SMTP: Los puertos más comunes son 587 (con STARTTLS) o 465 (con SSL). El 587 es el más recomendado y fiable.
- Autenticación SMTP: Sí, siempre debe estar activada.
- Dirección de email completa:
2.2. Introduce los datos en PrestaShop
Ahora vuelve a tu panel de PrestaShop, a Parámetros avanzados > Email.
- Selecciona la opción "Establecer mis propios parámetros SMTP".
- Rellena los campos con los datos que acabas de obtener:
- Servidor SMTP:
mail.tudominio.com(o el que te haya dado Plesk). - Puerto SMTP:
587(recomendado) o465. - Cifrado: Si usas puerto 587, selecciona TLS/STARTTLS. Si usas 465, selecciona SSL.
- Autenticación SMTP: Sí.
- Nombre de usuario SMTP: La dirección de email completa (
tuemail@tudominio.com). - Contraseña SMTP: La contraseña de esa cuenta de correo.
- Servidor SMTP:
- Haz clic en Guardar.
[WARNING] Si al guardar te da un error o no ves los campos, es que tu PrestaShop tiene un bug conocido. No te asustes, ve al siguiente paso para solucionarlo.
2.3. Solución al bug de los campos SMTP en PrestaShop
A veces, en versiones antiguas de PrestaShop (como la 1.6 o algunas 1.7), los campos de configuración SMTP no se muestran correctamente o se guardan en blanco. La solución manual es sencilla:
- Accede a tu Plesk y ve a Archivos (o "File Manager").
- Navega hasta la carpeta raíz de tu tienda PrestaShop.
- Busca el archivo
/config/settings.inc.php. - Ábrelo con el editor de texto de Plesk.
- Busca las siguientes líneas (o añádelas al final, justo antes del
?>):
define('_PS_MAIL_METHOD_', 2);
define('_PS_MAIL_SERVER_', 'mail.tudominio.com');
define('_PS_MAIL_PORT_', 587);
define('_PS_MAIL_ENCRYPTION_', 'tls');
define('_PS_MAIL_USER_', 'tuemail@tudominio.com');
define('_PS_MAIL_PASS_', 'TuContraseña');
define('_PS_MAIL_SMTPAUTH_', 1);
[TIP] Sustituye
mail.tudominio.com,tuemail@tudominio.comyTuContraseñapor tus datos reales. Si usas puerto 465, cambia el puerto y pon'ssl'en_PS_MAIL_ENCRYPTION_.
- Guarda el archivo. Ahora PrestaShop usará SMTP aunque el panel no lo muestre bien.
Paso 3: Prueba el envío de correos
Una vez configurado, es hora de probar.
- En el mismo panel de Parámetros avanzados > Email, busca el botón "Enviar un email de prueba".
- Introduce una dirección de correo a la que tengas acceso (por ejemplo, tu Gmail personal).
- Haz clic en Enviar.
Si todo funciona, recibirás un email de prueba en unos segundos. Si no llega, revisa la carpeta de spam.
[WARNING] Si no recibes el email de prueba, no te desanimes. Revisa los siguientes puntos:
- Puertos bloqueados: Asegúrate de que tu hosting (Plesk) no tenga bloqueado el puerto 587 o 465. Algunos proveedores muy restrictivos solo permiten el 25, pero no lo uses (suele estar bloqueado por spam).
- Firewall: Tu servidor o tu red local podrían estar bloqueando la conexión SMTP saliente.
- Credenciales incorrectas: Vuelve a escribir la contraseña, asegurándote de que no tenga espacios.
- Cuenta de correo mal configurada: En Plesk, verifica que la cuenta de correo
tuemail@tudominio.comesté activa y funcione (puedes probar a enviar un correo desde un cliente como Thunderbird para descartar problemas en la cuenta).
Paso 4: Alternativas y soluciones avanzadas
Si la configuración SMTP directa con la cuenta de Plesk no funciona, tienes otras opciones.
4.1. Usar un servicio SMTP externo (Gmail, SendGrid, etc.)
A veces, el servidor de correo de tu propio hosting (Plesk) puede tener problemas de reputación o estar en listas negras. Usar un servicio externo es más fiable.
- SMTP de Gmail: Puedes usar tu cuenta de Gmail. Necesitarás generar una "contraseña de aplicación" específica para PrestaShop. El servidor es
smtp.gmail.com, puerto587, cifradoTLS. ¡Ojo! Gmail tiene límites de envío diarios. - SendGrid, Mailgun, Amazon SES: Son servicios profesionales de envío de correos transaccionales (los de tu tienda). Suelen tener planes gratuitos para volúmenes bajos. La configuración es la misma que con Plesk, solo cambian los datos del servidor.
4.2. Verificar los registros DNS (SPF, DKIM, DMARC)
Esta es una parte técnica pero crucial para que los correos no acaben en spam. Plesk suele configurarlos automáticamente, pero vale la pena verificarlo.
- SPF (Sender Policy Framework): Indica qué servidores están autorizados a enviar correo por tu dominio. Debes tener un registro TXT en tu DNS que incluya la IP de tu servidor o el servidor SMTP que uses.
- DKIM (DomainKeys Identified Mail): Añade una firma digital a tus correos. En Plesk puedes activarlo fácilmente en la sección de Correo > Configuración de DNS.
- DMARC (Domain-based Message Authentication, Reporting & Conformance): Es una política que le dice a los servidores receptores qué hacer si fallan las comprobaciones SPF y DKIM.
[INFO] Si no sabes cómo configurar estos registros, contacta con el soporte de tu hosting. Muchos problemas de "correos PrestaShop no funcionan" se solucionan simplemente teniendo bien configurado el SPF.
FAQ: Preguntas frecuentes sobre correos en PrestaShop y Plesk
Aquí respondo a las dudas más comunes que me encuentro como técnico de soporte.
1. ¿Por qué mis clientes no reciben los emails de confirmación de pedido?
Lo más probable es que estés usando la función mail() de PHP y tu servidor la tenga limitada. La solución es configurar SMTP como explicamos en el Paso 2. También puede ser que los correos estén yendo a la carpeta de spam por falta de autenticación (SPF/DKIM).
2. ¿Qué puerto SMTP debo usar en PrestaShop con Plesk?
El puerto 587 con STARTTLS es el estándar moderno y el más compatible. El 465 con SSL también funciona, pero el 587 es el recomendado por la IETF (el organismo que define los estándares de internet). Evita el puerto 25, ya que muchos ISP lo bloquean.
3. He configurado SMTP pero sigo sin recibir correos. ¿Qué hago?
Revisa estos tres puntos en orden:
- Credenciales: ¿Son correctas? Prueba a iniciar sesión con esa cuenta en un cliente de correo (Outlook, Thunderbird) para asegurarte.
- Firewall: ¿Tu servidor o tu red local permiten conexiones salientes al puerto SMTP que elegiste?
- Logs de errores: En PrestaShop, ve a Parámetros avanzados > Registros. Busca errores relacionados con "mail" o "SMTP". En Plesk, también puedes revisar los logs del servidor de correo.
4. ¿Es mejor usar el SMTP de Plesk o un servicio externo como SendGrid?
Para la mayoría de tiendas pequeñas y medianas, el SMTP de Plesk es suficiente si está bien configurado (con SPF/DKIM). Si tu tienda envía muchos correos (más de 300-500 al día) o tienes problemas de entregabilidad, entonces un servicio externo como SendGrid (plan gratuito hasta 100 emails/día) o Mailgun es más fiable y escalable.
5. ¿Puedo usar mi correo de Gmail para enviar los emails de la tienda?
Sí, pero con limitaciones. Gmail tiene un límite de 500 destinatarios por día (y menos si usas POP/IMAP). Además, es probable que te pida generar una "contraseña de aplicación" específica. Es una solución rápida, pero no la más profesional para un negocio.
6. ¿Cómo puedo saber si el problema es de mi PrestaShop o del servidor Plesk?
Haz una prueba simple: desde el panel de Plesk, intenta enviar un correo de prueba desde la cuenta de email que quieres usar. Si desde Plesk funciona y desde PrestaShop no, el problema es de la configuración de PrestaShop. Si tampoco funciona desde Plesk, el problema es del servidor de correo (puertos bloqueados, DNS mal configurado, etc.).
Conclusión: Tu tienda volverá a enviar correos
Solucionar el problema de que los correos PrestaShop no funcionan es, en el 90% de los casos, cuestión de cambiar de la función mail() de PHP a una configuración SMTP usando el servidor de correo de Plesk o un servicio externo.
Sigue los pasos que te he dado, verifica los registros DNS (SPF y DKIM) y, sobre todo, prueba siempre con un email de prueba antes de asumir que todo está bien.
Si después de todo esto sigues sin recibir correos, no dudes en contactar con el soporte técnico de tu hosting. Diles que has configurado SMTP en PrestaShop y que necesitas verificar los puertos y los registros DNS. Con esa información, ellos podrán ayudarte mucho más rápido.
¡Espero que tu tienda vuelva a funcionar como un reloj!
