Module 4 · 4.3
SPF : qui a le droit d'envoyer des e-mails au nom de votre domaine ?
Module 4: Enregistrements pour l'e-mail · Temps de lecture : 10 minutes
Objectif pédagogique : à l'issue de cette leçon, vous saurez lire un enregistrement SPF, y ajouter correctement un service et éviter les trois erreurs SPF les plus connues : deux enregistrements, +all et plus de dix recherches.
Notions clés : SPF, v=spf1, mécanisme (a, mx, ip4, ip6, include), qualificatif (+ - ~ ?), all, un seul enregistrement SPF, limite de 10 recherches DNS, expéditeur enveloppe (Return-Path)
Le problème : n'importe qui peut utiliser votre nom
L'e-mail a été conçu dans les années 1980 pour un petit internet convivial. N'importe quel serveur de messagerie peut envoyer un e-mail avec comme expéditeur info@example.com, même si ce serveur n'a strictement rien à voir avec example.com. Les escrocs en profitent allègrement.
SPF (Sender Policy Framework, RFC 7208) est une première étape pour éviter cela. Dans un enregistrement SPF, vous indiquez quels serveurs sont autorisés à envoyer des e-mails au nom de votre domaine. À chaque e-mail entrant, le serveur de messagerie destinataire vérifie : cet e-mail provient-il d'un serveur figurant sur la liste ?
Imaginez une liste d'invités à une porte. Le videur (le serveur de messagerie destinataire) consulte la liste de votre domaine et vérifie si le visiteur (le serveur expéditeur) y figure.
À quoi ressemble un enregistrement SPF ?
Un enregistrement SPF est un enregistrement TXT sur votre nom de domaine qui commence par v=spf1 :
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Vous le lisez de gauche à droite. Le destinataire parcourt les éléments un par un et s'arrête au premier qui correspond.
| Élément | Signification |
|---|---|
v=spf1 | Ceci est un enregistrement SPF. Doit être en première position. |
a | Le ou les serveurs vers lesquels pointe l'enregistrement A/AAAA de votre domaine sont autorisés à envoyer des e-mails. |
mx | Les serveurs indiqués dans vos enregistrements MX sont autorisés à envoyer des e-mails. |
ip4:192.0.2.25 | Cette adresse IPv4 est autorisée à envoyer des e-mails. Une plage est aussi possible : ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Le même principe pour IPv6. |
include:spf.mailer.example | Tous les serveurs figurant dans l'enregistrement SPF de spf.mailer.example sont également autorisés. C'est ainsi que vous ajoutez un service externe. |
~all | Tous les autres serveurs : suspects. Se place toujours à la fin. |
La fin : ~all, -all, ?all ou +all
Chaque élément peut être précédé d'un signe indiquant ce qui se passe en cas de correspondance. Pour all (qui correspond toujours), ce signe fait toute la différence :
| Fin | Nom | Signification |
|---|---|---|
-all | fail | Les autres serveurs ne sont pas autorisés. Les destinataires peuvent refuser l'e-mail. |
~all | softfail | Les autres serveurs sont suspects. L'e-mail est généralement accepté, mais plus souvent considéré comme spam. |
?all | neutral | Aucune indication. Presque inutile. |
+all | pass | N'importe quel serveur au monde peut envoyer des e-mails en votre nom. À ne jamais utiliser. |
S'il n'y a pas de signe, c'est + qui s'applique. mx signifie donc +mx.
Lequel choisir ? ~all est un réglage par défaut sûr. -all est plus strict et convient si vous êtes certain que tous vos expéditeurs figurent dans l'enregistrement. Si vous utilisez DMARC (leçon 4.5), c'est finalement la politique DMARC qui détermine ce qui se passe ; de nombreux administrateurs choisissent alors ~all.
Erreur 1 : deux enregistrements SPF
Il ne peut y avoir qu'un seul enregistrement SPF par domaine. Si le destinataire en trouve deux, le résultat est une erreur (permerror) et votre SPF ne compte absolument plus. C'est pire que de ne pas avoir de SPF du tout.
Dans la pratique, cela se produit souvent. Un service de newsletter ou Microsoft 365 indique « ajoutez cet enregistrement SPF », et un deuxième enregistrement v=spf1 se retrouve alors à côté de l'ancien. La solution : ajoutez le nouveau service à l'enregistrement existant.
Incorrect :
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Correct :
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Attention : lors de la fusion, ne retirez pas les serveurs que vous utilisez encore. Si votre site web envoie des e-mails via le serveur de votre hébergeur, celui-ci doit rester dans l'enregistrement, même si votre messagerie habituelle passe par Microsoft 365. Une offre d'hébergement comporte souvent déjà un SPF par défaut avec un include de l'hébergeur (chez WebOké, c'est par exemple include:webawere.nl) ; conservez-le tant que votre site web ou vos formulaires envoient des e-mails via ce serveur.
Erreur 2 : +all ou un enregistrement trop permissif
+all à la fin, ou une plage énorme comme ip4:0.0.0.0/0, signifie que tout le monde est autorisé. Votre SPF ne protège alors plus rien, et les filtres anti-spam y voient un mauvais signe.
Erreur 3 : plus de dix recherches
Pour vérifier un enregistrement SPF, le destinataire doit parfois effectuer des requêtes DNS supplémentaires. Chaque include, a, mx, exists, ptr et redirect coûte une recherche, et un include comptabilise aussi toutes les recherches de l'enregistrement vers lequel il pointe. Selon la RFC 7208, le total ne peut pas dépasser dix. Si c'est le cas, le résultat est permerror et SPF échoue.
ip4 et ip6 ne coûtent aucune recherche. all non plus.
Par ailleurs, au maximum deux recherches peuvent revenir « vides » (un nom qui n'existe pas ou sans réponse). Un include vers un service que vous n'utilisez plus depuis longtemps et qui a supprimé son enregistrement peut donc aussi poser problème.
Si vous utilisez beaucoup de services, faites le compte avec un outil de vérification SPF (leçon 8.3) et retirez les services que vous n'utilisez plus.
Ce que SPF ne fait pas
SPF contrôle l'expéditeur enveloppe : l'adresse d'expéditeur technique (Return-Path) utilisée entre serveurs de messagerie. Ce n'est pas toujours la même adresse que le champ « De : » que vous voyez dans votre logiciel de messagerie. Un service de newsletter envoie souvent avec son propre Return-Path. SPF seul n'arrête donc pas tous les expéditeurs falsifiés. C'est le rôle de DKIM (leçon 4.4) et de DMARC (leçon 4.5).
SPF pose aussi problème en cas de redirection : si vous redirigez automatiquement un e-mail vers une autre adresse, il arrive chez le destinataire final en provenance d'un serveur qui ne figure pas dans votre SPF.
Pourquoi c'est important
Les grands fournisseurs de messagerie sont devenus plus stricts. Depuis février 2024, Gmail et Yahoo exigent que tout expéditeur dispose au moins de SPF ou de DKIM, et que quiconque envoie beaucoup d'e-mails (plus d'environ 5 000 par jour) dispose de SPF, DKIM et DMARC. Microsoft impose la même exigence depuis mai 2025 pour Outlook.com, Hotmail et Live.com. Même si vous envoyez peu d'e-mails, un bon enregistrement SPF aide à éviter le dossier spam.
En pratique : à quoi cela ressemble dans un panneau
Dans cet exemple, nous utilisons DirectAdmin. Dans Administration DNS, cliquez sur le crayon à côté de l'enregistrement TXT qui commence par v=spf1. DirectAdmin ouvre un assistant SPF : dans Inclure le domaine, saisissez le domaine du service (sans include:) ; dans Mode, choisissez Échec sans conséquence (~all) ou Échec (-all). En bas, vous voyez l'enregistrement complet. Mon WebOké propose un assistant SPF similaire dans l'onglet DNS.
D'autres panneaux ne disposent pas toujours d'un tel assistant. Vous modifiez alors l'enregistrement TXT comme du texte brut ; le contenu reste exactement le même.
Résumé
- SPF est un enregistrement TXT commençant par
v=spf1qui indique quels serveurs peuvent envoyer des e-mails au nom de votre domaine. - Exactement un seul enregistrement SPF par domaine. Nouveau service ? Complétez l'enregistrement existant.
- Terminez par
~allou-all, jamais par+all. - Maximum dix recherches DNS (
include,a,mx,exists,ptr,redirect),ip4/ip6ne comptent pas. - SPF examine l'expéditeur enveloppe ; pour une protection réelle, vous avez aussi besoin de DKIM et DMARC.
Quiz
Exercice
Exercice Z4.3 : rechercher un enregistrement SPF. Recherchez l'enregistrement SPF de google.com (ou de votre propre domaine). Collez l'enregistrement complet et indiquez par quoi il se termine (~all, -all, ?all ou +all). Pour votre propre domaine, l'exercice vérifie aussi que vous disposez d'exactement un seul enregistrement SPF.
Exercice O4.3 : configurer soi-même dans votre zone d'entraînement. Dans la zone d'entraînement, vous utilisez un service fictif ; pour votre domaine réel, vous utilisez l'include réel fourni par votre fournisseur de messagerie (par exemple include:_spf.google.com). Dans votre zone d'entraînement , créez un enregistrement SPF qui autorise : les serveurs MX de la zone (<code>.dnspractice.eumx), l'adresse 192.0.2.25 et le service d'entraînement _spf.mailsuite-demo.dnspractice.eu. Les autres serveurs sont suspects ou non autorisés, donc l'enregistrement se termine par ~all ou -all.
Exercice O4.3
Vous réalisez cet exercice dans votre propre zone d'entraînement : une véritable zone DNS sur les serveurs de noms de WebOké, rien que pour vous. Inscrivez-vous avec votre adresse e-mail. Vous recevrez un lien de connexion par e-mail et reviendrez ensuite sur cette leçon. Nous utilisons votre adresse uniquement pour le cours.
Pour aller plus loin
Les étapes décrites dans ces articles s'appliquent aux panneaux de WebOké ; dans d'autres panneaux, le fonctionnement est similaire.
- Guide DirectAdmin 5.7: Configurer et compléter le SPF
- Comment fonctionne l'enregistrement SPF dans le DNS ?
- Ajouter ou modifier un enregistrement SPF dans DirectAdmin
- Guide WebOké 5.5: Assistants DNS : MX, SPF, DMARC, CAA et SRV
- RFC 7208 (SPF), notamment la section 4.6.4 (limite de dix recherches et de deux recherches vides)
