Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 7 · 7.3

E-mail depuis votre site web et les formulaires

Module 7: Newsletters et e-mails depuis votre site · Temps de lecture : 11 minutes

Objectif pédagogique : après cette leçon, vous saurez configurer le courrier de votre site web (formulaires de contact, confirmations de commande, notifications WordPress) de façon à ce qu'il arrive à destination, ne pose pas de problème DMARC et ne permette pas qu'on abuse de votre offre.

Notions clés : PHP mail(), SMTP avec authentification, expéditeur d'enveloppe, From vs. Reply-To, ne jamais mettre l'adresse du visiteur en From, plugin SMTP, e-mail transactionnel, spam de formulaire, captcha, honeypot, limite d'envoi, remise locale alors que le MX pointe ailleurs

Votre site web est aussi un programme de messagerie

Votre site web envoie plus de courrier que vous ne le pensez. Un formulaire de contact vous envoie chaque message. Une boutique en ligne envoie des confirmations de commande, des factures et des avis d'expédition. WordPress envoie un e-mail en cas de nouveau commentaire, de mise à jour ou de réinitialisation de mot de passe. Pour le destinataire, il s'agit tout simplement d'un e-mail provenant de votre domaine, et il est contrôlé aussi strictement que le courrier issu de votre boîte mail : SPF, DKIM, DMARC, réputation.

Pourtant, le courrier du site web échoue plus souvent que le courrier ordinaire. Cela tient généralement à l'un de ces trois éléments : la méthode d'envoi, l'adresse d'expéditeur, ou l'abus du formulaire.

Méthode 1 : PHP mail()

La méthode la plus simple pour un site web d'envoyer du courrier est la fonction PHP mail(). Le site transmet alors directement l'e-mail au programme de messagerie du serveur web, sans authentification. Cela fonctionne généralement, mais présente des inconvénients :

  • L'expéditeur d'enveloppe (Return-Path) devient souvent le compte système de votre offre, par exemple gebruiker@server.hosting.example, et non votre adresse. SPF est alors vérifié pour le domaine du serveur, ce qui n'est donc pas aligné avec votre domaine From (leçon 7.1).
  • La présence ou non d'une signature DKIM de votre domaine dépend du serveur. Sur certains serveurs oui, sur d'autres non.
  • Vous ne voyez rien revenir. Si l'e-mail n'arrive pas ou que vous recevez un bounce, celui-ci part vers le compte système, que personne ne consulte.
  • Aucune limite par formulaire. Si le formulaire fait l'objet d'un abus, le serveur envoie en votre nom jusqu'à atteindre la limite de votre offre.

Méthode 2 : SMTP avec authentification (préférable)

Faites en sorte que votre site envoie comme le fait votre programme de messagerie : en s'authentifiant sur le serveur de messagerie sortant avec une véritable boîte mail, via le port 587 (STARTTLS) ou 465 (SSL/TLS), avec l'adresse e-mail complète comme nom d'utilisateur (leçon 1.4 et 2.1). Dans ce cas :

  • l'expéditeur d'enveloppe est votre adresse et l'e-mail est signé comme un e-mail ordinaire de votre domaine ;
  • les bounces arrivent dans une boîte mail que vous pouvez consulter ;
  • l'e-mail envoyé se retrouve, si vous le souhaitez, dans le dossier Envoyé ;
  • vous pouvez définir une limite d'envoi propre à chaque boîte mail.

Dans WordPress, vous procédez à l'aide d'un plugin SMTP. Celui-ci remplace la fonction d'envoi standard de WordPress par un envoi via SMTP. Vous renseignez les mêmes informations que dans un programme de messagerie : serveur, port, sécurité, nom d'utilisateur et mot de passe. Créez de préférence pour cela une boîte mail séparée, par exemple website@example.com. Si le mot de passe venait à être volé, votre propre boîte mail reste en sécurité, et vous voyez en un coup d'œil quel courrier provient du site.

