Skip to content

Todo para WordPress, el desarrollo web — y mucho más

📧 Cómo instalar y configurar SMTP en WordPress: una guía paso a paso

📧 Cómo instalar y configurar SMTP en WordPress: una guía paso a paso

¿Los correos de su sitio no llegan a los usuarios? ¿Los destinatarios se quejan de que las notificaciones de pedidos o los restablecimientos de contraseña terminan en spam? Casi todos los propietarios de sitios WordPress enfrentan este problema en los primeros meses tras el lanzamiento.

La razón es el método predeterminado de envío de correos. WordPress utiliza la función integrada mail() de PHP, y la mayoría de los proveedores de hosting no la configuran correctamente. Los correos salen con cabeceras incorrectas, sin firmas DKIM, y servicios de correo como Gmail o Mail.ru los envían directamente a la carpeta de «Spam». Peor aún, algunos correos simplemente se pierden y usted ni siquiera se enterará.

La solución adecuada es SMTP. Lo configura una vez y los correos de su sitio empiezan a llegar de forma fiable. Le mostraré dos métodos: el sencillo (usando un plugin) y el manual (usando código), para que pueda elegir según su situación.

💡 Resumen rápido:

  • Aprenderá por qué el correo PHP de WordPress no es fiable y cómo SMTP resuelve el problema de entregabilidad
  • Configurará el envío a través del plugin Easy WP SMTP en 5 minutos, sin editar código
  • Dominará el método manual mediante wp-config.php para quienes prefieren evitar plugins adicionales
  • Probará SMTP con un correo de prueba y aprenderá qué buscar al elegir un proveedor de correo

Qué es SMTP y por qué su sitio pierde correos

SMTP son las siglas de Simple Mail Transfer Protocol. En pocas palabras, es un protocolo dedicado al envío de correo que funciona de manera diferente a mail() de PHP.

Cuando WordPress envía un correo mediante la función estándar, simplemente lo «vuelca» al sistema operativo del servidor. Después, queda a merced de la suerte: el correo puede salir desde un host sin registro SPF, sin DKIM, con una dirección From ajena. El servicio de correo del destinatario ve un correo sospechoso y lo envía a spam. O simplemente lo descarta, y usted no recibe ninguna notificación de error.

Un servidor SMTP, por otro lado, establece una conexión directa con el servicio de correo del destinatario. Se autentica, transmite la firma DKIM de su dominio y garantiza que las cabeceras del correo sean correctas. El resultado: sus correos llegan a la «Bandeja de entrada», no a spam.

Un beneficio adicional es el registro. La mayoría de los plugins SMTP para WordPress mantienen un registro de los correos enviados: puede ver qué se envió, a quién y cuándo. Si un correo no se entregó, lo sabe de inmediato, no una semana después por parte de un cliente.

Método 1: Configurar SMTP mediante el plugin Easy WP SMTP

El método más sencillo y fiable para la gran mayoría de los sitios es instalar un plugin. Recomiendo Easy WP SMTP: más de medio millón de instalaciones activas en WordPress.org, una valoración de 4,6 sobre 5 y actualizaciones estables. El plugin es gratuito y no solo admite cualquier servidor SMTP externo, sino también integraciones directas con Gmail, Outlook, Brevo, SendGrid, Mailgun y SendLayer, lo que le permite conectarse mediante API sin introducir puertos ni configuraciones de cifrado.

Buscar e instalar el plugin Easy WP SMTP en el administrador de WordPress

Paso 1. Instale el plugin. Vaya a su administrador de WordPress: Plugins → Añadir nuevo. En la barra de búsqueda, escriba «Easy WP SMTP». Haga clic en «Instalar» y luego en «Activar».

Paso 2. Vaya a los ajustes. Aparecerá un nuevo elemento de menú Easy WP SMTP en la barra lateral del administrador. Ábralo y llegará a la pestaña «General».

Paso 3. Rellene los datos del servidor SMTP. Esto es lo que necesita introducir:

Configuración del remitente y del servidor de correo en el plugin Easy WP SMTP
  • Dirección de correo From: la dirección desde la que se enviarán los correos. Utilice el mismo correo especificado en sus ajustes de WordPress (en Ajustes → Generales). La mayoría de los hosts bloquean el envío desde direcciones externas, así que es más seguro no arriesgarse.

  • Nombre From: el nombre del remitente que verán los destinatarios. Generalmente es el nombre de su sitio, por ejemplo «Soporte de NombreDelSitio».

  • Mailer: elija «Other SMTP» si está conectando una cuenta de correo de su propio dominio o hosting. Si utiliza Gmail / Outlook / Brevo / SendGrid, seleccione la opción correspondiente y el plugin le guiará a través de la autorización OAuth sin introducir parámetros manualmente.

