Formulario que no llega: cómo arreglamos el correo saliente de WordPress
El aviso llegó así: «el libro de reclamaciones da error». La web de Proba Inmobiliaria, una página obligatoria por ley, y un formulario que al enviarse mostraba un error genérico. El visitante rellenaba todo, pulsaba enviar y recibía un mensaje rojo sin explicación. La causa no estaba en el formulario, y es la misma que rompe miles de formularios en Perú todos los días.
El diagnóstico: el formulario funcionaba
Lo primero fue dejar de mirar el formulario y mirar lo que respondía el servidor. Enviando desde la terminal, la respuesta era clara: el envío fallaba en la acción de correo, no en la validación ni en los campos.
Es decir, el formulario recibía los datos, los validaba, armaba el mensaje y, al pedirle a WordPress que lo enviara, WordPress decía que no. Y como la única acción configurada era «enviar un correo», cualquier fallo de correo rompía el envío entero.

Debajo había tres problemas encadenados:
1. No había ningún plugin de correo saliente. El sitio dependía de la función de correo de PHP del servidor, que en ese hosting no estaba configurada. WordPress intentaba enviar y recibía un no.
2. Aunque hubiera enviado, habría rebotado. El dominio usa Google Workspace para su correo. Su registro de autorización de remitentes dice, textualmente, que solo los servidores de Google pueden enviar correo en nombre de ese dominio. Un correo salido del servidor web habría ido directo a spam o al rechazo.
3. El formulario no guardaba nada. Esto es lo que convierte un problema en un desastre: durante el tiempo que estuvo fallando, cada persona que rellenó el formulario perdió su mensaje. No quedó ni rastro en la base de datos.
Lo primero que hicimos no fue arreglar el correo
Fue dejar de perder datos. Activamos el guardado de envíos en la base de datos y lo añadimos como acción del formulario, junto a la del correo. Desde ese momento, cada envío queda registrado y se puede consultar y exportar desde el escritorio, aunque el correo falle.
Para un libro de reclamaciones eso no es una comodidad, es una obligación: hay que conservar las hojas. Pero la lógica vale para cualquier formulario de un negocio. El correo es una notificación, no un sistema de registro. Qué más exige Indecopi, además de guardar cada hoja, está en la guía de libro de reclamaciones virtual en WordPress. Si tu única copia de un contacto es un correo en una bandeja de entrada, ya perdiste contactos y no lo sabes.
Con eso puesto, la respuesta del servidor pasó a ser correcta y el visitante dejó de ver el error. Después vino el correo.
Cómo se arregla el correo saliente, en orden

Hay dos caminos y la elección depende de quién controla el correo del dominio.
Camino A: la propia cuenta de Google Workspace del cliente. Se instala un plugin de correo saliente y se configura con el servidor de salida de Google, puerto 587 y cifrado STARTTLS. Hay dos detalles que hacen fallar esto a casi todo el mundo:
- La contraseña no es la del buzón: es una contraseña de aplicación de 16 letras que se genera aparte, y que exige tener activada la verificación en dos pasos de esa cuenta. Usar la contraseña normal devuelve siempre un error de credenciales.
- El usuario tiene que ser el correo completo, con el dominio incluido.
Y un bloqueo que no depende de ti: si el administrador del Workspace del cliente tiene deshabilitadas las contraseñas de aplicación, la opción ni aparece. Ahí toca pedírselo o pasar al camino B.
Camino B: un servicio de envío externo. Se autentica el dominio en el proveedor (tres registros en el DNS), se genera una clave y se configura el plugin con ella. Es el camino que usamos por defecto cuando no controlamos el correo del cliente, y el que recomendamos en todos nuestros servidores. La ventaja es que deja de importar desde qué IP sale el correo.
Dos errores que cuestan una tarde
Usar un correo de la agencia como cuenta de envío. Funciona en la prueba y es un desastre en producción: el proveedor reescribe el remitente, los reclamos del cliente salen «desde» la agencia y las respuestas de los consumidores llegan a la bandeja equivocada.
No forzar el remitente. Si no se activa esa opción, los formularios intentan enviar poniendo como remitente el correo del propio visitante. Ningún servicio autenticado permite eso, porque es exactamente lo que hace la suplantación, y rechaza el envío. Esta es, en nuestra experiencia, la causa número uno de «lo configuré y sigue sin funcionar».
La comprobación final, que casi nadie hace

