WordPress no envía correos: causas y cómo solucionarlo con SMTP

Es uno de los problemas más frustrantes y, a la vez, más comunes: alguien rellena el formulario de contacto de tu web, recibe el mensaje de «gracias, te responderemos pronto»… y a tu bandeja de entrada nunca llega nada. Si tu WordPress no envía correos, no es un fallo aislado: ocurre en la mayoría de instalaciones y la causa casi siempre es la misma. La buena noticia es que se soluciona en menos de quince minutos configurando SMTP.

En esta guía te explicamos por qué pasa, cómo confirmar que el problema es del servidor (y no del formulario), y los dos métodos que mejor funcionan para que tus correos lleguen siempre.

Si no quieres tocar configuración del servidor o tu formulario lleva tiempo sin funcionar y estás perdiendo leads, podemos solucionarlo nosotros.

Habla con nosotros

¿Por qué WordPress no envía correos por defecto?

WordPress envía correos usando la función mail() de PHP, que se apoya en el servicio sendmail del servidor. Hace años esto funcionaba razonablemente bien, pero a día de hoy es la principal causa de problemas de email por dos motivos:

  • Muchos hostings compartidos desactivan o limitan la función mail() para evitar que sus IPs se usen para spam.
  • Aunque el envío salga, los servidores receptores (Gmail, Outlook, Yahoo) revisan el origen, los registros SPF, DKIM y DMARC, y casi siempre marcan como spam o rechazan los correos enviados desde la mail() de PHP.

El resultado: el correo «se envía» desde el punto de vista de WordPress, pero nunca llega al destinatario, o llega a la carpeta de spam una de cada cinco veces. Es lo peor de los dos mundos: ni funciona, ni te enteras.

Cómo confirmar que el problema es del servidor (no del formulario)

Antes de tocar nada, conviene aislar el origen. Lo más rápido es instalar un plugin gratuito como WP Mail Logging o Check & Log Email, enviar un correo de prueba desde Ajustes → Comentarios o desde tu formulario y revisar el log. Vas a ver una de tres situaciones:

  1. El correo aparece como «enviado» pero no llega → es problema del servidor / SMTP.
  2. El correo aparece con error «could not instantiate mail function» → la función mail() está desactivada en el hosting.
  3. El correo no aparece en el log → el problema está en el plugin del formulario, no en WordPress.

Si tu situación es la 1 o la 2, sigue leyendo. Si es la 3, revisa el plugin del formulario (Contact Form 7, WPForms, Gravity Forms…) y su configuración de notificaciones. Te recomendamos también nuestro artículo sobre formularios de contacto y cómo aprovecharlos.

Solución 1: configurar SMTP con un plugin (WP Mail SMTP)

La forma más rápida y robusta es usar un plugin que sustituya la función mail() de PHP por un envío SMTP autenticado. El estándar de facto es WP Mail SMTP, que es gratuito en su versión básica:

  1. Instala WP Mail SMTP desde el repositorio oficial.
  2. Configura el «From Email» con un correo de tu dominio (no uses gmail.com ni yahoo.com).
  3. Marca la opción «Force From Email» para que todos los plugins de WordPress usen ese remitente.
  4. Elige un proveedor SMTP en el desplegable (te lo explicamos en el siguiente apartado).
  5. Introduce el host, puerto, usuario y contraseña SMTP que te dé tu proveedor.
  6. Pulsa «Send a Test Email» y comprueba que llega.

El paso 4 es el que más dudas genera, y de ahí pasa al siguiente bloque.

Solución 2: usar un servicio SMTP externo (Brevo, Mailgun, Amazon SES)

El plugin necesita un servidor SMTP «de verdad» detrás. Tienes tres opciones, en orden de complejidad:

  • Brevo (antes Sendinblue): gratis hasta 300 correos al día, configuración muy sencilla, panel en español. Es la que recomendamos para webs pequeñas y formularios de contacto.
  • Mailgun: gratis los primeros 100 correos al día, fiabilidad muy alta y buena reputación de IPs. Recomendado si envías notificaciones críticas (pedidos, recordatorios) o si tu dominio está bajo escrutinio.
  • Amazon SES: muy barato (0,10 $ por cada 1.000 correos) pero requiere configuración técnica más avanzada y verificar la cuenta de AWS. Recomendado para volúmenes altos.

Si tu hosting es de Arsys, Webempresa, Raiola, SiteGround o cualquier otro español, también puedes usar el SMTP de tu propio hosting: es lo más sencillo si solo envías unos cuantos correos al día y tu dominio ya tiene los registros DNS bien configurados.

