Quand un formulaire de contact WordPress ne fonctionne pas, la panne se situe le plus souvent après le clic du visiteur, au moment où le site envoie l’e-mail. Par défaut, WordPress confie ce message au serveur qui l’héberge, sans authentification, et les messageries le refusent ou le rangent dans les indésirables. Pour que les demandes arrivent durablement, il faut envoyer par SMTP authentifié depuis une adresse de votre domaine, publier les enregistrements SPF, DKIM et DMARC, puis tester le formulaire après chaque mise à jour.
Voici comment repérer cette panne, d’où elle vient, comment tester votre formulaire et quels réglages la font disparaître, avec un point sur Contact Form 7. Si vous préférez confier le problème, c’est une intervention courante en dépannage WordPress.
Un formulaire en panne ne prévient personne
Un site en panne se remarque : une page blanche, un message d’erreur, un client qui vous le signale. Un formulaire qui n’envoie plus rien passe inaperçu. Le visiteur remplit les champs, lit un message de remerciement, puis attend une réponse qui ne viendra pas. De votre côté, vous mettez le calme de votre boîte sur le compte de la saison.
La panne se découvre souvent par hasard, quand un client rappelle, agacé, parce que sa demande de devis est restée sans réponse. Entre-temps, des semaines ont pu passer, et ceux qui n’ont pas rappelé sont partis chez un confrère.
Un formulaire en panne ne fait aucun bruit.
Pourquoi un formulaire de contact WordPress ne fonctionne pas : les causes côté e-mail
La fonction mail() de PHP, sans SMTP authentifié
WordPress fonctionne en PHP, le langage qui fait tourner le site sur le serveur. Pour envoyer un e-mail, il utilise par défaut la fonction mail() de PHP : le serveur web expédie le message lui-même, sans passer par une messagerie. Quand WordPress n’envoie pas de mail du tout, c’est souvent que l’hébergeur a désactivé ou limité cette fonction. Ailleurs, le message part d’une machine partagée avec beaucoup d’autres sites, et Gmail, Outlook ou Orange s’en méfient, car c’est ainsi que procèdent de nombreux envoyeurs de spam.
La parade s’appelle SMTP, le protocole que les serveurs de messagerie utilisent pour se transmettre les e-mails. En « SMTP authentifié », le site se connecte à une boîte mail existante avec un identifiant et un mot de passe, puis expédie depuis ce serveur. Sans extension pour le configurer, WordPress ne le fait jamais.
Un nom de domaine sans SPF, DKIM ni DMARC
Ces sigles désignent des enregistrements placés dans la zone DNS de votre domaine, l’annuaire public qui indique où se trouvent votre site et votre messagerie.
- SPF liste les serveurs autorisés à envoyer des e-mails au nom de votre domaine.
- DKIM signe chaque message avec une clé publiée dans le DNS, ce qui prouve qu’il vient de chez vous et n’a pas été modifié.
- DMARC dit aux messageries quoi faire d’un message qui échoue à ces contrôles : l’accepter, le classer en indésirables ou le rejeter. Il vérifie aussi que le domaine affiché comme expéditeur est celui qui a été authentifié.
Gmail et Yahoo exigent depuis 2024 qu’un expéditeur soit au moins authentifié par SPF ou DKIM. Sans ces enregistrements, ou avec un SPF qui oublie le serveur du site, les messages sont refusés ou mis de côté.
Une adresse d’expédition qui n’est pas celle de votre domaine
Le champ « De » (« From ») indique l’expéditeur. Beaucoup de formulaires y placent l’adresse du visiteur, pour pouvoir lui répondre d’un clic. Pour Gmail, un message qui se dit envoyé par une adresse Gmail mais arrive d’un serveur extérieur ressemble à une usurpation, et DMARC le bloque.
Indésirables, boîte pleine, mauvaise adresse
Reste le bout du trajet, souvent négligé :
- les indésirables : même bien authentifié, un message peut y finir, et ce dossier se vide seul au bout d’un certain temps ;
- une boîte pleine, qui refuse les nouveaux messages, souvent une adresse fournie avec l’hébergement que personne ne consulte ;
- une adresse de destination erronée : ancien salarié, ancienne box, ancien prestataire, faute de frappe, ou adresse d’administration de WordPress reprise par défaut.

