Le formulaire affiche “Envoyé” — et pourtant, rien n’arrive

C’est le bug silencieux par excellence : le visiteur clique sur “Envoyer”, le message de confirmation vert s’affiche, et de votre côté… boîte vide. Pas de notification, pas de lead, potentiellement des semaines de formulaires perdus sans que personne ne s’en aperçoive.

Contact Form 7 (CF7) délègue l’envoi des emails à la fonction PHP mail() native du serveur. Cette fonction est datée, capricieuse, et de plus en plus bloquée par les hébergeurs modernes pour des raisons de sécurité. Résultat : CF7 considère l’email comme “envoyé” dès que PHP l’accepte — pas dès qu’il arrive dans votre boîte. La distinction est cruciale.

Bonne nouvelle : le problème est presque toujours identifiable et réglable en moins d’une heure.

Pourquoi ça arrive : les 5 causes classiques

Solution 1 — Vérifier le spam et tester l’envoi brut

Avant de toucher quoi que ce soit : ouvrez votre dossier spam. Si l’email est là, vous avez déjà la moitié du diagnostic.

Ensuite, installez CF7 Mail Check ou Check Email (plugins gratuits). Ces outils envoient un email de test via la même chaîne que CF7 et confirment si le problème vient de mail() ou d’autre chose. Si le test échoue avec une erreur explicite, vous avez la confirmation que mail() est bloquée côté hébergeur.

Solution 2 — Vérifier la configuration du formulaire CF7

Allez dans Contact → Formulaires de contact → Modifier sur votre formulaire.

Cliquez sur l’onglet Mail et vérifiez :

Sauvegardez et faites un test de soumission.

Solution 3 — Installer un plugin SMTP (la vraie solution)

C’est le correctif qui règle 90 % des problèmes. Au lieu de mail(), vous passez par un serveur SMTP authentifié — exactement comme votre client email. Le serveur destinataire reçoit un email traçable, signé, avec une vraie identité d’expéditeur.

Deux plugins fiables et gratuits :

Configurer WP Mail SMTP pas à pas

  1. Installez et activez WP Mail SMTP depuis Extensions → Ajouter.
  2. Allez dans WP Mail SMTP → Settings.
  3. From Email : noreply@votredomaine.com (ou l’adresse de votre choix sur votre domaine).
  4. From Name : le nom de votre entreprise.
  5. Mailer : choisissez votre service d’envoi. Les options les plus simples en 2026 :
    • Gmail / Google Workspace : si vous avez une adresse pro Google, connectez-la via OAuth.
    • Brevo (ex-Sendinblue) : compte gratuit jusqu’à 300 emails/jour, configuration par clé API.
    • Resend : excellent pour les développeurs, le guide de configuration est ici.
    • SMTP classique : si votre hébergeur fournit un serveur SMTP (OVH, cPanel…), utilisez les identifiants fournis dans votre panel.
  6. Remplissez les champs SMTP (hôte, port 587 ou 465, identifiants).
  7. Utilisez Send Test Email pour valider.

Si le test passe, CF7 utilisera automatiquement ce plugin — aucune modification de CF7 n’est nécessaire. WP Mail SMTP intercepte tous les appels WordPress à mail() et les redirige via SMTP.

Pour une configuration SMTP complète sur WordPress, l’article emails WordPress qui n’arrivent pas couvre tous les cas de figure.

Solution 4 — Corriger les enregistrements SPF et DKIM

Même avec un SMTP correctement configuré, vos emails peuvent finir en spam si les enregistrements DNS ne correspondent pas à l’expéditeur. C’est une question de délivrabilité, pas de configuration WordPress.

SPF : enregistrement TXT dans votre zone DNS qui liste les serveurs autorisés à envoyer des emails pour votre domaine.

Exemple pour Brevo :

v=spf1 include:spf.brevo.com ~all

DKIM : signature cryptographique ajoutée à chaque email. Votre service d’envoi (Brevo, Resend, Google…) vous fournit l’enregistrement CNAME ou TXT à ajouter dans votre zone DNS.

