Transaccional8 min de lectura

Contact Form 7 no envía correos: 7 soluciones

Contact Form 7 es el plugin de formularios más usado en WordPress en el mundo hispanohablante, pero una frustración común es cuando deja de enviar correos. La causa raíz casi siempre es que WordPress intenta usar wp_mail() sin SMTP real, algo que Gmail, Outlook y otros proveedores rechazan automáticamente.

Cuando Contact Form 7 deja de enviar, ves dos síntomas claros: (1) los usuarios no reciben confirmaciones, y (2) en los logs de WordPress aparecen mensajes confusos o simplemente nada. El motivo es que WordPress confía en la función wp_mail() del servidor, que es débil, no establece una conexión SMTP segura, y los filtros anti-spam de Gmail, Outlook, Movistar y Yahoo la rechazan sin piedad.

Este artículo te muestra 7 soluciones prácticas para que tus formularios vuelvan a funcionar. Comienza con la más efectiva (SMTP plugin) y sigue hacia abajo según tus necesidades.

Por qué Contact Form 7 no envía correos — las 3 causas principales

Antes de saltar a soluciones, es importante entender qué está pasando detrás de escenas.

  • WordPress usa wp_mail() sin SMTP real — Por defecto, WordPress confía en la función de servidor wp_mail(), que es equivalente a un mail() de PHP. Esta función no autentica tu dominio, no establece una conexión SMTP segura, y es marcada como sospechosa por filtros anti-spam.
  • El dominio remitente (From) no coincide con tu servidor — Si tu sitio es mitienda.com pero el servidor está en un hosting compartido que envía desde servidor123.com, los filtros verán una discrepancia y rechazarán el correo o lo marcarán como spam.
  • Falta configuración SPF/DKIM en tu dominio — Aunque tengas SMTP, si no has publicado registros SPF y DKIM que autoricen al servidor a enviar desde tu dominio, Gmail, Outlook y Yahoo rechazarán el correo o lo enviarán a la carpeta de spam.
Tu formularioNo autenticado (wp_mail)Sin SMTP, sin SPF/DKIMFiltro de spamGmail/Outlook/YahooRechazadoSpam o perdido
Flujo de un correo desde Contact Form 7 hasta el inbox: sin SMTP real, fallan autenticación y confianza del proveedor

Solución 1: Instalar un plugin SMTP (la más importante)

La solución más rápida y efectiva es reemplazar wp_mail() con un plugin SMTP que conecte directamente con un servidor SMTP seguro. Esto eleva tu reputación de remitente de forma inmediata.

Los plugins más usados en español son:

  • WP Mail SMTP (gratuito + versión Pro) — Configurable en minutos; soporta Sendgrid, Mailgun, Amazon SES, Brevo, y SMTP manual. Es el más flexible.
  • Brevo SMTP (gratuito si usas Brevo) — Incluye 300 correos/día gratuitos y no requiere código de terceros.
  • Mailgun — Excelente reputación, 1.000 correos/mes gratis, muy usado en España y LatAm.

Pasos para instalar WP Mail SMTP:

  1. Ve a tu panel WordPress → Plugins → Añadir nuevo.
  2. Busca "WP Mail SMTP" → Instala y activa.
  3. Ve a Ajustes → Email.
  4. Elige tu proveedor SMTP (p.ej., Mailgun, Brevo, o "Otros SMTP" para un servidor propio).
  5. Introduce tus credenciales SMTP:
    • Servidor SMTP: smtp.tudominio.com o el de tu proveedor
    • Puerto: 587 (TLS) o 465 (SSL)
    • Usuario: tu email completo
    • Contraseña: la que te proporciona tu servidor SMTP
  6. Marca "Usar encriptación": TLS o SSL según tu servidor.
  7. Haz clic en "Enviar email de prueba" — si ves "correo enviado", ¡funciona!

Si no tienes un servidor SMTP propio, crea una cuenta gratuita en Mailrelay (español), Brevo o Mailgun e importa sus datos.