Un WordPress qui vous inquiète ? Thomas regarde avec vous.
Quand c’est le formulaire lui-même qui bloque
Ici, le visiteur voit que quelque chose ne va pas : un message d’erreur, un bouton qui tourne dans le vide, un formulaire disparu. Encore faut-il qu’il vous prévienne.
Une extension de formulaire cassée après une mise à jour
WordPress gère les formulaires grâce à une extension : Contact Form 7, WPForms, Gravity Forms ou Fluent Forms, par exemple. Une mise à jour de l’extension, de WordPress ou de PHP peut la rendre incompatible avec le thème ou une autre extension. Le formulaire disparaît, affiche un bout de code entre crochets, ou refuse l’envoi. D’où l’intérêt de sauvegarder et tester avant de mettre à jour WordPress.
Un conflit d’extensions ou de cache
- Les extensions qui accélèrent le site en regroupant ou en retardant le JavaScript, le code qui fait réagir la page, peuvent bloquer le bouton d’envoi.
- Le cache de pages sert une copie enregistrée de la page. Si elle contient un jeton de sécurité périmé, le serveur refuse le message.
- Les extensions de sécurité ferment parfois l’API REST, la porte technique par laquelle Contact Form 7 et d’autres transmettent le formulaire au serveur.
- Deux extensions d’envoi d’e-mails actives en même temps se disputent le réglage.
Un anti-spam ou un captcha trop strict
Un captcha est un test qui distingue un humain d’un robot. Le plus connu, reCAPTCHA de Google, note chaque visiteur de façon invisible. Mal réglé, il écarte des clients bien réels, par exemple ceux qui refusent les cookies quand l’outil de consentement bloque son script. Protégez-vous des robots, mais vérifiez que les humains passent.
Comment tester votre formulaire de contact vous-même
- Envoyez un message depuis un autre appareil, votre téléphone par exemple, avec une adresse personnelle.
- Notez ce qu’affiche le formulaire : confirmation, message d’erreur, ou bouton qui tourne dans le vide.
- Cherchez le message dans la boîte de destination, indésirables compris, depuis le webmail.
- Lisez les en-têtes du message reçu. Dans Gmail, le menu « Afficher l’original » indique si SPF, DKIM et DMARC sont validés (PASS) ou en échec (FAIL).
- Activez un journal des e-mails, avec une extension comme WP Mail Logging. Si le message figure au journal mais pas dans votre boîte, il s’est perdu après le serveur. S’il n’y figure pas, le blocage vient du formulaire.
- Utilisez l’outil de test d’une extension SMTP : WP Mail SMTP, par exemple, envoie un e-mail d’essai et affiche l’erreur en clair.
| Ce que vous constatez | Cause probable | Première vérification |
|---|---|---|
| Le bouton d’envoi tourne sans fin | JavaScript, cache, API REST fermée | Vider le cache, suspendre l’extension en cause |
| Un message d’erreur s’affiche | Envoi refusé, SMTP mal réglé | Outil de test de l’extension SMTP |
| « Message envoyé », rien n’arrive | Refus en aval, mauvaise adresse, boîte pleine | Journal des e-mails, adresse de destination |
| Arrivée dans les indésirables | SPF, DKIM, DMARC ou expéditeur hors domaine | En-têtes du message reçu |
| Le formulaire a disparu | Extension cassée par une mise à jour | Liste des extensions |
| Certains visiteurs seulement sont bloqués | Captcha ou anti-spam trop strict | Test sur téléphone, cookies refusés |
Les réglages qui font arriver les messages
Envoyer par SMTP grâce à une extension
Une extension SMTP, comme WP Mail SMTP, FluentSMTP ou Post SMTP, remplace la fonction mail() par un envoi authentifié. On la branche :
- sur la messagerie de votre domaine (hébergeur, Google Workspace, Microsoft 365), ce qui suffit pour un site qui reçoit peu de messages. Les grands fournisseurs demandent de plus en plus une connexion OAuth, c’est-à-dire une autorisation donnée depuis votre compte sans communiquer votre mot de passe ;
- ou sur un service d’envoi transactionnel, spécialisé dans les e-mails automatiques d’un site, comme Brevo ou Mailjet, qui conserve un historique détaillé des envois.
Publier SPF, DKIM et DMARC dans la zone DNS
Ces enregistrements se créent chez le gestionnaire DNS du domaine, souvent le bureau d’enregistrement ou l’hébergeur. Un domaine ne doit porter qu’un seul enregistrement SPF, qui déclare chaque service envoyant en votre nom : deux enregistrements concurrents le rendent invalide. La clé DKIM se recopie à l’identique. DMARC peut démarrer en mode observation, où les messageries envoient des rapports sans rien bloquer, avant d’être durci.
Avec l’hébergement WordPress que je propose, l’envoi des e-mails du site passe par un service authentifié, et SPF, DKIM et DMARC font partie de la configuration.
Une adresse d’expédition du domaine, une réponse vers le visiteur
Dans l’extension de formulaire, l’expéditeur doit être une adresse de votre domaine, idéalement celle du compte SMTP. Le champ « Répondre à » (Reply-To) reprend l’adresse saisie par le visiteur : votre réponse lui parvient d’un clic.
Garder une copie des messages dans le site
Beaucoup d’extensions de formulaire enregistrent chaque demande dans la base de données du site, parfois dans leur seule version payante. Pour Contact Form 7, il faut une extension compagnon du même auteur, Flamingo. Si l’e-mail se perd, la demande reste consultable dans l’administration. Ce sont des données personnelles : fixez une durée de conservation et mentionnez-la dans votre politique de confidentialité.

