Configurar el correo en WordPress (SMTP y envío de emails)
¿Por qué WordPress no envía correos con la función mail()?
Si alguna vez intentaste que WordPress enviara un email de recuperación de contraseña, una notificación de pedido o el clásico formulario de contacto y el mensaje nunca llegó, no estás solo. Este es uno de los problemas más comunes entre usuarios de WordPress.
El motivo principal es que WordPress utiliza por defecto la función mail() de PHP. Esta función depende completamente de que el servidor donde está alojada tu web tenga configurado correctamente un servicio de envío de correo (normalmente un servidor sendmail o un agente de transferencia de correo).
En muchos servidores de hosting compartido, especialmente en los más económicos, esta función está deshabilitada o bloqueada por razones de seguridad y para evitar el envío masivo de spam. El resultado es que WordPress intenta enviar el correo, pero el servidor lo descarta silenciosamente o lo marca como spam automáticamente.
Además, aunque el envío funcione, es muy probable que el email llegue a la bandeja de spam o directamente no llegue. Los servidores de correo modernos (Gmail, Outlook, Yahoo) son muy estrictos con los mensajes que provienen de IPs de hosting compartido, que tienen mala reputación.
La solución profesional y definitiva pasa por configurar un SMTP (Protocolo Simple de Transferencia de Correo). En lugar de depender del servidor de tu hosting, WordPress se conectará directamente al servidor de correo de tu proveedor (como Gmail, tu dominio personalizado o un servicio de email transaccional). Esto garantiza una entrega mucho más fiable y evita que tus emails sean marcados como spam.
Qué necesitas antes de empezar
Antes de tocar nada en WordPress, es fundamental que tengas a mano los datos de tu cuenta de correo o del servicio SMTP que vayas a utilizar. Esta es la información que necesitarás:
- Dirección de correo electrónico completa (por ejemplo,
hola@tudominio.com). - Contraseña de esa cuenta de correo. Si usas verificación en dos pasos, deberás generar una contraseña específica para aplicaciones.
- Servidor SMTP saliente. Generalmente es algo como
mail.tudominio.com,smtp.gmail.comosmtp.hostinger.com. - Puerto de conexión. Los más comunes son el 465 (SSL) y el 587 (TLS). A veces también se usa el 25.
- Método de cifrado. Casi siempre es SSL o TLS.
- ¿Requiere autenticación? En el 99% de los casos sí, pero hay servicios internos que no lo piden.
Si tienes tu correo configurado en un cliente como Outlook o Thunderbird, puedes mirar la configuración de la cuenta para encontrar estos datos. Si no los encuentras, contacta con tu proveedor de hosting o revisa la documentación de tu servicio de email.
[TIP] Si tu dominio está gestionado desde Syspanel (el panel de control con puerto de acceso 2106), puedes encontrar todos estos datos en la sección de "Cuentas de correo". Esta información suele estar en la pestaña de "Configuración del cliente" o "Manual".
Método 1: Configurar SMTP con un plugin (la forma más fácil)
Para la mayoría de usuarios, la forma más sencilla y segura de configurar el correo en WordPress es mediante un plugin. No necesitas tocar código ni modificar archivos del servidor. Existen varias opciones, pero la más popular y robusta es WP Mail SMTP.
Paso 1: Instalar el plugin WP Mail SMTP
Ve al panel de administración de WordPress y sigue estos pasos:
- En el menú lateral, ve a Plugins y haz clic en Añadir nuevo.
- En el buscador, escribe "WP Mail SMTP".
- Encuentra el plugin desarrollado por WPForms y haz clic en Instalar ahora.
- Una vez instalado, haz clic en Activar.
Paso 2: Configurar la conexión SMTP
Después de activarlo, verás un aviso en la parte superior. Haz clic en el botón que dice "Launch Setup Wizard" (Iniciar asistente de configuración). Si no aparece, ve al menú lateral a WP Mail SMTP y haz clic en Settings.
El asistente te guiará paso a paso, pero aquí tienes la versión manual:
- En la sección "From Email", escribe la dirección de correo desde la que quieres que se envíen los emails. Debe ser la misma que la de tu cuenta SMTP.
- En "From Name", escribe el nombre que quieras que aparezca como remitente (por ejemplo, "Tu Empresa").
- En "Mailer", selecciona la opción "Other SMTP" (Otro SMTP). Si usas un servicio como Gmail, SendGrid o Mailgun, el plugin te ofrece integraciones directas, pero la opción genérica funciona con cualquier proveedor.
- Haz clic en "Save Settings" para continuar.
Paso 3: Rellenar los datos del servidor SMTP
Ahora verás un formulario con los campos específicos del servidor SMTP. Rellénalos con la información que recopilaste antes:
- SMTP Host: Introduce el servidor SMTP (ejemplo:
mail.tudominio.com). - Encryption (Cifrado): Elige SSL si tu puerto es 465, o TLS si tu puerto es 587.
- SMTP Port: Introduce el puerto correspondiente (465 o 587).
- Auto TLS: Déjalo activado si tu servidor lo soporta (es lo más habitual).
- Authentication (Autenticación): Activa la palanca para que se muestren los campos de usuario y contraseña.
- Username: Introduce la dirección de correo completa.
- Password: Introduce la contraseña de la cuenta.
Guarda los cambios pulsando el botón "Save Settings" al final de la página.
Paso 4: Enviar un email de prueba
La parte más importante es comprobar que todo funciona. El plugin incluye una herramienta de prueba.
- Ve a la pestaña "Email Test" (Prueba de email) en el menú de WP Mail SMTP.
- Introduce la dirección de correo a la que quieres enviar la prueba (puede ser la misma cuenta que estás configurando).
- Haz clic en "Send Email".
Si el email llega a tu bandeja de entrada, ¡enhorabuena! La configuración es correcta. Si no llega, revisa los datos introducidos y comprueba que el puerto y el cifrado son los correctos.
[WARNING] Si el email de prueba no llega, revisa la carpeta de spam. A veces los servidores de correo tardan unos minutos en entregar los mensajes de prueba. Espera al menos 5 minutos antes de reintentar.
Método 2: Configurar SMTP sin plugin (funciones.php)
Si eres una persona más técnica o quieres evitar instalar otro plugin en tu sitio, puedes añadir un pequeño fragmento de código al archivo functions.php de tu tema. Este método es igual de válido y mucho más ligero.
Paso 1: Acceder al archivo functions.php
Necesitas un editor de código y acceso a tu hosting. Puedes hacerlo desde el administrador de archivos de tu panel de control (como Syspanel) o desde el editor de temas de WordPress.
- Ve a Apariencia → Editor de archivos de tema.
- En el menú lateral derecho, busca el archivo
functions.phpy haz clic sobre él. - IMPORTANTE: Haz una copia de seguridad del contenido del archivo antes de editarlo.
Paso 2: Añadir el código personalizado
Al final del archivo, antes de la etiqueta de cierre de PHP ?> (si existe), pega el siguiente código. Debes reemplazar los valores de los ejemplos con los datos de tu cuenta de correo:
add_action( 'phpmailer_init', 'configurar_smtp_wordpress' );
function configurar_smtp_wordpress( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = 'mail.tudominio.com'; // Tu servidor SMTP
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 465; // Puerto (465 para SSL, 587 para TLS)
$phpmailer->Username = 'hola@tudominio.com'; // Tu correo completo
$phpmailer->Password = 'tu-contraseña'; // Tu contraseña
$phpmailer->SMTPSecure = 'ssl'; // 'ssl' para puerto 465, 'tls' para puerto 587
$phpmailer->From = 'hola@tudominio.com';
$phpmailer->FromName = 'Mi Sitio Web';
}
Guarda los cambios. Ahora WordPress usará esta configuración para todos los correos salientes.
Paso 3: Probar el envío
Puedes probar el envío instalando un pequeño plugin de prueba de correo o, si prefieres no instalar nada, puedes añadir una función temporal al mismo functions.php para enviar un email de prueba:
function enviar_email_prueba() {
wp_mail( 'test@tudominio.com', 'Prueba SMTP', '¡Esto es una prueba!' );
}
add_action( 'init', 'enviar_email_prueba' );
Carga cualquier página de tu sitio web y revisa el email de prueba. Si funciona, elimina esta función de prueba.
[INFO] Este método es ideal si quieres minimizar el uso de plugins o si tu tema ya es muy pesado. Ten en cuenta que si actualizas tu tema, perderás el código. Por eso es mejor usar un plugin para este propósito a largo plazo.
Configurar SMTP con servicios de email transaccional
Si tienes una tienda online o envías muchos emails (facturas, notificaciones, newsletters), es muy recomendable usar un servicio de email transaccional. Servicios como SendGrid, Mailgun, Amazon SES o Brevo están optimizados para entregar grandes volúmenes de correo y ofrecen estadísticas detalladas.
La configuración con estos servicios es similar al método del plugin, pero en lugar de usar el servidor SMTP de tu hosting, usarás el servidor del servicio. Por ejemplo:
- SendGrid: Host
smtp.sendgrid.net, puerto587, usuarioapikey, contraseña tu API Key. - Mailgun: Host
smtp.mailgun.org, puerto587, usuariopostmaster@tu-dominio.com, contraseña tu contraseña SMTP. - Amazon SES: Host
email-smtp.us-east-1.amazonaws.com, puerto587, usuario y contraseña que te da AWS.
La mayoría de estos servicios tienen integraciones directas con el plugin WP Mail SMTP. Solo tienes que seleccionar el servicio en el paso "Mailer" e introducir tu clave API. Esto simplifica mucho el proceso y te da acceso a métricas de entrega en tiempo real.
Solución de problemas comunes
Aunque hayas seguido los pasos al pie de la letra, a veces las cosas no salen a la primera. Aquí tienes una lista de los problemas más frecuentes y cómo solucionarlos:
El email de prueba no llega
Revisa estos puntos en orden:
- Confirma que los datos del servidor SMTP son correctos. Un error de una letra en el host o en el usuario es la causa más común.
- Verifica que el puerto no está bloqueado por tu proveedor de alojamiento. Algunos hosts bloquean el puerto 25 y 465 por seguridad. Prueba con el puerto 587.
- Comprueba que tu cuenta de correo tiene habilitado el acceso SMTP. En algunos paneles de control (como Syspanel) debes activar manualmente la opción de "Envío SMTP" para la cuenta.
- Mira la carpeta de spam. Es muy habitual que el primer email de prueba acabe ahí.
El email se envía pero va a spam
Esto es un problema de reputación del dominio o de la IP. No es un fallo de configuración. Algunas recomendaciones:
- Configura correctamente los registros SPF, DKIM y DMARC de tu dominio. Estos son registros DNS que autentican tus emails. Puedes configurarlos desde el panel de tu proveedor de dominio o desde Syspanel.
- Utiliza un servicio de email transaccional. Tienen IPs limpias y una alta reputación.
- Evita usar el correo del hosting para envíos masivos. Para eso están los servicios especializados.
Error de autenticación al enviar
Este error significa que el servidor SMTP ha rechazado tus credenciales. Posibles causas:
- La contraseña es incorrecta o ha sido cambiada recientemente.
- Si usas Gmail, necesitas una contraseña de aplicación si tienes activada la verificación en dos pasos. La contraseña normal no funcionará.
- Algunos servidores requieren que el nombre de usuario sea solo la parte antes de la
@. Prueba con ambas opciones.
[WARNING] Nunca uses una contraseña de un correo personal (como tu Gmail personal) para el envío de emails de tu web. Crea una cuenta de correo específica para el dominio o utiliza un servicio de email transaccional. Esto protege tu cuenta principal y facilita el control de los envíos.
Preguntas frecuentes (FAQ)
¿Es obligatorio configurar SMTP en WordPress?
No es estrictamente obligatorio, pero sí muy recomendable. Sin SMTP, tu WordPress dependerá de la función mail() del servidor, que es poco fiable y suele fallar en hosting compartido. Configurar SMTP garantiza que los emails se envíen correctamente y lleguen a la bandeja de entrada.
¿Puedo usar mi correo de Gmail para enviar emails desde WordPress?
Sí, puedes usar Gmail como servidor SMTP. Para ello necesitas generar una contraseña de aplicación en tu cuenta de Google (si tienes verificación en dos pasos activada) y configurar el plugin con el host smtp.gmail.com, puerto 587 y cifrado TLS. Ten en cuenta que Gmail tiene límites de envío diarios (500 emails para cuentas gratuitas).
¿Qué diferencia hay entre los puertos 465 y 587?
El puerto 465 usa cifrado SSL desde el principio de la conexión, mientras que el puerto 587 usa STARTTLS, que negocia el cifrado después de conectar. La mayoría de los servidores modernos prefieren el 587, pero algunos proveedores solo ofrecen el 465. Usa el que te indique tu proveedor.
Si cambio de tema, ¿perderé la configuración SMTP?
Si configuraste el SMTP mediante el archivo functions.php de tu tema, sí, perderás la configuración al cambiar de tema. Por eso es mejor usar un plugin para esta tarea, ya que la configuración se almacena en la base de datos y se mantiene independientemente del tema.
¿Qué es Syspanel y cómo accedo?
Syspanel es el panel de control de hosting que utilizamos en nuestros servicios de alojamiento. Es una herramienta completa para gestionar tus dominios, bases de datos, cuentas de correo y más. Puedes acceder a él desde tu navegador web en la dirección https://tu-dominio.com:2106 o desde el enlace directo que encontrarás en tu área de cliente. Sustituye tu-dominio.com por tu dominio real.
¿Puedo configurar el correo sin usar un plugin ni tocar código?
No, necesitas una de las dos opciones: o un plugin (método 1) o código personalizado en el archivo functions.php (método 2). No hay forma nativa en WordPress para configurar SMTP sin estos métodos, ya que es una funcionalidad que requiere modificar el comportamiento predeterminado del sistema de correo.
Configurar correctamente el correo en WordPress es una de las tareas más importantes para el buen funcionamiento de tu sitio web. No solo afecta a la recuperación de contraseñas, sino también a formularios de contacto, notificaciones de pedidos y cualquier otro sistema que dependa del envío de emails. Con los métodos que te hemos explicado, ya no tendrás que preocuparte por los correos perdidos. Dedica unos minutos a configurarlo y olvídate del problema para siempre.