Ojo: no todos los hostings permiten SMTP saliente
Algunos hostings compartidos bloquean los puertos SMTP (587, 465, 25) para evitar spam-botnets. Si recibas un error "Connection refused" después de configurar SMTP, contacta a tu soporte de hosting o usa un ESP externo.

Solución 2: Verificar que el From (remitente) sea correcto

Contact Form 7 envía desde la dirección configurada en Ajustes → General → Correo electrónico. Este debe ser un email en TU DOMINIO (p.ej., noreply@mitienda.com o info@mitienda.com), no un email genérico.

Cómo verificar y corregir:

  1. Ve a Ajustes → General en el panel WordPress.
  2. En el campo "Correo electrónico", cámbialo a un email que controles en tu dominio (p.ej., noreply@mitienda.com).
  3. Si no tienes un email en tu dominio, crea uno en el panel de tu hosting (cPanel, Plesk, etc.) o en tu servicio de correo corporativo (Google Workspace, Microsoft 365, etc.).
  4. En Contact Form 7, edita el formulario → pestaña "Mail" → campo from: — asegúrate de que tenga este formato: [your-email] o un email literal como noreply@mitienda.com.

Consejo importante: El remitente también debe estar autorizado en tu SMTP. Si usas Mailgun o Brevo, verifica que tu dominio esté verificado en su panel de control (muchas veces olvidamos este paso).

Solución 3: Revisar los logs de error de WordPress

WordPress guarda errores en los logs. Acceder a estos te dirá exactamente qué pasó y dónde falló.

Método 1: Via SSH/phpMyAdmin

  • Los logs están en /wp-content/debug.log (si WP_DEBUG está habilitado en wp-config.php).
  • O en /var/log/mail.log en el servidor (requiere SSH).

Método 2: Plugin más fácil — WP Mail Logging

  1. Instala el plugin "WP Mail Logging" desde Plugins → Añadir nuevo.
  2. Ve a Herramientas → Email Logs.
  3. Aquí verás todos los intentos de envío (fallidos y exitosos) con la razón del fallo.

Errores comunes que verás:

  • SMTP authentication failed — Tu usuario/contraseña SMTP es incorrecto, o el servidor rechaza esa credencial.
  • Connection refused — El servidor SMTP no es accesible desde tu hosting (firewall o puerto bloqueado).
  • Relay access denied — Tu dominio remitente no está autorizado en el servidor SMTP.
  • 550 mailbox not found — El email destinatario no existe o ha sido deshabilitado.

Solución 4: Configurar SPF y DKIM en tu dominio

Sin estos registros DNS, muchos proveedores rechazan tus correos antes de llegar ni a spam.

SPF (Sender Policy Framework) — Autoriza qué servidores pueden enviar desde tu dominio. Añade un registro TXT en tu DNS:

v=spf1 include:tuservidorsmtp.com ~all

Si usas Mailgun, sería:

v=spf1 include:mailgun.org ~all

Si usas Brevo:

v=spf1 include:brevo.com ~all

DKIM (DomainKeys Identified Mail) — Firma criptográficamente tus correos. Tu proveedor SMTP (Mailgun, Brevo) te dará una clave pública que debes copiar como un registro CNAME o TXT en tu DNS. Ambos servicios tienen paneles visuales paso a paso para esto.

Cómo verificar que SPF/DKIM funcionen: Usa check.live-direct-marketing.online para enviar un correo de prueba desde tu formulario. La herramienta te mostrará si SPF/DKIM pasan la validación y dónde termina tu correo (Inbox, Spam, Promotions).

Solución 5: Comprobar los ajustes de Contact Form 7

A veces el problema no es la infraestructura, sino cómo está configurado el formulario en sí. Revisa:

  • Destinatario (recipient): En la edición del formulario, pestaña "Mail" → recipient debe ser un correo válido (p.ej., tu@tudominio.com). Si está vacío o es un email inexistente, los SMTP lo rechazarán.
  • Asunto (subject): Debe tener contenido; si está vacío, algunos SMTP lo rechazan como mensaje inválido.
  • Cuerpo (message body): Verifica que tenga al menos un placeholder como [your-name] o [your-email], o texto literal.
  • Codificación: Si ves caracteres rotos (acentos raros), asegúrate de que el formulario sea UTF-8 en los ajustes globales de Contact Form 7.

