Le formulaire de contact affiche « message envoyé » mais rien n’arrive
C’est un problème distinct des e-mails de commande WooCommerce : ici, c’est un formulaire de contact ou de devis (Contact Form 7, WPForms, Gravity Forms…) qui affiche une confirmation d’envoi au visiteur, alors que l’e-mail ne quitte jamais réellement le serveur. La confirmation s’affiche côté navigateur, indépendamment du succès réel de l’envoi côté serveur, ce qui rend le problème plus trompeur qu’un simple e-mail perdu.
Comment je procède
-
Reproduction et vérification du réseau
J’envoie un test et je regarde dans les outils réseau du navigateur si la requête Ajax de soumission part réellement vers le serveur, ou si elle est bloquée avant même d’être envoyée.
-
Contrôle du reCAPTCHA ou hCaptcha
Je vérifie que la clé de site et la clé secrète correspondent bien, et qu’il n’y a pas de désaccord entre le domaine configuré chez le fournisseur et le domaine réel du site.
-
Test de l’envoi côté serveur
Je teste wp_mail() directement pour savoir si le blocage vient de la fonction d’envoi elle-même, souvent limitée par mail() PHP, ou d’une étape antérieure côté formulaire.
-
Recherche d’un conflit JavaScript
Si la requête ne part jamais, je cherche une extension qui casse le gestionnaire de soumission Ajax du formulaire, souvent une autre extension qui charge un script en double ou en conflit.
-
Mise en place d’un relais SMTP authentifié
Si le blocage est côté envoi, je configure un relais SMTP authentifié via le hook phpmailer_init, plus fiable que la fonction mail() native du serveur.
Ce que je traite régulièrement
- Le message « votre message a bien été envoyé » s’affiche, mais rien n’arrive jamais dans la boîte mail
- Le formulaire semble fonctionner, mais aucune trace de soumission n’apparaît nulle part
- Le bouton d’envoi reste bloqué ou ne réagit pas du tout au clic
- Le formulaire fonctionnait bien, puis a cessé d’envoyer sans qu’aucun réglage n’ait changé
- Certains messages arrivent, d’autres non, sans logique apparente
Pourquoi la confirmation ment parfois
Un formulaire de contact repose sur la même fragilité que les e-mails transactionnels : wp_mail() s’appuie par défaut sur la fonction mail() de PHP, souvent mal considérée par les serveurs de réception. Mais ici, le piège est plus trompeur, car le plugin affiche un message de succès côté client dès que le JavaScript s’exécute, sans attendre de confirmation fiable que l’envoi serveur a réellement abouti.
Une clé reCAPTCHA ou hCaptcha mal configurée, clé de site et clé secrète inversées, ou un désaccord de domaine, peut bloquer silencieusement la soumission elle-même : le visiteur ne voit ni erreur ni blocage apparent. Un conflit JavaScript provoqué par une autre extension peut aussi casser le gestionnaire de soumission Ajax du formulaire, qui semble « marcher » sans jamais rien envoyer au serveur.
Autres sujets liés
-
Développer une extension WooCommerce sur mesure
Quand un formulaire doit se connecter à un outil métier au-delà d’un simple envoi d’e-mail.
-
Dépannage urgent
Un formulaire de devis muet coûte des prospects à chaque jour qui passe.
-
Toutes les interventions WooCommerce
Les autres pannes et évolutions que je traite sur WooCommerce.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.