Qu’est-ce que SPF ?
SPF (Sender Policy Framework) est un mécanisme DNS qui indique quels serveurs sont autorisés à envoyer des courriels pour un domaine. Le serveur destinataire compare l’adresse IP de l’expéditeur à la politique publiée.
Pourquoi SPF est important
SPF réduit l’usurpation de domaine et fournit un signal exploitable par DMARC. Il ne chiffre pas les messages et ne suffit pas seul à garantir l’identité de l’expéditeur.
Comment fonctionne SPF
Le destinataire recherche l’enregistrement TXT SPF du domaine d’enveloppe, évalue ses mécanismes dans l’ordre et applique le qualificatif associé au premier résultat correspondant.
Syntaxe d’un enregistrement SPF
Un enregistrement SPF commence par v=spf1, suivi de mécanismes, de modificateurs et d’un qualificatif final.
v=spf1 [mechanisms] [qualifier]all
Exemples d’enregistrements SPF
Publiez une seule politique SPF pour chaque domaine et incluez uniquement les sources réellement utilisées.
v=spf1 ip4:203.0.113.50 -all
v=spf1 include:_spf.google.com ~all
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 -all
Mécanismes SPF
Les mécanismes déterminent quelles adresses ou quels domaines peuvent envoyer.
| Mécanisme | Description | Exemple |
|---|---|---|
| ip4 | Adresse ou plage IPv4 | ip4:203.0.113.0/24 |
| ip6 | Adresse ou plage IPv6 | ip6:2001:db8::/32 |
| include | Inclut le SPF d’un autre domaine | include:_spf.google.com |
| a | Adresses du record A du domaine | a:mail.example.com |
| mx | Adresses des serveurs MX du domaine | mx |
| all | Correspond à tout, généralement en dernier | -all, ~all, ?all |
Qualificatifs
Le qualificatif préfixe le résultat du mécanisme et indique l’action attendue.
| Qualificatif | Résultat | Signification |
|---|---|---|
| + (par défaut) | Pass | Expéditeur autorisé |
| - | Fail | Non autorisé, rejeter |
| ~ | SoftFail | Probablement non autorisé, accepter mais signaler |
| ? | Neutral | Aucune assertion de politique |
Bonnes pratiques de mise en œuvre de SPF
Déployez SPF progressivement, mesurez les résultats et conservez une politique lisible et maintenable.
Commencer par SoftFail
Utilisez ~all pendant l’observation lorsque les sources légitimes ne sont pas encore complètement inventoriées.
v=spf1 include:_spf.google.com ~all
Passer à Fail
Après validation des flux, utilisez -all pour refuser les sources non autorisées.
v=spf1 include:_spf.google.com -all
Limiter les recherches DNS à 10
SPF limite à 10 le nombre de recherches DNS évaluées. Réduisez les include imbriqués et surveillez les erreurs de dépassement.
# Counts as DNS lookups:
include:_spf.google.com # 1 (plus nested includes)
a:mail.example.com # 1
mx # 1
# Does NOT count:
ip4:203.0.113.50 # 0
ip6:2001:db8::1 # 0
Un seul enregistrement SPF
Un domaine ne doit publier qu’un seul enregistrement SPF valide. Fusionnez les sources dans une politique unique.
# Wrong - two SPF records
v=spf1 include:_spf.google.com ~all
v=spf1 include:sendgrid.net ~all
# Correct - combined
v=spf1 include:_spf.google.com include:sendgrid.net ~all
Vérifier les enregistrements SPF
Interrogez le DNS, vérifiez la syntaxe et testez un message réel depuis chaque source autorisée.
dig example.com TXT | grep spf
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasSPF status
Problèmes courants liés à SPF
Les échecs viennent souvent de recherches trop nombreuses, de services oubliés ou d’une politique trop permissive.
Trop de recherches DNS
Réduisez les include, a, mx et redirect imbriqués. Un dépassement produit un résultat d’erreur permanent.
Services tiers manquants
Ajoutez chaque plateforme d’envoi légitime et retirez les services abandonnés après vérification.
SPF trop permissif
Évitez +all et les mécanismes qui autorisent plus de sources que nécessaire. Préférez une politique explicite et surveillée.