Que el plugin diga «correo de prueba enviado» no significa que el sistema funcione. Nuestro cierre son cinco pasos:
- El correo de prueba del plugin llega a una bandeja real, y en su cabecera la firma del dominio aparece como válida.
- El buzón de destino existe. Suena obvio; es el fallo más tonto y más frecuente. Si la dirección de aviso no está creada en el Workspace, el correo sale, llega y rebota.
- El guardado de envíos sigue activo, junto al correo y no en su lugar.
- Un envío real desde el formulario público, no desde el botón de prueba del plugin. Son dos caminos distintos del código.
- Se borra el envío de prueba de la base de datos.
Por qué esto pasa tanto en Perú
Por una combinación muy común: el correo del dominio está en Google Workspace y la web está en un hosting con Plesk o cPanel. Son dos proveedores distintos para dos cosas que el visitante ve como una sola. El servidor web no tiene permiso para enviar en nombre del dominio, y nadie lo descubre hasta que un formulario importante deja de llegar, muchas veces semanas después.
Es también la razón por la que, en todos los servidores que montamos, el correo del sitio va por un servicio externo desde el primer día, antes de que haya un solo formulario publicado. Es parte de lo que entra en el mantenimiento web, junto con lo demás que describimos en mantenimiento de WordPress.
Preguntas frecuentes sobre el correo de WordPress
¿Por qué WordPress no envía correos?
Casi siempre por una de dos razones: el servidor no tiene configurada la función de correo, o el dominio tiene su correo en otro proveedor y su registro de autorización rechaza los envíos del servidor web. Ambas se resuelven con un plugin de correo saliente autenticado.
¿Qué es una contraseña de aplicación y por qué la necesito?
Es una clave de 16 letras que se genera específicamente para que un programa acceda a tu cuenta de correo, sin darle tu contraseña real. Google y la mayoría de proveedores ya no aceptan la contraseña del buzón para conexiones de este tipo. Requiere tener activada la verificación en dos pasos.
¿Mis formularios se pierden si falla el correo?
Si el correo es la única acción configurada, sí, y sin dejar rastro. Por eso lo primero que activamos siempre es el guardado de envíos en la base de datos. El correo avisa; la base de datos conserva.
¿Puedo usar mi Gmail personal para enviar los correos de la web?
Técnicamente sí, pero no deberías: los correos saldrán con tu dirección personal, las respuestas llegarán ahí, y si algún día cambias de cuenta la web deja de enviar. Usa una dirección del dominio del negocio.
¿Cuánto cuesta esto?
Nada o casi nada. Los plugins de correo saliente tienen versión gratuita, y los servicios de envío incluyen unos cientos de correos diarios sin costo, muy por encima de lo que mueve un formulario de contacto normal. Lo que cuesta es la hora de configurarlo bien.
Conclusión
Un formulario que falla casi nunca es un problema de formulario. Es correo: el servidor no puede enviar, o no tiene permiso para enviar en nombre del dominio. La reparación es de una tarde, pero el orden importa: primero se deja de perder datos guardando los envíos, después se autentica el correo, y al final se comprueba con un envío real desde la página pública.
En Lucuma Agency, agencia de marketing digital en Lima, esto es parte del montaje estándar de toda web que entregamos, y lo revisamos en cada mantenimiento. Si llevas tiempo sin recibir formularios y no sabes si es que no te escriben o es que no te llegan, lo vemos en nuestras webs para inmobiliarias y en el resto de proyectos: diseño web para inmobiliarias o agenda una consultoría gratis y lo comprobamos en 10 minutos.
Otros blogs que pueden interesartes
En casi todas las inmobiliarias con las que trabajamos, el lead hace el mismo viaje absurdo: entra por el formulario...
Cambiar de servidor da miedo por una razón sensata: se hace poco, y cuando sale mal, sale mal en público....
La pregunta llega siempre igual: «¿qué pasarela me recomiendas?». Y la respuesta útil no empieza por un nombre, porque las...
Hay un momento, en bastantes proyectos, en que la búsqueda del plugin correcto se convierte en el problema. Probaste tres,...
Casi todos los libros de reclamaciones virtuales que auditamos cumplen por fuera y no cumplen por dentro. Tienen el aviso,...
El aviso llegó así: «el libro de reclamaciones da error». La web de Proba Inmobiliaria, una página obligatoria por ley,...
Las listas de «los 50 mejores plugins» no sirven para decidir. Sirven para instalar cincuenta plugins. Esta es la nuestra,...
Casi todos los negocios a los que preguntamos tienen backups. Casi ninguno ha restaurado uno. Esas dos frases juntas son...
Casi todas las conversaciones sobre hosting empiezan por el precio y terminan en el lugar equivocado. La pregunta útil es...
Cuando un negocio quiere vender fuera de su país, la conversación casi siempre empieza mal: por la traducción. Y la...
Los datos estructurados son el trozo de código que le explica a Google, en un idioma que no admite interpretación,...
La pregunta llega en casi todas las reuniones: «si uso inteligencia artificial para escribir, ¿Google me penaliza?». La respuesta corta...