Contexte
Le site WordPress d’une PME en Suisse romande recevait des demandes via formulaire, mais les e-mails n’arrivaient plus (ni dans la boîte de réception, ni dans les spams). Le formulaire affichait pourtant un message de succès. Dans ce type de situation, le problème vient rarement du formulaire lui-même, mais plutôt de la délivrabilité: envoi PHP non fiable, domaine mal configuré, ou règles anti-spam plus strictes côté destinataire.
Symptômes observés
- Formulaire soumis avec succès, mais aucune notification reçue.
- Aucune trace dans les spams selon le destinataire.
- Comportement irrégulier: certains e-mails passent, d’autres non.
- Le site envoyait via
wp_mail()(envoi PHP) sans SMTP.
Objectifs du dépannage
- Rendre l’envoi d’e-mails fiable (SMTP).
- Améliorer la délivrabilité du domaine (SPF, DKIM, DMARC).
- Ajouter des logs pour diagnostiquer rapidement en cas de récidive.
- Valider les formulaires et réduire le spam (anti-spam discret).
Diagnostic
- Vérification du plugin de formulaire (Contact Form 7, WPForms, Gravity Forms, Fluent Forms).
- Contrôle du champ From: adresse valide du domaine, pas d’usurpation.
- Test d’envoi depuis WordPress (e-mail de test) + observation côté serveur.
- Analyse DNS: SPF, DKIM, DMARC, et incohérences possibles.
- Vérification des restrictions d’hébergement (ports SMTP, quotas).
Cause identifiée
L’envoi se faisait via PHP mail, sans authentification. Les messages étaient rejetés silencieusement par certains fournisseurs, faute de signaux DNS suffisants (DKIM absent et SPF incomplet). Les rares e-mails reçus arrivaient parfois en spam.
Correctifs appliqués
1) Mise en place SMTP
- Configuration via un plugin SMTP (WP Mail SMTP ou Post SMTP).
- Choix d’un relais fiable (Brevo, Mailjet, ou SMTP hébergeur selon contexte).
- Forcer un From authentifié (p. ex.
[email protected]) et utiliserReply-Topour la réponse.
2) DNS: SPF, DKIM, DMARC
- Ajout/validation de SPF pour autoriser le service d’envoi.
- Activation DKIM via le fournisseur SMTP, puis publication DNS.
- Mise en place DMARC en mode surveillance, puis durcissement progressif si besoin.
3) Logs et tests
- Activation du logging d’e-mails (statut, destinataire, erreurs).
- Tests vers plusieurs boîtes (p. ex. Gmail, Microsoft 365) et contrôle des en-têtes.
- Vérification de la stabilité après 24 h (pas seulement un test unique).
4) Anti-spam discret
- Honeypot et limitation de fréquence.
- reCAPTCHA seulement si le spam reste significatif.
- Messages d’erreur clairs pour éviter des soumissions multiples.
Exemple technique : principe From / Reply-To (bonnes pratiques)
Éviter d’envoyer « From: [email protected] », car cela échoue souvent en SPF/DKIM.
From: [email protected]
Reply-To: email_saisi_dans_le_formulaire
Subject: Nouvelle demande - Formulaire
Exemple technique : enregistrement SPF (exemple)
À adapter au fournisseur. Un seul SPF doit exister, avec les include nécessaires.
v=spf1 include:spf.brevo.com include:_spf.mailjet.com ~all
Exemple technique : DMARC en mode surveillance (exemple)
Commencer en « none » pour observer, puis durcir si tout est stable.
v=DMARC1; p=none; rua=mailto:[email protected]; adkim=s; aspf=s
Résultats
- Envois d’e-mails redevenus fiables, avec authentification SMTP.
- Délivrabilité améliorée grâce à SPF/DKIM/DMARC cohérents.
- Traçabilité via logs, donc diagnostic rapide si un fournisseur filtre.
- Moins de spam et moins de demandes perdues.
Prévention mise en place
- Contrôle trimestriel des enregistrements DNS (après changements e-mail/CRM).
- Test périodique d’envoi depuis WordPress, surtout après mises à jour.
- Surveillance des logs SMTP pour repérer des rejets avant qu’ils deviennent critiques.
Points clés à retenir
- Un formulaire « qui marche » peut quand même perdre des demandes si la délivrabilité n’est pas maîtrisée.
- SMTP + SPF/DKIM/DMARC est la base pour des e-mails transactionnels fiables.
- Le champ From doit être authentifié, et Reply-To sert à répondre au client.