Parámetros de host SMTP, cifrado y puerto en Easy WP SMTP

Para la opción «Other SMTP», rellene:

  • Host SMTP: la dirección de su servidor de correo. Para hosting, generalmente es mail.your-domain.com. Para servicios de terceros, el proveedor suministra el host al crear el buzón.

  • Cifrado: elija SSL (puerto 465) o TLS (puerto 587). Los servidores modernos prefieren TLS en el puerto 587, pero consulte con su proveedor de correo.

  • Puerto SMTP: 465 para SSL, 587 para TLS. Estos son valores estándar, pero su host puede usar un puerto no estándar, así que verifique su documentación.

  • Autenticación: active la palanca «Sí». Sin autenticación, SMTP no funcionará.

  • Nombre de usuario SMTP y Contraseña SMTP: el usuario y la contraseña de su buzón. Generalmente el usuario coincide con la dirección de correo completa.

Paso 4. Envíe un correo de prueba. Desplácese hacia abajo en la página hasta la sección «Correo de prueba». En el campo «Enviar a», introduzca una dirección a la que tenga acceso (la suya propia sirve). Rellene los campos «Asunto» y «Mensaje» con cualquier cosa, por ejemplo «Prueba SMTP» y «Comprobación de envío». Haga clic en «Enviar correo de prueba».

Si todo está configurado correctamente, aparecerá una notificación verde de éxito en la parte superior de la pantalla. El correo llegará a la dirección especificada en unos segundos. Si no llega, revise su carpeta de «Spam»; si tampoco está allí, vuelva a verificar los ajustes de host, puerto y contraseña.

Paso 5. Active el registro. En el submenú de Easy WP SMTP, abra la pestaña «Registro de correos» y active la grabación del registro. Ahora cada correo enviado se guardará en el registro con fecha, destinatario y estado. Si un mes después un cliente dice «Nunca recibí el correo con el código», puede abrir el registro y ver: el correo se envió y se entregó, el problema está del lado del cliente.

Método 2: Configuración manual de SMTP mediante wp-config.php

Este método es para quienes fundamentalmente no desean instalar un plugin para una sola función. La desventaja es obvia: sin interfaz, sin registro y sin pruebas desde el panel de administración. Todos los cambios se realizan únicamente editando archivos.

Importante: antes de editar wp-config.php, asegúrese de hacer una copia de seguridad de su sitio. Un error en este archivo provocará la «pantalla blanca de la muerte» y solo podrá restaurar el acceso mediante FTP o el gestor de archivos de su hosting.

Paso 1: Añadir constantes SMTP a wp-config.php

Conéctese a su servidor mediante FTP o a través del gestor de archivos de su hosting. Encuentre el archivo wp-config.php en la raíz del sitio y añada el siguiente código ANTES de la línea /* That's all, stop editing! Happy publishing. */:

1// SMTP configuration for sending WordPress mail
2define( 'SMTP_HOST', 'mail.your-domain.com' ); // SMTP server address
3define( 'SMTP_AUTH', true ); // Enable authentication
4define( 'SMTP_PORT', '587' ); // Port: 587 (TLS) or 465 (SSL)
5define( 'SMTP_SECURE', 'tls' ); // Encryption: tls or ssl
6define( 'SMTP_USERNAME', '[email protected]' ); // Mailbox login
7define( 'SMTP_PASSWORD', 'your-password' ); // Password
8define( 'SMTP_FROM', '[email protected]' ); // Sender address
9define( 'SMTP_FROMNAME', 'SiteName Support' ); // Sender name

Reemplace los datos con los suyos: host, puerto, usuario, contraseña. Si su proveedor de correo utiliza SSL en el puerto 465, cambie SMTP_PORT a '465' y SMTP_SECURE a 'ssl'.

Paso 2: Conectar las constantes a PHPMailer

Las constantes en wp-config.php no hacen nada por sí solas: WordPress no sabe qué hacer con ellas. Necesita pasarlas al objeto PHPMailer mediante el hook phpmailer_init. Añada este código al archivo functions.php de su tema hijo o mediante el plugin Code Snippets (recomendado, ya que no se perderá al actualizar el tema):

1/**
2 * SMTP configuration via constants from wp-config.php
3 */
4add_action( 'phpmailer_init', 'sdstudio_smtp_configure' );
5function sdstudio_smtp_configure( $phpmailer ) {
6 $phpmailer->isSMTP();
7 $phpmailer->Host = SMTP_HOST;
8 $phpmailer->SMTPAuth = SMTP_AUTH;
9 $phpmailer->Port = SMTP_PORT;
10 $phpmailer->SMTPSecure = SMTP_SECURE;
11 $phpmailer->Username = SMTP_USERNAME;
12 $phpmailer->Password = SMTP_PASSWORD;
13 $phpmailer->From = SMTP_FROM;
14 $phpmailer->FromName = SMTP_FROMNAME;
15}

