Primero distingue “no se envió” de “no llegó”
Cuando WordPress no envía correos, el síntoma suele ser uno de estos: el formulario muestra error, muestra éxito pero no llega nada, el mensaje cae en spam o solo fallan algunos destinatarios. Cada caso apunta a una capa distinta.
WordPress utiliza normalmente la función wp_mail(). Su documentación oficial aclara que devolver true significa que la solicitud se procesó sin error, no que el destinatario haya recibido el mensaje. Ese detalle explica por qué un formulario puede confirmar el envío y aun así perderse después.
Diagnóstico rápido por síntoma
| Síntoma | Causa probable | Primera comprobación |
|---|---|---|
| El formulario muestra error | Plugin, validación o servidor | Log del formulario y errores de PHP |
| Muestra éxito pero no llega | Transporte o entrega | Registro de correo y prueba SMTP |
| Llega a spam | Autenticación o reputación | SPF, DKIM, DMARC y cabeceras |
| Solo falla un dominio | Rechazo del destinatario | Respuesta del servidor receptor |
| Dejó de funcionar tras actualizar | Conflicto o cambio de configuración | Logs y cambios recientes |
Paso 1: comprueba que el formulario termina
Envía una prueba con datos sencillos y mira el mensaje de respuesta. Revisa también el almacenamiento de entradas del plugin, si existe: si la consulta está guardada, la captura de datos funcionó, pero todavía debes comprobar que el plugin pidió la notificación y usó el destinatario correcto. Si no hay entrada, busca errores de JavaScript, validación o PHP antes de tocar SMTP.
No uses datos reales sensibles para probar. Un nombre, un correo controlado y un texto identificable bastan.
Paso 2: instala un registro temporal de correo
Un registro temporal permite ver la hora, un identificador de prueba y el resultado de la llamada. Evita registrar el cuerpo del mensaje o datos personales; los estados del proveedor suelen bastar para seguir el intento. Si no aparece ningún intento, la aplicación no llegó a pedir el envío. Si aparece como procesado, continúa hacia el transporte y la entrega.
Retira o limita ese registro cuando termines: los mensajes de formularios pueden contener datos personales y no deben acumularse sin una finalidad y un plazo.
Paso 3: configura un transporte SMTP o API
El envío local de PHP depende de cómo esté configurado el servidor y suele ofrecer poca trazabilidad. Un proveedor SMTP o de email transaccional autentica el envío y devuelve estados más claros. Necesitarás servidor, puerto, cifrado, usuario y credencial; algunos proveedores usan una API en lugar de SMTP. Usa la combinación de puerto y TLS indicada por el proveedor y mantén activa la validación del certificado: desactivarla para que una prueba funcione deja una conexión insegura.
No copies contraseñas en capturas ni las guardes en páginas visibles del panel. Usa credenciales específicas para la aplicación y rótalas si han quedado expuestas.
Paso 4: revisa remitente y DNS
- El campo
Fromdebe usar un dominio que controles. - SPF indica qué servidores pueden enviar por tu dominio.
- DKIM firma el mensaje para que el receptor compruebe su autenticidad.
- DMARC define cómo tratar fallos y dónde recibir informes.
Evita poner como remitente la dirección del visitante. Úsala en Reply-To; de lo contrario, el servidor intenta enviar como un dominio que no controla y la autenticación falla con facilidad.
Paso 5: prueba la entrega, no solo el botón
Haz envíos a dos proveedores distintos y comprueba bandeja principal, spam y cabeceras. Revisa los eventos del proveedor: entregado, aplazado, rebotado o bloqueado. Si marca entregado pero el usuario no lo ve, puede haber filtros en su buzón. Si marca rechazo, la respuesta indica el motivo.
Comprueba también el formulario real con direcciones controladas: que guarde la solicitud, envíe al destinatario previsto y permita responder al remitente mediante Reply-To. Repite tras cerrar sesión y desde móvil. Si falla, conserva la hora e identificador de la prueba para pedir al proveedor que localice el intento. Un correo de prueba del plugin SMTP solo comprueba ese transporte; no garantiza que el formulario lo esté utilizando.
Errores frecuentes al “arreglar” el correo
- Instalar varios plugins SMTP a la vez; si el sitio ya acumula extensiones, revisa cuántos plugins son demasiados en WordPress antes de añadir otra.
- Cambiar puertos al azar sin consultar al proveedor.
- Usar Gmail personal como infraestructura de formularios de negocio.
- Dar por resuelto el problema tras una sola prueba interna.
- No guardar las solicitudes por una vía alternativa cuando el correo es crítico.
Si llega, pero va a spam
Es un problema relacionado pero distinto. La guía por qué tus emails llegan a spam entra en autenticación, reputación y contenido. Para conocer el comportamiento exacto de WordPress, consulta la referencia oficial de wp_mail().
Si el formulario genera oportunidades, configura también almacenamiento o una integración con CRM para no depender de una sola notificación. El mantenimiento web puede vigilar pruebas periódicas; si ha dejado de entrar correo de repente y afecta al negocio, usa el canal de soporte urgente.
Equipo Codanter
Desarrollo web, IA y automatización