Si vous gérez vos DNS sur IONOS, ce guide pas à pas vous montre où ajouter ces enregistrements. Pour un diagnostic complet sur SPF/DKIM/DMARC, consultez l’article dédié à la délivrabilité email pro.

Comptez 15 à 30 minutes pour la propagation DNS avant de retester.

Solution 5 — Utiliser le mail secondaire CF7 pour le double envoi

CF7 propose un onglet Mail 2 dans la configuration du formulaire. Ce deuxième email est envoyé en confirmation à l’expéditeur (le visiteur). Si vos notifications arrivent mais pas les confirmations visiteur (ou inversement), activez et configurez cet onglet séparément.

Assurez-vous que Mail 2 est coché et que le champ To pointe bien vers [your-email] — la balise du champ email de votre formulaire.

Tableau récapitulatif : cause → diagnostic → solution

SymptômeCause probableSolution
Aucun email, aucun spammail() bloquée par l’hébergeurInstaller WP Mail SMTP + service SMTP
Email en spamSPF/DKIM absents ou incorrectsAjouter les enregistrements DNS
From en gmail.com ou yahoo.comAdresse expéditeur non autoriséeUtiliser une adresse sur votre domaine
Notification reçue, confirmation visiteur nonMail 2 non configuréActiver et configurer l’onglet Mail 2
Test SMTP réussi, CF7 toujours silencieuxConflit de pluginDésactiver les autres plugins email/cache, retester
Formulaire affiche erreur rougeProblème de validation CF7, pas d’envoiVérifier les champs requis et les balises

FAQ

CF7 affiche "Votre message a bien été envoyé" — ça veut dire que l'email est parti ?

Non. Ce message signifie uniquement que WordPress a accepté la demande d’envoi via mail(). Si mail() est bloquée ou si l’email est rejeté en aval, CF7 ne le sait pas et affiche quand même le message de succès. Seul un plugin SMTP avec logs d’envoi vous donne une vraie confirmation de transmission.

Quel service SMTP gratuit recommander pour un petit site PME ?

Brevo (ex-Sendinblue) reste le choix le plus simple : 300 emails/jour en gratuit, interface française, SPF/DKIM préconfigurés. Resend est excellent si vous avez un développeur dans l’équipe. Gmail/Google Workspace fonctionne bien si vous avez déjà une adresse pro Google — attention, les quotas d’envoi sont limités pour un usage non-transactionnel.

Mon hébergeur propose déjà un serveur SMTP. Dois-je quand même installer un plugin ?

Oui. WordPress n’utilise pas le SMTP de votre hébergeur par défaut — il passe toujours par mail(). Un plugin comme WP Mail SMTP est nécessaire pour rediriger les envois vers le SMTP de votre hébergeur, même si ce serveur existe et fonctionne.

Est-ce que le problème peut venir d'un conflit avec un plugin de cache ?

Rarement sur l’envoi lui-même, mais certains plugins de cache peuvent mettre en cache la réponse AJAX de CF7 et afficher un ancien message de succès sans déclencher l’envoi. Désactivez temporairement votre plugin de cache et testez. Si ça résout le problème, ajoutez l’URL d’action du formulaire à la liste des exclusions du cache.

CF7 fonctionne sur un site de staging mais pas en production — pourquoi ?

Les environnements de staging ont souvent une configuration d’envoi différente. Vérifiez que WP Mail SMTP est configuré avec les mêmes identifiants SMTP en production, et que les enregistrements SPF/DKIM pointent vers le bon domaine (celui de production, pas le sous-domaine staging).

Quand passer la main à un pro

Si après avoir installé WP Mail SMTP, configuré un vrai service SMTP et ajouté les enregistrements SPF/DKIM, les emails restent introuvables — le problème dépasse CF7. Ça peut être une liste noire IP du serveur, une configuration DNS complexe à diagnostiquer, ou un conflit profond dans la stack WordPress. À ce stade, une maintenance active avec accès serveur est nécessaire — pas une heure de plus à chercher dans les logs en aveugle.

Des formulaires qui n’envoient rien, c’est des leads perdus. Chaque jour sans correction a un coût réel.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout — hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy