Module 9 · 9.1
Français
L'e-mail depuis WordPress
Module 9: E-mail, référencement, RGPD, maintenance et migration · Temps de lecture : 9 minutes
Objectif pédagogique : après cette leçon, vous saurez faire en sorte que les e-mails envoyés depuis WordPress (formulaires, commandes, liens de mot de passe) arrivent de manière fiable.
Notions clés : wp_mail, PHP mail(), expéditeur (From), Reply-To, SMTP, extension SMTP, boîte mail authentifiée, service d'e-mail transactionnel, SPF, DKIM, DMARC, alignement, MX ailleurs, e-mail de test
WordPress envoie plus d'e-mails que vous ne le pensez
Votre site envoie un e-mail lors de : un formulaire de contact rempli, une commande (au client et à vous), un nouvel utilisateur, un mot de passe oublié, un nouveau commentaire, une mise à jour automatique, une erreur critique (leçon 5.4). Si cet e-mail n'arrive pas, vous ne vous en rendez souvent compte que lorsqu'un client appelle : « j'ai rempli le formulaire trois fois. »
Comment WordPress envoie des e-mails par défaut
WordPress envoie tout via la fonction wp_mail. Par défaut, celle-ci transmet l'e-mail à la fonction PHP mail(), qui le transmet au programme de messagerie du serveur web. Cela fonctionne, mais présente trois points faibles :
- L'expéditeur. Sans configuration, WordPress envoie en tant que
wordpress@example.com. Si cette adresse n'existe pas, ou si l'expéditeur diffère de votre propre domaine, les destinataires se méfient. - SPF, DKIM et DMARC. Les serveurs de messagerie destinataires vérifient si le serveur qui délivre l'e-mail est autorisé à envoyer des e-mails au nom de votre domaine (SPF), si l'e-mail possède une signature numérique valide de votre domaine (DKIM), et quelle est la politique de votre domaine si ce n'est pas le cas (DMARC). Dans la formation DNS (leçons 4.3 à 4.5), vous découvrirez comment cela fonctionne. L'envoi via le serveur web ne réussit ces vérifications que si votre DNS et le serveur sont correctement configurés.
- Messagerie ailleurs. Si vos e-mails ne sont pas gérés chez votre hébergeur web mais par exemple chez Microsoft 365 ou Google Workspace (vos enregistrements MX pointent vers eux), l'e-mail envoyé via le serveur web ne correspond souvent pas à votre SPF et DKIM. Et certains serveurs web tentent de délivrer localement les e-mails destinés à votre propre domaine au lieu de passer par le MX, de sorte qu'ils n'arrivent jamais dans votre véritable boîte mail.
Bien configurer l'expéditeur et le Reply-To
Une erreur fréquente avec les formulaires de contact : utiliser l'adresse du visiteur comme expéditeur (From). Cela peut sembler logique (« ainsi je peux cliquer sur répondre »), mais votre serveur n'est pas autorisé à envoyer des e-mails au nom de @gmail.com ou @hotmail.com. Ces domaines appliquent une politique DMARC stricte, donc le destinataire refuse l'e-mail ou le classe en spam.
La bonne pratique est :
From: Website <website@example.com> (une adresse de votre propre domaine)
Reply-To: bezoeker@example.net (l'adresse saisie par le visiteur)
To: info@example.comAvec Reply-To, votre réponse arrive quand même chez le visiteur. Presque toutes les extensions de formulaire disposent de ces deux champs séparés.
SMTP : envoyer via une véritable boîte mail
La solution la plus fiable consiste à faire envoyer les e-mails de WordPress via SMTP : la même méthode qu'utilise votre programme de messagerie, avec un nom d'utilisateur et un mot de passe d'une véritable boîte mail. Vous le faites avec une extension SMTP (par exemple WP Mail SMTP, FluentSMTP ou Post SMTP ; il en existe d'autres). L'extension intercepte wp_mail et envoie l'e-mail via le serveur que vous indiquez :
| Choix | Pour qui |
|---|---|
La boîte mail chez votre propre hébergeur (par exemple website@example.com sur le serveur de messagerie de votre offre d'hébergement) | La plupart des petits sites avec la messagerie chez le même prestataire |
| Votre messagerie chez Microsoft 365 ou Google Workspace | Si votre messagerie s'y trouve ; souvent via une connexion spéciale dans l'extension (OAuth) plutôt qu'un mot de passe, car ces services limitent de plus en plus l'authentification SMTP classique |
| Un service d'e-mail transactionnel (un service spécialisé dans l'envoi d'e-mails depuis des sites web et des applications) | Les boutiques en ligne et les sites qui envoient beaucoup d'e-mails |
Avantages : l'e-mail passe par un serveur déjà configuré avec SPF et DKIM pour votre domaine, l'expéditeur est une adresse existante, et de nombreuses extensions tiennent un journal, ce qui vous permet de voir ce qui a été envoyé et ce qui a échoué.
Soyez attentif à quelques points :
- Utilisez une adresse e-mail dédiée pour le site (par exemple
website@), pas votre propre boîte mail. Si le site est piraté et que le mot de passe fuit, cette adresse peut être remplacée sans dommage. - Le mot de passe SMTP se trouve dans la base de données ou dans wp-config.php. Utilisez dans la mesure du possible un mot de passe d'application ou une connexion sans mot de passe.
- Un journal de messagerie contient des données à caractère personnel (qui a envoyé quoi). Ne le laissez pas grossir indéfiniment (leçon 9.3).
SPF, DKIM et DMARC pour votre site
Quel que soit le serveur utilisé pour l'envoi, votre DNS doit être adapté en conséquence :
- SPF : l'enregistrement SPF de votre domaine doit mentionner le serveur qui délivre l'e-mail. Si vous envoyez via le serveur de messagerie de votre hébergeur, il y figure généralement déjà. Si vous envoyez via un service transactionnel, ajoutez son
include:dans le même enregistrement SPF (jamais un second enregistrement SPF, formation DNS leçon 4.3). - DKIM : le serveur d'envoi doit signer l'e-mail avec une clé présente dans votre DNS (
<selector>._domainkey.example.com). Vous l'activez chez votre hébergeur et chez les services transactionnels ; le service vous fournit les enregistrements. - DMARC : un enregistrement sur
_dmarc.example.com. Commencez parp=noneet renforcez une fois que tout fonctionne correctement (formation DNS leçon 4.5).
Pour DMARC, le domaine figurant dans le From doit être aligné avec le domaine validé par SPF ou DKIM. C'est pourquoi « From sur votre propre domaine » est si important.
Tester
- De nombreuses extensions SMTP disposent d'un bouton Envoyer un e-mail de test. Envoyez-en un à une adresse chez un autre prestataire (une adresse Gmail ou Outlook.com) et vérifiez s'il arrive dans la boîte de réception.
- Consultez dans cet e-mail les en-têtes (« Afficher l'original » ou « Afficher la source »). Recherchez
spf=pass,dkim=passetdmarc=pass. - Remplissez votre propre formulaire de contact et vérifiez si l'e-mail arrive, avec le bon Reply-To.
- Testez également un lien de mot de passe et, pour une boutique, une commande de test.
Des outils en ligne comme mail-tester.com fournissent un score et des explications ; avec le Vérificateur e-mail de votre hébergeur (chez WebOké, il porte ce nom) ou internet.nl, vous vérifiez le côté DNS.
En pratique : à quoi cela ressemble-t-il dans un panneau
À titre d'exemple, nous utilisons DirectAdmin et une extension SMTP. Chez d'autres hébergeurs et avec d'autres extensions, les champs portent des noms similaires.
- Créez dans DirectAdmin, sous Comptes E-mail, une boîte mail
website@example.comavec un mot de passe fort. - Recherchez chez votre hébergeur les paramètres pour le courrier sortant (nom du serveur, port 465 ou 587, chiffrement).
- Saisissez-les dans l'extension SMTP, avec
website@example.comcomme expéditeur. Activez « forcer l'expéditeur », afin que les autres extensions utilisent aussi cette adresse. - Vérifiez dans la gestion DNS que SPF, DKIM et DMARC existent pour votre domaine.
- Envoyez un e-mail de test et lisez les en-têtes.
Résumé
- WordPress envoie via wp_mail, et par défaut via PHP mail() ; l'expéditeur et le DNS déterminent si l'e-mail arrive.
- Réglez l'expéditeur (From) sur une adresse de votre propre domaine et l'adresse du visiteur dans Reply-To.
- Une extension SMTP avec une boîte mail dédiée ou un service transactionnel est la solution la plus fiable, avec un journal.
- SPF doit mentionner le serveur d'envoi (dans un seul enregistrement), DKIM doit être activé, DMARC doit commencer par p=none.
- Testez avec une adresse chez un autre prestataire et lisez spf, dkim et dmarc dans les en-têtes.
Quiz
Exercice
Exercice A9.1 : Votre domaine est-il prêt à envoyer des e-mails depuis votre site ? Indiquez votre domaine, l'adresse que votre site utilise comme expéditeur, et le serveur par lequel votre site envoie les e-mails (le nom du serveur SMTP, ou « serveur web » si vous n'avez rien configuré). Indiquez également le sélecteur DKIM si vous le connaissez. Le programme vérifie : que l'adresse d'expéditeur correspond à votre domaine, qu'il existe exactement un enregistrement SPF et qu'il autorise le serveur mentionné, qu'il existe un enregistrement DKIM au sélecteur indiqué (ou il signale qu'il ne peut pas vérifier sans sélecteur), et qu'il existe un enregistrement DMARC valide.
Exercice D9.1 : Lire un e-mail de test. Envoyez un e-mail de test depuis votre site (le bouton de test de votre extension SMTP, ou un lien de mot de passe vers un compte de test) à une adresse chez un autre prestataire. Ouvrez les en-têtes de cet e-mail et notez les résultats pour spf, dkim et dmarc, ainsi que le domaine associé à chacun. Remplissez ensuite votre propre formulaire de contact et vérifiez : l'e-mail arrive-t-il, et « répondre » renvoie-t-il vers l'adresse que vous avez saisie dans le formulaire ?
Exercice D9.1: Lire un e-mail de test
Cet exercice, vous le faites vous-même ; personne ne le vérifie. Cochez ce que vous avez fait et marquez l'exercice comme terminé.
Trois résultats (pass, fail ou none) avec un domaine, par exemple "spf=pass smtp.mailfrom=exemple.fr". En cas de fail, indiquez l'étape suivante (compléter le SPF, activer le DKIM, extension SMTP).
Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.
Pour aller plus loin
Ces articles décrivent les étapes dans les panneaux de WebOké ; chez d'autres panneaux, cela fonctionne de manière similaire.
- L'envoi d'e-mails via PHP ne fonctionne pas, les enregistrements MX pointent ailleurs
- Comment obtenir le bon expéditeur avec mail() en PHP ? SMTP
- Un formulaire de contact sur votre site web : recevoir les champs par e-mail et éviter le spam
- Explication du processus d'envoi des e-mails / SMTP
- Guide DirectAdmin 18.10: Je n'arrive pas à envoyer d'e-mails
- Cours DNS gratuit 4.3: SPF : qui a le droit d'envoyer des e-mails au nom de votre domaine ?
- Cours DNS gratuit 4.4: DKIM : la signature sous votre mail
- Cours DNS gratuit 4.5: DMARC : que doivent faire les destinataires avec les faux e-mails