Pour un site PHP sur mesure, il existe des bibliothèques qui envoient via SMTP, comme PHPMailer. Placez le mot de passe dans un fichier de configuration situé en dehors du répertoire web, pas dans le code d'une page.

Chez WebOké, les informations SMTP figurent dans le guide DirectAdmin 8.1, avec le nom du serveur de votre offre ; chez d'autres prestataires, elles se trouvent dans le guide ou l'e-mail de bienvenue, et cela fonctionne de la même manière.

Beaucoup d'e-mails transactionnels ? Utilisez un service dédié

Si vous envoyez des centaines de confirmations de commande par jour, un service transactionnel devient rentable : un service d'envoi dédié aux e-mails automatiques. Il dispose d'une bonne réputation et montre ce qui est advenu de chaque e-mail. Vous reliez le domaine comme pour un service de newsletter (DKIM via CNAME, leçon 7.1). Gardez les e-mails transactionnels et les newsletters séparés : une campagne qui échoue ne doit pas affecter l'e-mail de confirmation de vos commandes.

La règle d'or : l'adresse du visiteur n'est jamais l'expéditeur

Dans un formulaire de contact, il est tentant de faire envoyer l'e-mail "de la part" du visiteur. Vous pouvez alors cliquer directement sur Répondre dans votre programme de messagerie. Cela se présente ainsi :

From: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulier

Mais votre serveur n'a absolument pas le droit d'envoyer au nom de example.net. Supposons que example.net applique une politique DMARC p=reject. Le serveur destinataire (le vôtre, ou celui de Gmail si vous redirigez votre courrier) voit un e-mail avec un From example.net qui ne passe pas via SPF ou DKIM de example.net, et le refuse. De nombreux grands domaines de messagerie appliquent une politique stricte : lors d'un contrôle effectué le 8 novembre 2026, yahoo.com, aol.com, ziggo.nl et kpnmail.nl avaient notamment une politique DMARC p=reject, et icloud.com, gmx.de et web.de une politique p=quarantine. Un visiteur disposant d'une telle adresse remplit votre formulaire, et vous ne recevez jamais le message, ou alors il atterrit dans votre dossier spam. Les domaines avec p=none (comme à ce moment là gmail.com et hotmail.com) peuvent durcir leur politique à tout moment, et Google indique explicitement dans ses consignes qu'il est interdit d'imiter des adresses Gmail en tant que From. Ne comptez donc jamais sur le fait que cela se passera bien.

La bonne méthode :

From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulier

L'expéditeur est votre propre adresse, de sorte que SPF, DKIM et DMARC sont corrects. L'adresse du visiteur figure dans Reply-To. Si vous cliquez sur Répondre, votre réponse part vers Pieter. Dans la plupart des plugins de formulaire, vous trouverez cela dans les paramètres de l'e-mail : indiquez dans Expéditeur (From) une adresse fixe de votre propre domaine, et dans Reply-To le champ dans lequel le visiteur saisit son adresse.

Protéger les formulaires contre les abus

Un formulaire sans protection finit tôt ou tard par être repéré par des robots. Dans le meilleur des cas, vous recevez du spam. Dans le pire des cas, ils l'exploitent pour envoyer du spam à d'autres : si votre formulaire envoie une confirmation à "l'adresse saisie par le visiteur", un robot peut y saisir n'importe quelle adresse au monde, avec un texte libre dans le message. Votre domaine envoie alors du spam, avec toutes les conséquences sur votre réputation (leçon 5.2).

Protection par couches :

  • Captcha ou une vérification invisible (comme reCAPTCHA ou Turnstile) arrête la plupart des robots.
  • Honeypot : un champ caché que les humains ne voient pas et que les robots remplissent. Rempli ? Le message n'est alors pas envoyé.
  • Pas de texte libre dans une confirmation au visiteur, ou pas de confirmation du tout vers l'adresse saisie. Un simple message "Merci, nous avons bien reçu votre message" sur la page suffit.
  • Une limite d'envoi par boîte mail pour la boîte mail du site web, inférieure à celle de votre offre.
  • Mettre à jour les logiciels. Les vieux plugins constituent une porte d'entrée connue pour les abus.