Contact Form 7 ne fonctionne pas : les réglages à vérifier
Contact Form 7 est gratuit et solide, mais dépouillé : il envoie un e-mail et ne garde rien. Dans l’écran de modification du formulaire, regardez :
- les avertissements en haut de l’écran, où le validateur de configuration signale par exemple une adresse d’expédition étrangère au domaine du site ;
- l’onglet E-mail, champ « À » : l’adresse qui reçoit les demandes ;
- le champ « De » : une adresse de votre domaine, et non la balise
[your-email]qui reprend celle du visiteur ; - les en-têtes additionnels : la ligne
Reply-To: [your-email], présente par défaut, est souvent effacée par erreur.
Un message du type « Une erreur s’est produite lors de l’envoi de votre message » signale en général un échec de l’envoi de l’e-mail : c’est l’extension SMTP qu’il faut régler.
Éviter la prochaine panne : un test chaque mois
Un formulaire en panne ne fait aucun bruit, alors il faut aller vérifier qu’il fonctionne. Je recommande un envoi de test chaque mois, et un autre après chaque mise à jour, changement de messagerie ou modification du DNS. Il prend quelques minutes et évite des semaines de silence.
Dans la maintenance WordPress que je propose, les mises à jour sont appliquées chaque mois sur une copie du site, puis les pages sensibles sont vérifiées, formulaire de contact compris. Pour aller plus loin, voyez pourquoi un site WordPress a besoin d’un plan de maintenance et ce qu’un contrat de maintenance doit contenir.
Questions fréquentes
Pourquoi mon formulaire affiche « message envoyé » alors que je ne reçois rien ?
Parce que ce message confirme seulement que WordPress a remis l’e-mail au serveur. La suite dépend de l’authentification de votre domaine, de l’adresse d’expédition et de l’état de votre boîte. Un journal des e-mails permet de savoir où le message s’est arrêté.
WP Mail SMTP est-il obligatoire ?
Aucune extension précise n’est obligatoire, mais un envoi par SMTP authentifié est devenu presque indispensable. WP Mail SMTP le permet, comme FluentSMTP ou Post SMTP. Certains hébergements WordPress règlent l’envoi authentifié directement sur le serveur.
Pourquoi les messages du formulaire arrivent-ils dans les spams ?
Le plus souvent, parce que le domaine n’a pas d’enregistrements SPF, DKIM et DMARC corrects, ou parce que l’expéditeur affiché n’est pas une adresse de votre domaine. Marquer l’expéditeur comme fiable dans votre messagerie ne règle le problème que pour vous.
Comment savoir si j’ai perdu des demandes ?
Si votre extension enregistre les messages dans la base de données, comparez-les avec votre boîte mail. Sinon, votre service d’envoi ou votre hébergeur garde parfois une trace des envois récents. À défaut, il est difficile de le savoir, d’où l’intérêt de conserver une copie des demandes.
Vous avez un doute sur votre formulaire, ou vous soupçonnez des demandes perdues ? Faire vérifier mon formulaire : je teste l’envoi de bout en bout et je vous dis ce qu’il faut corriger. Devis gratuit et sans engagement, réponse sous 48 h ouvrées.