Esto es lo que sucede: WordPress llama al hook phpmailer_init antes de enviar cada correo y le pasa una instancia de la clase PHPMailer. La función sdstudio_smtp_configure configura este objeto con los valores de las constantes y el correo se envía mediante SMTP en lugar de mail() de PHP.

Si utiliza un buzón en su propio dominio (por ejemplo [email protected], creado en el cPanel de su hosting), obtenga los detalles del host SMTP desde el panel de control de su hosting. Generalmente hay una sección llamada «Conexiones de correo» o «Cuentas de correo», donde se especifican el host, el puerto y la configuración de cifrado para cada buzón.

Paso 3: Probar el envío

La forma más sencilla de probar es activar un correo del sistema de WordPress. Por ejemplo, solicite un restablecimiento de contraseña a través del formulario de acceso (/wp-login.php → «¿Has perdido tu contraseña?»). Si el correo llega, SMTP está funcionando.

Para una prueba más precisa, añada temporalmente este código a functions.php (elimínelo después de la prueba):

1add_action( 'init', function() {
2 wp_mail( '[email protected]', 'SMTP Test', 'Message sent via SMTP!' );
3} );

Actualice cualquier página de su sitio y se enviará un correo de prueba a su dirección. No olvide eliminar el código después de la prueba, de lo contrario se enviará un correo cada vez que se cargue una página.

Método 3: Plugins SMTP alternativos

Easy WP SMTP no es la única opción. Si por alguna razón no le convenció, aquí tiene tres plugins gratuitos más probados con instalaciones activas en más de 200.000 sitios:

  • WP Mail SMTP: el plugin SMTP más popular en el repositorio de WordPress (más de 3 millones de instalaciones). La versión gratuita conecta cualquier servidor SMTP. La versión de pago añade integraciones con SendLayer, Amazon SES, Microsoft 365 y Zoho Mail, así como registros detallados e informes de errores.

  • Post SMTP: completamente gratuito, con código abierto. Puede enviar correos a través de SMTP, API de Gmail, API de Microsoft 365, SendGrid, Mailgun, Brevo. Registro de correos integrado con filtrado y capacidad de reenvío. Una buena opción si necesita el máximo de funciones sin pagar.

  • FluentSMTP: un plugin minimalista y rápido de los creadores de FluentCRM. Compatible con Amazon SES, Mailgun, SendGrid, SparkPost, Elastic Email y cualquier servidor SMTP. La interfaz es más simple que la de la competencia y el plugin prácticamente no afecta al rendimiento del panel de administración.

Las tres opciones tienen una valoración superior a 4,5 y se actualizan regularmente. El principio de configuración es el mismo en todas: instalar el plugin → introducir los datos del servidor de correo → enviar un correo de prueba → activar el registro.

A diferencia del método manual mediante wp-config.php, cualquiera de estos plugins proporciona al menos un registro de los correos enviados y la capacidad de probar la conexión desde el panel de administración. Para un sitio que envía más de un par de correos por semana, estas funciones se convierten rápidamente en una necesidad más que en una simple comodidad.

Probar SMTP: cómo asegurarse de que todo funciona

Configuró el plugin o el código, ahora verifique el resultado. Aquí tiene una lista de comprobación de tres puntos que cubre todos los posibles problemas:

1. Correo de prueba desde el plugin. Si utilizó Easy WP SMTP, envíe una prueba a través de la función integrada (la pestaña «Correo de prueba»). El correo se envió y llegó a la «Bandeja de entrada»: excelente. Llegó a «Spam»: compruebe que la «Dirección de correo From» especifica una dirección real en su dominio (no @gmail.com si su sitio está en your-domain.com).

2. Revise las cabeceras del correo. Abra el correo de prueba recibido y vea el «original» / «código fuente» del mensaje (en Gmail: tres puntos → «Mostrar original»). Busque las líneas SPF, DKIM y DMARC. Al menos SPF: PASS debería estar presente. Si las tres muestran PASS, su entregabilidad está al máximo.

3. Compruebe mediante un formulario en su sitio. Realice un escenario de usuario: rellene un formulario de contacto, solicite un restablecimiento de contraseña, realice un pedido de prueba en WooCommerce. Cada una de estas acciones debería generar un correo: asegúrese de que todos lleguen. Si algún correo no se envió, es probable que el plugin específico (Formularios / WooCommerce) esté utilizando su propio método de envío que omite el SMTP general. Esto es raro, pero revise la configuración de ese plugin, generalmente hay una opción «Usar el correo de WordPress» o una elección de proveedor de correo.

