Votre formulaire de contact affiche « Merci, votre message a été envoyé ». Le visiteur repart satisfait, mais l’e-mail ne vous parvient jamais. Pour un site d’entreprise, c’est l’un des problèmes silencieux les plus coûteux : vous ignorez combien de demandes de prospects vous avez déjà perdues.
La cause est rarement l’extension de formulaire elle-même. Le plus souvent, WordPress envoie l’e-mail, mais celui-ci est rejeté, classé comme indésirable ou n’est jamais transmis à un véritable serveur de messagerie. Voici comment identifier le cas qui vous concerne et résoudre durablement le problème.
Pourquoi les e-mails WordPress disparaissent
Par défaut, WordPress envoie les e-mails avec la fonction PHP intégrée mail(), directement depuis votre serveur web. Cela entraîne trois problèmes courants :
- Votre hébergeur limite ou bloque les envois. De nombreux hébergeurs restreignent les e-mails sortants des sites pour lutter contre le spam.
- Les serveurs destinataires ne leur font pas confiance. Gmail, Outlook et d’autres vérifient si le serveur expéditeur est autorisé à envoyer pour votre domaine, via SPF, DKIM et DMARC. Les serveurs web ne le sont généralement pas : le message arrive dans les indésirables ou disparaît.
- L’adresse d’expédition ne correspond pas à votre domaine. Si le formulaire envoie le message depuis l’adresse Gmail du visiteur, Gmail le rejette comme une usurpation.
Étape 1 : écartez les causes simples
- Consultez les dossiers de courrier indésirable de l’adresse qui doit recevoir les messages.
- Vérifiez les paramètres de notification dans votre extension de formulaire. Assurez-vous que l’adresse de destination est correcte et que les notifications sont activées. Dans Contact Form 7, il s’agit de l’onglet E-mail ; dans WPForms, de Réglages → Notifications.
- Vérifiez si le formulaire a enregistré la demande. WPForms Pro, Gravity Forms et Fluent Forms enregistrent les demandes dans le tableau de bord. Si la demande y figure, le formulaire fonctionne et le problème concerne l’acheminement de l’e-mail. Pour Contact Form 7, l’extension gratuite Flamingo peut enregistrer les envois.
Étape 2 : envoyez un e-mail de test depuis WordPress
Installez une extension SMTP telle que WP Mail SMTP ou FluentSMTP, toutes deux disponibles en version gratuite. Même avant toute configuration, elles proposent un outil E-mail de test. Envoyez un test à votre propre adresse :
- Si le test échoue ou n’arrive jamais, WordPress n’arrive pas du tout à envoyer des e-mails. Passez à l’étape 3.
- Si le test arrive, mais pas les messages du formulaire, le problème vient des réglages du formulaire, généralement de l’adresse d’expédition : voir l’étape 4.
Étape 3 : utilisez un véritable service de messagerie, via SMTP
La solution fiable consiste à cesser les envois depuis le serveur web pour passer par un véritable prestataire de messagerie. Dans votre extension SMTP, choisissez l’une de ces options :
- Votre messagerie professionnelle, par exemple Google Workspace ou Microsoft 365. Adaptée aux faibles volumes, comme ceux des formulaires de contact.
- Un service d’e-mails transactionnels, par exemple Brevo, Mailgun, SendGrid, Postmark ou Amazon SES. Plus adapté si vous envoyez aussi les e-mails de commande WooCommerce.
- Le serveur SMTP de votre hébergeur, avec un compte de messagerie créé sur votre domaine.
Saisissez le serveur SMTP, le port, le chiffrement — TLS sur le port 587 est courant — et le nom d’utilisateur et le mot de passe ou la clé d’API fournis par le prestataire. Envoyez ensuite un nouvel e-mail de test.
Conseil : stockez les mots de passe SMTP et les clés d’API dans wp-config.php si votre extension SMTP le permet, plutôt que dans la base de données. WP Mail SMTP et FluentSMTP expliquent tous deux comment procéder dans leur documentation.
Étape 4 : corrigez l’adresse d’expédition
L’adresse d’expédition doit appartenir à votre propre domaine, par exemple hello@yourcompany.com, et correspondre au compte configuré pour SMTP. N’utilisez pas l’adresse du visiteur comme expéditeur.
Pour pouvoir répondre au visiteur en un clic, placez plutôt son adresse dans le champ Reply-To. Dans Contact Form 7, ajoutez Reply-To: [your-email] sous En-têtes additionnelles. WPForms et la plupart des autres extensions proposent un réglage Reply-To dans les options de notification.
Étape 5 : configurez SPF, DKIM et DMARC
Ces enregistrements DNS indiquent aux serveurs destinataires que vos messages sont authentiques. Votre prestataire de messagerie vous donne les valeurs exactes à ajouter chez votre bureau d’enregistrement ou votre hébergeur DNS :
- SPF : un enregistrement TXT qui liste les serveurs autorisés à envoyer des e-mails pour votre domaine. Vous ne pouvez avoir qu’un seul enregistrement SPF : ajoutez donc les nouveaux prestataires à l’enregistrement existant au lieu d’en créer un second.
- DKIM : un enregistrement TXT ou CNAME qui permet aux destinataires de vérifier la signature numérique de vos messages.
- DMARC : un enregistrement TXT sur
_dmarc.yourdomain.comqui indique aux destinataires quoi faire des messages qui échouent aux vérifications. Commencez parp=nonepour surveiller les envois.
Les modifications DNS peuvent prendre quelques heures à s’appliquer. Ensuite, envoyez un test à une adresse Gmail, ouvrez le message et choisissez Afficher l’original. Vous devez voir PASS pour SPF, DKIM et DMARC.
Étape 6 : vérifiez les conflits et le cache
- Les extensions de cache peuvent afficher une ancienne copie de la page du formulaire avec un jeton de sécurité expiré : les envois échouent alors sans message visible. Excluez votre page de contact du cache de pages.
- reCAPTCHA ou d’autres outils antispam peuvent bloquer de véritables demandes si les clés sont incorrectes ou si le domaine n’est pas associé à la clé.
- Conflits d’extensions : désactivez temporairement les autres extensions, ou utilisez le mode de dépannage de Health Check & Troubleshooting, puis refaites un test.
Préserver le bon fonctionnement
Activez le journal des e-mails dans votre extension SMTP pour voir chaque message envoyé par WordPress et savoir s’il a été accepté. Remplissez ensuite votre propre formulaire une fois par mois. Cela prend une minute et permet de détecter les problèmes avant vos clients.
Vous ne recevez toujours pas les e-mails du formulaire ? Notre service Réparation WordPress traite un problème d’envoi convenu sur un seul site. Nous confirmons le diagnostic à réaliser, la réparation et le test de réception avant de commencer, au prix fixe de $45. Les autres problèmes et les frais éventuels d’un prestataire d’e-mail sont distincts. Demander une réparation.
Questions fréquentes
Pourquoi le formulaire indique-t-il « envoyé » si l’e-mail n’arrive jamais ?
Le formulaire sait seulement que WordPress a accepté le message pour envoi. Il ne peut pas savoir si le serveur destinataire l’a ensuite rejeté ou classé dans les indésirables.
Ai-je besoin d’un service SMTP payant ?
Généralement, non. La plupart des prestataires proposent des offres gratuites qui couvrent largement le volume des formulaires de contact. Les offres payantes sont utiles pour les boutiques WooCommerce à fort volume.
Puis-je utiliser mon adresse Gmail pour envoyer les e-mails WordPress ?
Vous pouvez connecter un compte Google par SMTP, mais l’adresse d’expédition devrait tout de même appartenir à votre domaine pour optimiser l’acheminement. Une adresse Gmail gratuite comme expéditeur risque d’échouer aux vérifications DMARC.
