WordPress no envía emails solución con SMTP
Guía completa para solucionar que WordPress no envía emails configurando SMTP paso a paso, con plugins, pruebas, seguridad y FAQs.
Índice
- ¿Por qué WordPress no envía emails?
- Comprobar si WordPress está enviando correos
- Qué es SMTP y por qué soluciona el problema
- Requisitos previos antes de configurar SMTP
- Configurar SMTP en WordPress con plugin
- Configurar SMTP manualmente en wp-config.php
- Configuración SMTP con proveedores populares
- Resolver errores comunes de SMTP en WordPress
- Buenas prácticas de entregabilidad y seguridad
- Preguntas frecuentes
¿Por qué WordPress no envía emails?
Uno de los problemas más habituales en cualquier sitio web es que WordPress no envía emails: no llegan los correos de formularios de contacto, no se entregan las notificaciones de pedidos de WooCommerce, los emails de recuperación de contraseña nunca aparecen o las alertas del sistema se pierden. La causa casi siempre está en cómo WordPress envía el correo por defecto y en las restricciones de los servidores actuales.
Por defecto, WordPress utiliza la función wp_mail(), que a su vez se apoya en la función mail() de PHP. Muchos hostings comparten servidor con cientos de webs y, para evitar spam o abusos, limitan o bloquean este tipo de envío. Además, los grandes proveedores de correo (Gmail, Outlook, Yahoo, etc.) aplican filtros muy estrictos que suelen marcar como sospechosos los emails enviados sin autenticación adecuada.
- El servidor bloquea la función
mail()de PHP. - La IP del servidor está en listas negras (blacklists).
- Los registros DNS (SPF, DKIM, DMARC) no están configurados.
- El email se envía con un remitente distinto al dominio del sitio.
- El proveedor de correo del destinatario marca el mensaje como spam.
La forma más estable y profesional de solucionar que WordPress no envía emails es configurar un servidor SMTP autenticado. Con SMTP, tus correos se envían de forma segura, con identidad verificada y con muchas más probabilidades de llegar a la bandeja de entrada.
Comprobar si WordPress está enviando correos
Antes de aplicar cambios, conviene confirmar si el problema es que WordPress no envía emails en absoluto o si los correos se están enviando pero se pierden en spam o son bloqueados por el proveedor de destino. Un test de envío te ayudará a localizar el origen del fallo.
- Verificar si los formularios de contacto generan algún mensaje de error.
- Probar el envío de recuperación de contraseña desde la pantalla de acceso.
- Revisar la carpeta de spam o correo no deseado en varias cuentas de email.
- Usar un plugin de prueba de correo para obtener un registro detallado.
La forma más sencilla de probar el envío es instalar un plugin específico de test de email. Muchos plugins SMTP incluyen esta función integrada, por lo que podrás aprovecharla más adelante cuando configures el servidor SMTP.
Pasos rápidos para hacer un test de envío:
- Instala un plugin SMTP (por ejemplo, WP Mail SMTP o Post SMTP).
- Ve a la sección de Email Test o Prueba de correo.
- Introduce una dirección de email de prueba (idealmente de otro proveedor).
- Envía el test y revisa el resultado y los registros de error.
Qué es SMTP y por qué soluciona el problema
SMTP (Simple Mail Transfer Protocol) es el protocolo estándar para el envío de correos electrónicos en Internet. A diferencia de la función mail() de PHP, que simplemente entrega el mensaje al servidor local, SMTP establece una conexión autenticada con un servidor de correo dedicado, que se encarga de entregar el email al destinatario final.
Cuando configuras WordPress para usar SMTP, tus correos se envían a través de un proveedor de email fiable (tu hosting, un servicio transaccional o incluso Gmail), lo que aporta:
- Autenticación: usuario y contraseña, y en muchos casos OAuth.
- Cifrado: conexión segura mediante TLS/SSL.
- Reputación: IPs y dominios con mejor reputación de envío.
- Registros DNS: SPF, DKIM y DMARC configurados correctamente.
- Estadísticas: seguimiento de aperturas, rebotes y bloqueos (según proveedor).
En resumen, SMTP convierte el envío de emails de WordPress en un proceso profesional y controlado. Si tu WordPress no envía emails, casi siempre se soluciona configurando correctamente un servidor SMTP y ajustando los registros DNS del dominio.
Requisitos previos antes de configurar SMTP
Antes de entrar en la configuración técnica, es importante tener claros algunos requisitos previos. Esto evitará errores típicos como credenciales incorrectas, dominios mal configurados o conflictos con otros plugins de correo.
- Dominio activo: el dominio de tu web debe estar apuntando correctamente al hosting.
- Cuenta de correo válida: necesitarás una cuenta de email que actuará como remitente.
- Datos SMTP: servidor, puerto, tipo de cifrado, usuario y contraseña.
- Acceso al panel DNS: para configurar SPF, DKIM y DMARC si tu proveedor lo requiere.
- Acceso a WordPress: usuario administrador para instalar y configurar plugins.
Si utilizas un proveedor de correo profesional (como un servicio de email transaccional o un plan de correo corporativo), normalmente encontrarás los datos SMTP en su panel de control o en la documentación oficial. En caso de duda, contacta con el soporte de tu hosting para que te indique los parámetros exactos.
Checklist rápido antes de seguir:
- ¿Sabes qué dirección de email quieres usar como remitente?
- ¿Tienes usuario y contraseña de esa cuenta de correo?
- ¿Conoces el servidor SMTP (por ejemplo,
mail.tudominio.comosmtp.gmail.com)? - ¿Tienes claro el puerto y el tipo de cifrado (TLS/SSL)?
Configurar SMTP en WordPress con plugin
La forma más sencilla y recomendada de solucionar que WordPress no envía emails es usar un plugin SMTP. Estos plugins reemplazan la función de envío por defecto y permiten conectar tu sitio con un servidor SMTP de forma gráfica, sin tocar código.
Algunos de los plugins SMTP más populares son:
- WP Mail SMTP (muy usado, interfaz clara, versión gratuita y de pago).
- Post SMTP (incluye registro detallado de errores y fallback).
- Easy WP SMTP (ligero y directo para configuraciones básicas).
A continuación se describe un flujo genérico que puedes seguir con cualquiera de estos plugins, adaptando los nombres de campos según el que elijas.
Pasos para configurar un plugin SMTP en WordPress:
- Accede al panel de administración de WordPress.
- Ve a Plugins > Añadir nuevo.
- Busca "SMTP" o el nombre del plugin (por ejemplo, "WP Mail SMTP").
- Instala y activa el plugin elegido.
- Accede a la nueva sección de ajustes del plugin (suele llamarse Correo o WP Mail SMTP).
- Introduce la dirección de email remitente (From Email) y el nombre del remitente (From Name).
- Selecciona la opción de envío mediante SMTP o Other SMTP.
- Rellena los datos del servidor SMTP: host, puerto, tipo de cifrado, usuario y contraseña.
- Guarda los cambios y realiza una prueba de envío desde la pestaña de test.
Es importante que el email remitente coincida con el dominio desde el que envías. Por ejemplo, si tu web es midominio.com, utiliza una dirección como info@midominio.com o no-reply@midominio.com. Usar un Gmail gratuito como remitente en un dominio distinto suele generar problemas de entregabilidad.
Configurar SMTP manualmente en wp-config.php
Si prefieres evitar plugins adicionales o necesitas un control más fino sobre la configuración, también puedes forzar el uso de SMTP en WordPress mediante código. La forma más habitual es añadir filtros a phpmailer_init desde un plugin personalizado o desde el archivo functions.php de tu tema hijo. No obstante, muchos administradores optan por centralizar parte de la configuración en wp-config.php.
A continuación se muestra un ejemplo genérico de cómo definir constantes en wp-config.php y utilizarlas en un pequeño fragmento de código para configurar PHPMailer.
Ejemplo de configuración SMTP mediante código:
// En wp-config.php (antes de /* That's all, stop editing! */)
define( 'SMTP_HOST', 'mail.tudominio.com' );
define( 'SMTP_PORT', 587 );
define( 'SMTP_SECURE', 'tls' ); // 'ssl' o 'tls'
define( 'SMTP_AUTH', true );
define( 'SMTP_USER', 'tu-correo@tudominio.com' );
define( 'SMTP_PASS', 'tu-contraseña-segura' );
define( 'SMTP_FROM', 'tu-correo@tudominio.com' );
define( 'SMTP_FROM_NAME', 'Nombre de tu sitio' );
// En functions.php de tu tema hijo o en un plugin específico
add_action( 'phpmailer_init', function( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->Port = SMTP_PORT;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Username = SMTP_USER;
$phpmailer->Password = SMTP_PASS;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_FROM_NAME;
});
Esta aproximación es más técnica y requiere cuidado adicional con la seguridad de las credenciales. Siempre que sea posible, utiliza variables de entorno o sistemas de gestión de secretos en lugar de dejar contraseñas en texto plano. Para la mayoría de usuarios, un plugin SMTP bien mantenido es suficiente y más cómodo.
Configuración SMTP con proveedores populares
Aunque cada proveedor de correo tiene sus propios parámetros, la estructura de la configuración SMTP en WordPress es muy similar en todos los casos. A continuación se resumen los ajustes más habituales para algunos servicios populares. Verifica siempre en la documentación oficial por si hubiera cambios recientes.
Ejemplo de configuración SMTP con Gmail (no recomendado para alto volumen):
- Servidor SMTP:
smtp.gmail.com - Puerto: 587 (TLS) o 465 (SSL)
- Cifrado: TLS o SSL
- Autenticación: Sí
- Usuario: tu dirección de Gmail completa
- Contraseña: contraseña de aplicación (no la contraseña principal)
Para dominios corporativos, es preferible utilizar el servicio de correo del propio hosting o un proveedor especializado en email transaccional. Estos servicios están diseñados para manejar notificaciones de formularios, pedidos, registros y otros correos automáticos con alta entregabilidad.
Parámetros típicos de un hosting compartido:
- Servidor SMTP:
mail.tudominio.como el host que indique tu proveedor. - Puerto: 587 (TLS) o 465 (SSL).
- Cifrado: TLS recomendado.
- Autenticación: obligatoria.
- Usuario: cuenta de correo completa (por ejemplo,
info@tudominio.com). - Contraseña: la que hayas definido para esa cuenta de correo.
Los servicios de email transaccional (como SendGrid, Mailgun, Amazon SES, etc.) suelen proporcionar además una clave API y opciones de integración directa con WordPress a través de plugins oficiales. En muchos casos, es preferible usar la integración por API en lugar de SMTP, ya que ofrece mejor rendimiento y métricas más completas, aunque la configuración SMTP sigue siendo totalmente válida.
Resolver errores comunes de SMTP en WordPress
Incluso después de configurar SMTP, pueden aparecer errores que impidan que WordPress envíe emails correctamente. Identificar el mensaje de error exacto es clave para encontrar la solución adecuada. Muchos plugins SMTP muestran un registro detallado cuando una prueba de envío falla.
- Error de autenticación: usuario o contraseña incorrectos.
- Conexión rechazada: puerto bloqueado por el hosting o firewall.
- Certificado SSL no válido: problemas con el cifrado o certificados caducados.
- Límites de envío: has superado el número de emails permitidos por hora o día.
- Remitente no autorizado: el proveedor no permite enviar desde esa dirección.
Consejos para depurar problemas de SMTP:
- Activa el modo de depuración o logging del plugin SMTP.
- Prueba con otro puerto (por ejemplo, cambia de 465 a 587 o viceversa).
- Verifica de nuevo usuario y contraseña copiando y pegando desde el panel del proveedor.
- Comprueba si tu hosting bloquea conexiones salientes en ciertos puertos.
- Revisa que el remitente (From Email) coincide con el dominio autorizado.
Si después de revisar todo sigues sin poder enviar correos, contacta con el soporte técnico de tu proveedor de hosting o del servicio SMTP. Facilita los mensajes de error exactos y las capturas de pantalla de la configuración para que puedan ayudarte más rápido.
Buenas prácticas de entregabilidad y seguridad
Configurar SMTP en WordPress soluciona el problema de que no se envíen emails, pero para garantizar una buena entregabilidad a largo plazo es necesario seguir ciertas buenas prácticas. Esto reduce el riesgo de que tus mensajes acaben en spam o de que tu dominio sea utilizado de forma fraudulenta.
- Configura SPF: autoriza a tu servidor o proveedor SMTP a enviar correos en nombre de tu dominio.
- Activa DKIM: firma criptográficamente tus mensajes para demostrar que no han sido alterados.
- Define una política DMARC: indica a los proveedores cómo tratar los correos que no superen SPF o DKIM.
- Usa contraseñas seguras: evita claves débiles o reutilizadas en tu cuenta SMTP.
- Limita el volumen: no utilices el mismo servidor para campañas masivas de marketing si no está preparado para ello.
También es recomendable revisar periódicamente los registros de envío de tu proveedor SMTP para detectar rebotes, quejas de spam o bloqueos. Muchos servicios ofrecen paneles con estadísticas detalladas que te ayudan a mantener una reputación de envío saludable.
Checklist de seguridad y reputación:
- Evita enviar correos desde direcciones genéricas de proveedores gratuitos cuando uses un dominio propio.
- No compartas las credenciales SMTP en correos o documentos sin cifrar.
- Revisa que tu sitio WordPress esté actualizado y libre de malware.
- Configura límites razonables de envío y segmenta tus comunicaciones.
Preguntas frecuentes
¿Por qué WordPress no envía emails aunque el formulario diga que se ha enviado?
Muchos formularios solo muestran un mensaje de éxito cuando se procesa la petición, pero no verifican si el servidor ha entregado realmente el correo. Si WordPress no envía emails por problemas con la función mail() o con el servidor, el formulario puede indicar que todo ha ido bien aunque el mensaje nunca llegue. Configurar SMTP y hacer pruebas de envío es la forma más fiable de asegurarte de que los correos se entregan.
¿Necesito un plugin SMTP si mi hosting ya incluye correo?
Aunque tu hosting incluya cuentas de correo, WordPress seguirá usando la función mail() de PHP si no configuras SMTP. Esto puede provocar problemas de entregabilidad. Usar un plugin SMTP para conectar WordPress con el servidor de correo de tu hosting es la forma recomendada de aprovechar ese servicio y garantizar que los emails se envían de forma autenticada y segura.
¿Puedo usar Gmail para enviar los emails de mi WordPress?
Es posible usar Gmail como servidor SMTP, pero no es la opción ideal para sitios con mucho tráfico o tiendas online, ya que Gmail impone límites de envío y puede bloquear tu cuenta si detecta un uso intensivo. Además, es preferible que el remitente coincida con el dominio de tu web. Para proyectos profesionales, se recomienda usar un correo corporativo o un servicio de email transaccional específico.
¿Qué diferencia hay entre SMTP y una integración por API?
SMTP es un estándar universal que funciona con casi cualquier servidor de correo, mientras que las integraciones por API se conectan directamente con el proveedor mediante peticiones HTTP. Las APIs suelen ofrecer mejor rendimiento, más información sobre el estado de cada envío y opciones avanzadas, pero requieren un plugin o integración específica. Si tu proveedor ofrece ambas opciones, cualquiera de las dos puede solucionar que WordPress no envíe emails, aunque la API suele ser más robusta.
¿Configurar SMTP hará que todos mis emails lleguen siempre a la bandeja de entrada?
Configurar SMTP mejora mucho la entregabilidad, pero no garantiza al 100 % que todos los correos lleguen siempre a la bandeja de entrada. Factores como el contenido del mensaje, la reputación del dominio, las quejas de spam o la configuración de los filtros del destinatario también influyen. Aun así, pasar de la función mail() a un servidor SMTP bien configurado es el paso más importante para resolver problemas de envío en WordPress.
¿Necesitas asesoramiento legal?
Nuestro equipo de expertos está listo para ayudarte