Contact Form 7 est le plugin WordPress le plus populaire pour les formulaires de contact. Simple, gratuit et très flexible. Mais une question revient constamment chez les webmasters : « Mon formulaire est configuré, pourquoi les emails ne partent pas ? »
La réponse est souvent décevante mais simple : Contact Form 7 utilise par défaut la fonction WordPress wp_mail(), qui envoie les emails via le serveur du même hôte — ce qui fonctionne rarement. Sans configuration d'un serveur SMTP externe et sans vérification des enregistrements DNS (SPF/DKIM), vos messages partent à la corbeille du destinataire ou… ne partent simplement pas.
Dans cet article, nous vous montrons exactement où se trouve le problème et comment le résoudre en trois étapes.
Pourquoi Contact Form 7 n'envoie pas les emails par défaut
Quand vous cliquez sur « Envoyer » dans un formulaire Contact Form 7, le plugin appelle la fonction wp_mail() de WordPress. Cette fonction tente d'envoyer l'email via PHP mail(), une fonction qui utilise le serveur SMTP local de l'hôte d'hébergement.
Voici les trois problèmes qui apparaissent presque systématiquement :
- Pas de serveur SMTP configuré. La plupart des hébergements partagés n'offrent pas de serveur SMTP accessible facilement. PHP mail() envoie donc à partir du serveur web lui-même, ce qui génère des alertes chez Gmail, Outlook, Orange et autres fournisseurs.
- Domaine From incohérent. Sans configuration explicite,
wp_mail()envoie depuis une adresse qui ne correspond pas au domaine du site. Par exemple, depuis « noreply@monserveur.local » au lieu de « contact@monentreprise.fr ». Les filtres antispam rejettent immédiatement. - Pas de signature DKIM ni d'enregistrement SPF. Même si l'email part, sans authentification DNS, il est traité comme suspect ou potentiellement falsifié. Gmail, Orange et les autres appliquent de plus en plus strictement ces règles.
Le résultat ? Les emails finissent dans les dossiers Spam, Promotions ou n'arrivent tout simplement jamais à destination.
Vérifier la configuration actuelle de Contact Form 7
Avant de dépanner, confirmez d'abord que Contact Form 7 enregistre réellement les tentatives d'envoi.
- Allez dans Contact Form 7 > Formulaires de contact depuis l'administration WordPress.
- Ouvrez le formulaire problématique et cliquez sur l'onglet « Réglages ».
- Cherchez le champ « Adresse email pour la notification » et notez l'adresse. Elle doit avoir un domaine (par exemple : contact@monsite.fr, pas noreply@monserveur.local).
- Testez l'envoi en remplissant le formulaire depuis l'interface publique du site.
- Vérifiez vos dossiers Spam/Junk et aussi les logs d'erreur PHP de votre hébergement.
Si rien n'arrive, y compris en Spam, c'est que wp_mail() ne fonctionne pas du tout. Passez à l'étape suivante.
Installer et configurer WP Mail SMTP
La solution standard et gratuite en partie : le plugin WP Mail SMTP. Ce plugin remplace wp_mail() par un système qui utilise un serveur SMTP externe — un fournisseur d'email spécialisé (Brevo, Mailjet, Gmail, etc.) qui a une bonne réputation auprès des fournisseurs d'accès.
- Allez dans Extensions > Ajouter depuis WordPress.
- Cherchez « WP Mail SMTP » et cliquez sur « Installer » puis « Activer ».
- Une fois activé, un nouvel élément « WP Mail SMTP » apparaît dans le menu latéral. Cliquez dessus.
- Remplissez les paramètres :
- « From Email » : utilisez une adresse de votre domaine (exemple : noreply@monsite.fr ou contact@monsite.fr).
- « From Name » : le nom de votre entreprise (exemple : « Support Mon Entreprise »).
- « Mailer » : choisissez votre fournisseur SMTP. Les options gratuites incluent Brevo (anciennement Sendinblue), Mailjet ou Gmail (pour les petits volumes).
- Entrez les identifiants SMTP fournis par votre ESP et sauvegardez.
Une fois configuré, WP Mail SMTP intercepte chaque appel à wp_mail() — y compris ceux de Contact Form 7 — et les route par le serveur SMTP externe. Vos emails auront une bien meilleure délivrabilité.
Configurer les enregistrements SPF et DKIM
WP Mail SMTP améliore déjà beaucoup les choses, mais pour une délivrabilité optimale, vous devez vérifier que votre domaine s'authentifie correctement auprès des fournisseurs d'accès.
Deux enregistrements DNS sont essentiels :
- SPF (Sender Policy Framework) : Dit aux serveurs de réception : « Les emails légitimes du domaine monsite.fr viennent de ces serveurs précis. »
- DKIM (DomainKeys Identified Mail) : Signe chaque email avec une clé privée, prouvant qu'il a été généré par le propriétaire du domaine.
Chaque fournisseur SMTP (Brevo, Mailjet, etc.) fournit des instructions spécifiques. Voici un exemple de configuration SPF simple :
v=spf1 include:relay.brevo.com ~all(À adapter selon votre ESP.)
Accédez aux paramètres DNS de votre registrar (OVH, Gandi, Ionos, etc.), ajoutez l'enregistrement SPF fourni par l'ESP, et testez votre configuration avec votre fournisseur ou avec notre outil de test gratuit.
Tester l'envoi et vérifier la livraison
Une fois WP Mail SMTP installé et configuré, testez à nouveau le formulaire Contact Form 7.
- Remplissez le formulaire depuis l'interface publique du site avec une adresse email de test (votre Gmail, Outlook, ou autre).
- Vérifiez que le message arrive bien en boîte de réception (pas en Spam).
- Si l'email arrive en Spam, vérifiez les en-têtes du message pour voir pourquoi (erreur SPF, DKIM manquante, etc.).
Pour un diagnostic plus approfondi et voir comment votre email se rend chez différents fournisseurs (Orange, Free, Gmail, Outlook, etc.), utilisez un test de délivrabilité gratuit. Cela vous aidera à repérer rapidement les problèmes d'authentification ou de réputation de domaine.
Après avoir configuré WP Mail SMTP, envoyez un email de formulaire vers notre outil de test gratuit. Vous verrez instantanément comment votre email se rend chez Orange, Free, Gmail, Outlook et autres fournisseurs français. Aucune inscription requise, et vous obtiendrez les en-têtes d'authentification, les verdicts antispam et même des captures d'écran du rendu dans les vraies boîtes de réception.
Autres causes et alternatives
Si vous avez suivi toutes les étapes et que les emails n'arrivent toujours pas, vérifiez :
- Les logs du serveur : Contactez votre hébergeur pour voir les logs PHP/mail. Cherchez les erreurs de connexion SMTP.
- Les listes noires (blacklists) : Vérifiez si votre IP d'envoi figure sur une liste noire publique via MXToolbox ou Spamhaus. C'est rare, mais possible.
- Les règles de firewall : Certains hébergeurs bloquent les ports SMTP (25, 587, 465). Contactez le support.
- Changer de plugin : Si Contact Form 7 ne vous convient plus, Elementor Forms ou un formulaire natif (Gravity Forms) offrent une meilleure intégration avec les outils SMTP.
Dans tous les cas, l'ajout d'un serveur SMTP externe et la vérification du SPF/DKIM règlent 95 % des problèmes de non-livraison.
Dois-je payer pour WP Mail SMTP et un serveur SMTP ?
La version gratuite de WP Mail SMTP vous permet de configurer un serveur SMTP externe. En revanche, le serveur SMTP lui-même peut être payant ou gratuit selon l'ESP. Brevo offre 300 emails gratuits par jour, Mailjet propose 200 emails par jour gratuitement. Pour les petits sites, c'est souvent suffisant. Au-delà, les forfaits restent très abordables (quelques euros par mois).
Pourquoi Contact Form 7 ne me prévient pas que l'email n'a pas été envoyé ?
wp_mail() n'informe généralement pas l'utilisateur en cas d'échec — le formulaire semble validé, mais rien n'a été envoyé. C'est une limite de la fonction PHP par défaut. WP Mail SMTP améliore cela en intégrant la journalisation. Activez les logs du plugin dans ses paramètres pour tracer chaque tentative.
Peux-tu utiliser Gmail ou un fournisseur personnel pour envoyer les emails du site ?
Oui, techniquement possible via WP Mail SMTP qui supporte Gmail. Mais c'est fortement déconseillé : Google bloque rapidement les connexions « inhabituelles » et applique des limites de débit très strictes (quelques emails par heure). Pour un site professionnel ou un formulaire actif, utilisez un ESP dédié (Brevo, Mailjet) ou un serveur SMTP privé fourni par votre hébergeur.