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 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
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)