Prueba de envío rápida: En Contact Form 7 → panel de control → "Send Test Email" (si existe la opción). Si falla aquí, es un problema de configuración del formulario, no del servidor.

Solución 6: Revisar firewall y restricciones del hosting

Algunos hostings (sobre todo los compartidos) bloquean salidas SMTP por defecto para evitar que bots spam usen su infraestructura.

Qué hacer:

  1. Contacta al soporte de tu hosting → pregunta si el puerto SMTP (587, 465 o 25) está bloqueado en salida.
  2. Si está bloqueado, pide que lo desbloqueen O sugiere usar un ESP externo (Mailgun, Brevo) que no requiere puertos especiales.
  3. Si tu hosting es muy restrictivo, considera migrar a uno que permita SMTP sin restricciones (AWS, DigitalOcean, o hostings como SiteGround con plan Business+).

Solución 7: Cambiar a un ESP gratuito como alternativa

Si ninguna solución anterior funciona (o tu hosting es demasiado restrictivo), usa directamente un servicio externo especializado:

  • Mailgun (Mailgun.com) — Gratuito hasta 1.000 correos/mes, muy confiable, plugin de WordPress disponible.
  • Brevo (Brevo.com) — 300 correos/día gratis, servidor SMTP muy estable, origen francés.
  • Mailrelay (Mailrelay.com) — 10.000 correos/mes gratis, 100% español, muy popular en España.

Estos servicios tienen SMTP público de alta entregabilidad, plugins de WordPress listos, y no dependen de las restricciones de tu hosting. Solo necesitas crear una cuenta y usar sus datos de SMTP en WP Mail SMTP.

¿Por qué Contact Form 7 de repente dejó de enviar después de meses funcionando?

Las causas más comunes son: (1) cambio de hosting o servidor, (2) actualización de WordPress o PHP que modificó la ruta del wp_mail(), (3) tu servidor IP fue agregada a listas negras de spam, o (4) alcanzaste el límite de correos por hora de tu hosting. La solución es revisar los logs y usar WP Mail SMTP con un proveedor externo confiable como Mailgun o Brevo.

¿Puedo usar mi correo de Gmail (usuario@gmail.com) como remitente en Contact Form 7?

Técnicamente sí (si configuras OAuth en WP Mail SMTP + Gmail), pero no es recomendado. Gmail rechaza salidas desde terceros y marca como sospechosa cualquier correo que no venga de su infraestructura directa. Mejor práctica: usa un email en tu propio dominio, como noreply@mitienda.com.

¿Qué cuesta usar un servicio SMTP como Mailgun o Brevo?

Mailgun y Brevo tienen capas gratuitas muy generosas (1.000–10.000 correos/mes). Para mayor volumen, los costos comienzan desde aproximadamente 0,50 USD por 1.000 correos. WP Mail SMTP es software gratis; lo que pagas es al proveedor SMTP si lo usas. Para un sitio pequeño o mediano, la capa gratuita es suficiente.
Lecturas relacionadas
Found this useful? Share it
AB
Sobre el autor
Artem Berezin
B2B Deliverability Specialist

B2B deliverability specialist with 5+ years of hands-on outreach experience. Built campaigns reaching 90,000+ inboxes across 20+ countries — and fixed the deliverability problems that came with that scale.

Comprueba tu entregabilidad en más de 20 proveedores

Gmail, Outlook, Yahoo, GMX, ProtonMail y más. Capturas reales de la bandeja de entrada, SPF/DKIM/DMARC, veredictos de filtros de spam. Gratis, sin registro.

Hacer test gratis →

Tests ilimitados · Más de 20 buzones · Resultados en vivo · Sin cuenta