Pourquoi valider la syntaxe SPF avant publication ?
Un enregistrement SPF (Sender Policy Framework) mal formé peut avoir des conséquences immédiates : emails rejetés, authentification désactivée, ou pire, une fausse impression de sécurité. La validation syntaxique détecte ces problèmes avant qu'ils n'impactent votre délivrabilité.
Trois cas d'usage principaux :
- Nouveau SPF -> Validez la structure avant la première publication
- Modification SPF -> Vérifiez que les changements n'introduisent pas d'erreurs
- Diagnostic délivrabilité -> Confirmez que la syntaxe n'est pas la cause des rejets
Comment utiliser le validateur en 3 étapes
Étape 1 : Copier l'enregistrement SPF
Récupérez votre enregistrement depuis :
- Votre interface DNS (OVH, Cloudflare, Gandi, etc.)
- Un outil de lookup DNS
- Directement votre éditeur de texte si vous le rédigez
Format attendu :
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com -all
Étape 2 : Coller dans le validateur
Collez l'enregistrement complet dans le formulaire ci-dessus. L'outil analyse automatiquement :
- ✅ Structure de base (v=spf1)
- ✅ Mécanismes (ip4, ip6, mx, a, include, exists, ptr)
- ✅ Modificateurs (redirect, exp)
- ✅ Qualificateurs (+, -, ~, ?)
- ✅ Directive finale (all)
Étape 2b : Tester une IP (optionnel)
Saisissez une adresse IP dans le champ dédié pour vérifier si elle est autorisée par la politique SPF :
- Pass (vert) : L'IP est explicitement autorisée
- Fail (rouge) : L'IP est explicitement rejetée
- Softfail (orange) : L'IP n'est pas autorisée mais pas strictement rejetée
- Neutral (gris) : Aucune correspondance ou aucun avis
L'outil évalue les mécanismes dans l'ordre (ip4, ip6, a, mx, include) conformément à la RFC 7208 §4.6.2.
Étape 3 : Corriger et publier
Le rapport affiche :
- Erreurs (rouge) : Problèmes bloquants à corriger
- Avertissements (orange) : Risques de sécurité ou bonnes pratiques
- Informations (bleu) : Détails sur la structure analysée
Corrigez les erreurs, puis publiez dans votre DNS.
Qu'est-ce que la syntaxe SPF ?
Un enregistrement SPF est une chaîne de caractères publiée dans un enregistrement DNS TXT. Sa syntaxe suit une structure précise définie par la RFC 7208 :
v=spf1 [qualificateur]mécanisme [modificateur] ... directive_finale
Composants :
| Élément | Exemples | Rôle |
|---|---|---|
| Version | v=spf1 | Obligatoire, toujours en premier |
| Qualificateur | +, -, ~, ? | Détermine l'action (pass, fail, softfail, neutral) |
| Mécanisme | ip4:, mx, include:, a: | Définit les expéditeurs autorisés |
| Modificateur | redirect=, exp= | Options supplémentaires |
| Directive finale | -all, ~all, ?all | Action par défaut pour les non-correspondances |
Qu'analyse exactement le validateur ?
Erreurs de syntaxe
| Code erreur | Description | Impact |
|---|---|---|
missing_version | Absence de v=spf1 | SPF ignoré (permerror) |
unknown_mechanism | Mécanisme non reconnu | SPF invalide |
mechanism_missing_value | include: sans domaine | SPF invalide |
mechanism_invalid_value | IP ou CIDR mal formé | SPF invalide |
duplicate_modifier | Deux redirect= | SPF invalide |
multiple_all | Plusieurs directives all | SPF invalide |
Avertissements de sécurité
| Code | Description | Risque |
|---|---|---|
weak_qualifier | ?all (neutral) | Pas de protection |
permissive_all | +all | Autorise tout le monde |
softfail_all | ~all sans transition vers -all | Protection partielle |
Limites DNS
| Code | Description | Limite RFC |
|---|---|---|
lookup_limit_exceeded | Plus de 10 DNS lookups | 10 max |
void_lookup_limit_exceeded | Trop de réponses vides | 2 max |
lookup_cycle | Boucle de référence | Interdit |
Cas d'usage concrets
Cas 1 : Nouveau domaine, premier SPF
Situation : Vous configurez les emails pour captaindns.com avec Google Workspace.
Action : Validez avant publication :
v=spf1 include:_spf.google.com -all
Résultat attendu :
- ✅ Syntaxe valide
- ✅ 1 DNS lookup (sous la limite de 10)
- ✅ Directive finale stricte (-all)
Cas 2 : Ajout d'un nouveau service marketing
Situation : Vous ajoutez Mailchimp à votre SPF existant.
SPF actuel :
v=spf1 include:_spf.google.com -all
SPF modifié :
v=spf1 include:_spf.google.com include:servers.mcsv.net -all
Validation : Confirmez que l'ajout ne dépasse pas 10 lookups et que la syntaxe reste valide.
Cas 3 : Erreur "permerror" en production
Symptôme : Vos emails échouent avec SPF permerror.
Diagnostic : Collez l'enregistrement dans le validateur.
Erreur détectée :
v=spf1 ip4:192.168.1.1 include: -all
Erreur : mechanism_missing_value - include: sans domaine.
Correction :
v=spf1 ip4:192.168.1.1 include:_spf.captaindns.com -all
Cas 4 : Trop de DNS lookups
Symptôme : Le validateur indique lookup_limit_exceeded.
Diagnostic : Votre SPF cumule trop d'includes :
v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:amazonses.com include:_spf.salesforce.com include:sendgrid.net include:mailchimp.com -all
Solutions :
- Remplacez certains includes par des ip4/ip6 directs
- Utilisez un sous-domaine dédié (ex:
marketing.captaindns.com) - Supprimez les services inutilisés
- Utilisez notre SPF Flattener pour aplatir automatiquement les includes
Tester une IP contre la politique SPF
Pourquoi tester une IP contre un enregistrement SPF ?
Quand un email est reçu, le serveur destinataire vérifie si l'IP de l'expéditeur est autorisée par le SPF du domaine. Si l'IP n'est pas couverte, l'email peut être rejeté ou marqué comme suspect.
Cas d'usage courants :
- Nouveau serveur mail -> Vérifiez que son IP est couverte avant le premier envoi
- Service tiers (Mailchimp, SendGrid, SES) -> Confirmez que l'include couvre bien les IPs du prestataire
- Diagnostic "SPF fail" -> Identifiez exactement quel mécanisme rejette l'IP
- Migration de serveur -> Testez les nouvelles IPs avant de couper les anciennes
Comment fonctionne le test IP ?
L'outil évalue l'enregistrement SPF mécanisme par mécanisme, dans l'ordre :
- ip4/ip6 : Correspondance directe IP ou CIDR
- a : Résolution DNS du domaine, comparaison avec l'IP
- mx : Résolution des serveurs MX, puis de leurs IPs
- include : Évaluation récursive du SPF du domaine inclus
- all : Correspondance universelle (résultat selon le qualificateur)
Le premier mécanisme qui correspond détermine le résultat. Si aucun ne correspond et qu'il n'y a pas de directive all, le résultat est "neutral".
FAQ - Questions fréquentes
Q : Qu'est-ce qu'un enregistrement SPF ?
R : SPF (Sender Policy Framework) est un enregistrement DNS TXT qui liste les serveurs autorisés à envoyer des emails pour votre domaine. Format : v=spf1 suivi de mécanismes (ip4, mx, include) et d'une directive finale (-all, ~all).
Q : Pourquoi valider la syntaxe SPF avant publication ?
R : Un enregistrement SPF mal formé génère une erreur permanente (permerror) qui peut rejeter tous vos emails ou désactiver complètement la vérification SPF. Valider avant publication évite les interruptions de service.
Q : Quelle est la limite de requêtes DNS pour SPF ?
R : La RFC 7208 limite à 10 requêtes DNS par évaluation SPF. Chaque include, a, mx, ptr et exists compte. Dépasser cette limite génère un permerror et peut faire échouer l'authentification.
Q : Que signifie le qualificateur -all vs ~all ?
R :
-all(hard fail) : Rejette les emails non autorisés~all(soft fail) : Marque comme suspects mais accepte
Commencez par ~all en test, puis passez à -all en production pour une protection maximale.
Q : Comment corriger l'erreur "too many DNS lookups" ?
R :
- Remplacez les includes par des
ip4/ip6directs - Supprimez les mécanismes inutiles
- Utilisez des sous-domaines avec leurs propres SPF
- Évitez
ptr(déprécié et coûteux en requêtes)
Q : Puis-je avoir plusieurs enregistrements SPF ?
R : Non. La RFC impose un seul enregistrement SPF par domaine. Plusieurs enregistrements génèrent un permerror. Fusionnez vos politiques dans un seul TXT commençant par v=spf1.
Q : L'outil valide-t-il les domaines includes ?
R : Le validateur vérifie la syntaxe des domaines référencés par include et redirect. Pour une analyse complète avec résolution DNS et comptage récursif des lookups, utilisez l'Inspecteur SPF.
Outils complémentaires
| Outil | Utilité |
|---|---|
| Inspecteur SPF | Analyser un SPF publié avec résolution DNS complète |
| SPF Flattener | Aplatir votre SPF pour passer sous les 10 DNS lookups |
| Inspecteur DKIM | Valider votre signature DKIM |
| Inspecteur DMARC | Configurer et tester votre politique DMARC |
| Analyseur d'en-têtes email | Diagnostiquer SPF/DKIM/DMARC sur un email reçu |
Ressources utiles
- RFC 7208 - Sender Policy Framework (spécification officielle SPF)
- Google - Configurer SPF (guide Google Workspace)
- Microsoft - SPF pour Microsoft 365 (guide Outlook/M365)