Si prefiere el formato de vídeo, este tutorial muestra la configuración completa de SMTP a través del plugin WP Mail SMTP desde cero hasta el primer correo enviado. El principio es el mismo para cualquiera de los plugins revisados.

⁉️🤔 Preguntas frecuentes

¿Por qué los correos de mi sitio se envían pero llegan a spam?

La razón principal es la falta de registros DKIM y SPF para el dominio. La función mail() de PHP no firma los correos y los servicios de correo ven un envío «anónimo». Un plugin SMTP envía correos en nombre de su servidor de correo, que ya tiene estos registros configurados. La mayoría de los hosts añaden un registro SPF básico automáticamente a través de cPanel; DKIM y DMARC se configuran manualmente en el panel DNS en 10 minutos.

¿Qué puerto SMTP debo elegir: 465 o 587?

El puerto 587 con cifrado TLS es el estándar moderno del IETF. El puerto 465 con SSL está obsoleto pero tiene amplio soporte. Si su proveedor acepta ambos, elija 587/TLS. Si no funciona, pruebe 465/SSL. En la práctica, la mayoría de los hosts compartidos en 2026 funcionan con ambos puertos; los VPS requieren más a menudo 587/TLS. Si obtiene un error de conexión después de la configuración, lo primero que debe intentar es cambiar el puerto y el cifrado.

¿Puedo usar Gmail gratuito para enviar correos desde mi sitio?

Sí, pero con una limitación: 500 correos al día para cuentas personales y hasta 2.000 para Google Workspace. Para tiendas y sitios de membresía, los servicios transaccionales son más fiables: Brevo (300 correos/día gratis), SendGrid (100/día), Mailgun o Amazon SES. La forma más fácil de conectar Gmail es a través de Easy WP SMTP: seleccione el mailer «Gmail» y complete la autorización OAuth en un par de clics.

¿Necesito un plugin SMTP si mi hosting ya tiene configurado el correo?

El servidor de correo del hosting y el envío desde WordPress son dos eslabones diferentes. El hosting recibe el correo del dominio, pero WordPress continúa enviando a través de mail() de PHP sin autenticación. El resultado es el mismo: spam o correos perdidos. Un plugin SMTP hace que WordPress use el servidor de correo correctamente. Una prueba simple: abra el «original» de un correo de su sitio y busque X-Mailer. Si muestra PHPMailer sin SMTP, necesita un plugin.

El plugin muestra el error «SMTP Error: Could not authenticate», ¿qué debo hacer?

Tres causas comunes. Primera: la contraseña contiene caracteres especiales (almohadilla, signo de dólar, ampersand) que el plugin escapa incorrectamente: cámbiela por alfanumérica. Segunda: el host requiere un puerto diferente: cambie 587↔465 y TLS↔SSL. Tercera: el proveedor bloquea el tráfico SMTP saliente en el plan compartido: consulte con el soporte. Si nada ayuda, cambie a la integración por API: por ejemplo, la API de Gmail a través de OAuth es más fiable que la autenticación por contraseña.

Qué método de configuración SMTP elegir para su sitio

La respuesta depende de tres factores: volumen de correo, nivel de comodidad técnica y presupuesto.

Si su sitio envía hasta 100 correos al día, instale Easy WP SMTP, conecte cualquier buzón y resuelva el asunto en 5 minutos. El nivel gratuito de Brevo a través de la integración API de este mismo plugin le da 300 correos al día sin ninguna configuración de puerto SMTP: solo se registra, obtiene una clave API, la pega en el plugin y listo.

Si su sitio es una tienda WooCommerce con más de 500 pedidos al mes, conecte un servicio transaccional: Mailgun, SendGrid o Amazon SES. Están diseñados para el envío masivo de correo transaccional y proporcionan analíticas detalladas para cada correo (entregado / abierto / clicado). Easy WP SMTP soporta los tres a través de API sin complicaciones con los puertos.

Si es desarrollador y no quiere plugins adicionales, el método manual mediante wp-config.php funciona, pero recuerde: sin registro está ciego. Añada al menos un archivo de registro simple mediante el hook wp_mail_failed o instale FluentSMTP, que es prácticamente ingrávido y proporciona un registro completo de correos.

Lo principal es no dejar WordPress con el correo PHP estándar. Cinco minutos para instalar un plugin SMTP le ahorrarán pedidos perdidos, solicitudes de soporte no atendidas y problemas de reputación con un dominio que los servicios de correo han marcado como fuente de spam.