Cuando el formulario de contacto no funciona pero el resto sí

A veces los correos automáticos de WordPress (recuperación de contraseña, comentarios, pedidos de WooCommerce) sí llegan, pero los del formulario de contacto no. En ese caso el problema no es global, es del plugin del formulario, y la causa más habitual es:

  • El «From Email» del formulario está usando un dominio que no es el tuyo (por ejemplo, el correo de la persona que rellena el formulario). Los servidores receptores rechazan correos donde el remitente no coincide con el dominio del servidor que los envía.
  • El plugin tiene una notificación duplicada o mal configurada y la regla de spam de tu hosting la bloquea.
  • El formulario está enviando como «from» un correo que no existe en tu dominio.

La solución correcta: en el formulario, el «From» siempre debe ser un correo de tu dominio (info@, web@, contacto@), y el correo de la persona que escribe se pone en «Reply-To». Es un cambio de un minuto que arregla el 90 % de los casos. Y mientras estás en ello, repasa también cómo evitar correos spam en tu web.

Buenas prácticas: SPF, DKIM y DMARC para que tus correos no caigan en spam

Tener SMTP configurado no es suficiente. Para que tus correos lleguen y no acaben en spam, tu dominio necesita tres registros DNS bien definidos:

  • SPF (Sender Policy Framework): dice qué servidores están autorizados a enviar correos en nombre de tu dominio. Si usas Brevo o Mailgun, debes añadir su valor SPF en el DNS.
  • DKIM (DomainKeys Identified Mail): firma criptográfica que prueba que el correo no ha sido manipulado. Tu proveedor SMTP te dará una clave DKIM que tienes que copiar como registro TXT en el DNS.
  • DMARC: política que le dice a Gmail y Outlook qué hacer cuando un correo falle SPF o DKIM. Una política básica (v=DMARC1; p=none; rua=mailto:tu@dominio.es) es suficiente para empezar.

Sin estos tres registros, incluso con SMTP perfectamente configurado, vas a tener entregabilidad mediocre.

Comprobación final y test

Una vez configurado todo, haz estos tres tests:

  1. Envía un correo de prueba desde WP Mail SMTP a una dirección de Gmail.
  2. Envía otro a una de Outlook/Hotmail (las reglas anti-spam son diferentes).
  3. Comprueba en mail-tester.com tu puntuación de entregabilidad enviando un correo a la dirección que te indica. Una puntuación de 9/10 o más significa que vas bien.

Preguntas frecuentes

¿Es obligatorio pagar un servicio SMTP externo?

No. Si tu volumen es bajo (menos de 50 correos al día) y tu hosting tiene SMTP propio, te basta con eso. Brevo es gratis hasta 300 correos al día. Solo necesitas pagar si envías volúmenes grandes o quieres máxima fiabilidad.

Configuro SMTP y los correos siguen yendo a spam, ¿qué pasa?

Casi siempre es un problema de SPF/DKIM/DMARC mal configurado, o que el dominio tiene mala reputación por envíos previos. Pasa el dominio por mail-tester.com para ver el diagnóstico exacto.

¿Pierdo los correos enviados antes de configurar SMTP?

Sí, los que se enviaron y no llegaron están perdidos salvo que tuvieras WP Mail Logging activo. Por eso conviene activarlo siempre, también después de configurar SMTP.

¿Puedo configurar SMTP yo mismo sin saber programar?

Sí, WP Mail SMTP está pensado para no programadores. La parte de los registros DNS (SPF/DKIM) sí requiere acceso al panel del dominio, pero también es una operación de copy-paste.

Resumen rápido: orden recomendado para dejar el envío de correos funcionando

Si tu WordPress no envía correos, no estás haciendo nada mal: es la configuración por defecto la que falla. El orden lógico para resolverlo es siempre el mismo. Primero, instala WP Mail Logging para diagnosticar si el correo «se envía» o no se envía (ahorra muchísimo tiempo de pruebas). Después, configura SMTP con WP Mail SMTP eligiendo un proveedor: Brevo es suficiente para la mayoría de webs corporativas y formularios de contacto, y cambia a Mailgun o Amazon SES solo si tu volumen de envío crece o necesitas máxima fiabilidad. A continuación, añade los registros SPF y DKIM en el DNS de tu dominio para que Gmail y Outlook acepten los correos sin enviarlos a spam. Y por último, lanza una prueba con mail-tester.com para confirmar que tu puntuación de entregabilidad es 9/10 o más. Si sigues este orden, en menos de quince minutos tu web vuelve a comunicarse con el mundo y los leads que generas dejan de perderse por el camino.