Vous remarquez que votre offre envoie soudainement beaucoup de courrier, ou vous recevez une notification indiquant que la limite journalière est atteinte alors que vous envoyez vous-même peu de courrier ? Modifiez alors immédiatement les mots de passe et vérifiez quel formulaire ou script envoie le courrier (leçon 3.4).

Le courrier est ailleurs, le site web est ici

Un piège fréquent : votre site web se trouve chez un prestataire, votre courrier chez un autre (par exemple Microsoft 365 ou Google Workspace). Votre MX pointe vers cet autre prestataire. Mais le serveur web pense encore qu'il gère lui-même le courrier de votre domaine, car le domaine figure aussi sur sa propre offre. Il remet alors localement le courrier du formulaire vers info@example.com, dans une boîte mail sur le serveur web que personne ne consulte, ou il renvoie une erreur du type 550 ... mailbox unavailable.

La solution consiste à indiquer dans le panneau du serveur web que le courrier est géré ailleurs. Dans DirectAdmin chez WebOké, il s'agit de la case "Utiliser ce serveur pour gérer mes e-mails" sous Enregistrements MX (à désactiver). D'autres panneaux disposent de paramètres comparables, comme "routage e-mail : externe" dans cPanel. Mieux encore : faites envoyer le courrier du site web via SMTP avec une boîte mail chez le prestataire qui héberge réellement votre courrier.

Résumé

  • Le courrier du site web est contrôlé aussi strictement que le courrier ordinaire. Faites envoyer le site via SMTP avec authentification, pas via mail().
  • Utilisez une boîte mail séparée pour le site web, avec sa propre limite d'envoi.
  • L'adresse du visiteur doit figurer dans Reply-To, jamais dans From. Sinon, DMARC échoue, et pour les domaines avec p=reject (comme yahoo.com, ziggo.nl, kpnmail.nl), l'e-mail est refusé.
  • Protégez les formulaires avec captcha, honeypot et sans confirmations en texte libre vers les adresses saisies.
  • Si votre courrier est hébergé chez un autre prestataire, désactivez la remise locale sur le serveur web ou envoyez via SMTP chez ce prestataire.

Quiz

1. Un visiteur disposant d'une adresse @gmail.com remplit votre formulaire de contact. Le formulaire place son adresse en From. Quelle est la conséquence probable ?



2. Quel est le principal avantage du SMTP avec authentification par rapport à PHP mail() ?



3. Votre courrier se trouve chez Microsoft 365, votre site web chez un hébergeur. Les messages de formulaire vers info@example.com n'arrivent jamais. Quelle en est une cause probable ?



4. Quelle mesure empêche des robots d'utiliser votre formulaire pour envoyer du spam à d'autres personnes ?



5. Pourquoi préférez-vous utiliser une boîte mail séparée pour le site web, comme website@example.com ?



Exercice

Exercice O7.3 : Vérifier les e-mails du site web. Remplissez un formulaire sur votre propre site web avec une adresse Gmail ou Outlook.com comme expéditeur et examinez les en-têtes du message qui vous parvient. Répondez à la liste de vérification : quelle adresse figure dans From, l'adresse du visiteur figure-t-elle dans Reply-To, que disent spf=, dkim= et dmarc= dans Authentication-Results, votre site envoie-t-il via SMTP ou via mail(), et le formulaire dispose-t-il d'un captcha ou d'un honeypot ? Si vous n'avez pas de site web personnel, répondez aux questions à partir de l'exemple de cette leçon. Vous recevrez ensuite la réponse modèle.

Exercice O7.3: Vérifier les e-mails du site web

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é.


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

Les étapes décrites dans ces articles s'appliquent aux panneaux de WebOké ; chez d'autres prestataires, cela fonctionne de manière comparable.

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…