29 Mar Contact Form 7 no envía correos
Ya hemos dejado bastante claro en esta otra entrada que Contact Form 7 es uno de nuestros plugins preferidos para formularios de contacto, que además nos puede servir por ejemplo como formularios previos a una descarga.
Pero no por ello no significa que sea infalible, aunque los errores sean bastantes escasos nos pueden traer algún que otro dolor de cabeza. En esta entrada vamos a explicar los dos últimos errores a los que me he enfrentado y la solución que he conseguido.
Contact Form funcion mail()
El primer error que vamos a detallar es cuando el problema viene de la función mail PHP de la que hace uso Contact Form y wordpress.
Este error es bastante común y es debido a que el hosting donde tenemos alojado nuestro wordpress no tiene activa o no dispone de la función mail PHP que es la que hace que se envíen los correos electrónicos mediante PHP. Lo único que tenemos que hacer es cambiar la forma en la que se envían dichos correos pasando a enviarlos a través del protocolo SMTP que es el protocolo utilizado por los clientes de correo.
Según Wikipedia:
El protocolo para transferencia simple de correo (en inglés Simple Mail Transfer Protocol o SMTP) es un protocolo de red utilizado para el intercambio de mensajes de correo electrónico entre computadoras u otros dispositivos (PDA, teléfonos móviles, impresoras, etc). Fue definido inicialmente en agosto de 1982 por el RFC 821 (para la transferencia) y el RFC 822 (para el mensaje). Son estándares oficiales de Internet que fueron reemplazados respectivamente por el RFC 2821 y el RFC 2822, que a su vez lo fueron por el RFC 5321 y el RFC 5322.1
El funcionamiento de este protocolo se da en línea, de manera que opera en los servicios de correo electrónico. Sin embargo, este protocolo posee algunas limitaciones en cuanto a la recepción de mensajes en el servidor de destino (cola de mensajes recibidos). Como alternativa a esta limitación se asocia normalmente a este protocolo con otros, como el POP o IMAP, otorgando a SMTP la tarea específica de enviar correo, y recibirlos empleando los otros protocolos antes mencionados (POP O IMAP).
La solución reside, como no, en instalar un plugin para tal efecto. En un proyecto que tenía este problema me decanté por instalar el plugin Post SMTP Mailer/Email Log el cual tiene un Wizard de configuración, aunque también podemos saltarnos dicho wizard y acceder a las distintas opciones de configuración, también tiene un registro de los emails enviados.
Con este plugin solventamos el fallo de los envios de emails y pasan a ser enviados a través de SMTP.
Recaptcha V3
El último error que me he encontrado para solucionar es que Contact Form no enviaba correos y lo más curioso es que siempre mostraba error de envío que lo intentara más tarde, y en el caso de que se llegara a enviar no mostraba el aviso de que se había enviado el correo.
Al observar que siempre mostraba el mismo error intente la solución descrita en el punto anterior sin conseguir ningún resultado positivo, el email de prueba del plugin si que se llegaba a enviar pero no desde Contact Form, y lo que más me mosquea es la falta de aviso cuando conseguía aparentemente enviar el formulario.
La solución es muy simple, pero hasta dar con ella me costó más de un dolor de cabeza encontrar dicha solución, Contact Form en una de sus últimas actualizaciones no admite Reaptcha V2 con lo que te obliga a integrar con Recaptcha V3 pero resulta que tiene un conflicto con dicha versión que hace que bloquee el envío del email.
Lo único que tenemos que hacer es instalar Contact Form 7 – reCaptcha v2 el cual nos habilita Recaptcha V2 para que funcione en Contact Form, solicitamos nuestra clave de Recaptcha V2 en su plataforma y la integramos en nuestro Contact Form (Integraciones) y el envío se vuelve a activar de forma automática.
Este error el equipo de Contact Form ya está informado y seguro, conociendo al equipo de Contact Form, que no tardarán en solucionarlo
Aquí dos errores que me he encontrado últimamente, si tienes algún otro problema puedes escribirme detallándome el problema y miramos si podemos solucionarlo.
No Comments