SPF include : dépasser 10 requêtes ne casse pas tout

Un enregistrement SPF qui demande plus de dix requêtes DNS est cassé, mais pas de la façon dont la plupart des guides le décrivent. L’évaluation s’arrête au premier mécanisme qui correspond au serveur qui se connecte, et un expéditeur reconnu par le deuxième terme n’atteint donc jamais le douzième. Dépasser la limite signifie que l’enregistrement peut renvoyer une erreur permanente, et le fait pour tout expéditeur non reconnu plus tôt. L’ordre décide qui est touché.

Cette distinction compte parce qu’elle change la correction. Si la limite cassait chaque message, vous le verriez immédiatement. Au lieu de cela, elle casse les expéditeurs placés à la fin de votre enregistrement, c’est-à-dire d’ordinaire la plateforme ajoutée le plus récemment et vérifiée le plus rarement.

include dit au destinataire d’aller consulter un autre enregistrement

Le mécanisme include ne recopie pas l’enregistrement d’un autre domaine dans le vôtre. Il dit au serveur destinataire d’évaluer l’enregistrement SPF de cet autre domaine comme une vérification distincte et d’en utiliser le résultat : si l’adresse IP qui se connecte y réussit, le include correspond et l’évaluation s’arrête.

v=spf1 include:_spf.google.com include:sendgrid.net ~all

Cet enregistrement dit : consulte la liste de Google, puis celle de SendGrid, puis applique ~all à tout ce qui n’a correspondu à aucune des deux. Chaque include remet au destinataire un nouvel enregistrement à analyser, qui peut lui-même contenir d’autres termes include, et c’est là que part le budget.

Le mot induit en erreur sur un point précis. include ne renvoie qu’une réussite ou une absence de correspondance. Un -all à l’intérieur d’un enregistrement inclus ne rejette pas votre courrier ; il signifie seulement que cet enregistrement n’a pas correspondu, et l’évaluation se poursuit avec votre terme suivant. Seul le all de votre propre enregistrement décide du résultat.

Cinq mécanismes dépensent le budget, et trois sont gratuits

La RFC 7208, section 4.6.4, plafonne une évaluation SPF à dix termes qui interrogent le DNS. Dépasser ce plafond est une erreur permanente de niveau MUST, pas un avertissement souple.

TermeCoûte une requête
includeOui, plus tout ce qu’il contient
aOui
mxOui
ptrOui, et il est obsolète
existsOui
ip4Non
ip6Non
allNon
expNon

Deux détails de ce tableau sont souvent rapportés de travers. Un terme mx coûte une requête pour le terme, pas une par enregistrement MX renvoyé, et un enregistrement qui liste cent adresses IP avec ip4 ne dépense absolument rien. Ce second point est toute la base de l’aplatissement SPF.

La macro %{p} est elle aussi imputée au même budget de dix, parce que son expansion exige une requête inverse.

Le décompte porte sur les termes évalués, pas sur les domaines nommés

C’est la règle qui fait qu’un enregistrement coûte plus cher qu’il n’en a l’air. La limite compte chaque terme interrogeant le DNS qu’un destinataire évalue pendant une vérification, et un domaine atteint par deux branches différentes est évalué deux fois.

Si votre enregistrement inclut deux prestataires et que tous deux incluent le même domaine d’infrastructure partagée, tout le sous-arbre de ce domaine est payé deux fois. Compter les noms de domaine distincts donne un nombre inférieur à celui qu’atteindra un destinataire, et c’est pourquoi un enregistrement qui ressemble sur le papier à six requêtes peut produire un permerror en pratique.

Deux cas voisins ont la même nature :

  • Une boucle est une erreur permanente, pas une branche à ignorer. Si A inclut B et que B inclut A, un destinataire ne s’arrête pas discrètement : il fait échouer l’enregistrement.
  • Les termes placés après all ne sont jamais évalués. all correspond toujours, donc tout ce qui le suit est du code mort et ne coûte rien. Un redirect posé à côté d’un all est inerte pour la même raison.

Au-delà de la limite, ce sont les expéditeurs de la fin qui échouent

Un destinataire évalue vos termes dans l’ordre et s’arrête à la première correspondance. Un seul enregistrement cassé produit donc trois issues différentes selon qui envoie.

  • Un expéditeur reconnu avant l’épuisement du budget réussit normalement. Rien n’est cassé pour lui, et rien n’apparaît dans vos journaux.
  • Un expéditeur reconnu après la dixième requête reçoit une erreur permanente. La plupart des destinataires traitent un permerror comme un échec et non comme un enregistrement absent, et DMARC ne voit donc aucune réussite SPF.
  • Un expéditeur absent de votre enregistrement atteint votre terme all, exactement comme prévu, si l’évaluation survit jusque-là.

Le symptôme concret est donc que le courrier d’une seule plateforme se met soudain à échouer l’authentification alors que tout le reste paraît correct. Si cette plateforme a été ajoutée à la fin de l’enregistrement, elle est la première à passer par-dessus bord.

Cela veut aussi dire qu’une correction peut être gratuite. Déplacer votre expéditeur au plus gros volume en tête de l’enregistrement ne réduit pas le total, mais fait en sorte que cet expéditeur soit reconnu avant que le budget ne soit dépensé. Cela achète du temps, cela ne règle rien.

Comment trouver le vrai chiffre

Compter à la main n’est pas fiable, parce que vous ne pouvez pas voir dans l’enregistrement d’un prestataire sans le résoudre, et parce que les prestataires modifient le leur sans vous prévenir. Passez le domaine dans un outil de vérification SPF gratuit, qui parcourt l’arbre entier, résout chaque include de façon récursive et rapporte le total qu’un destinataire atteindrait réellement, plutôt que le nombre de termes que vous avez saisis.

Ce qu’il faut regarder dans le résultat :

  1. Le total face à la limite de dix. Tout ce qui dépasse signifie que l’enregistrement peut produire un permerror.
  2. Quelle branche coûte cher. Un prestataire est le plus souvent responsable de l’essentiel du coût, et les prestataires diffèrent énormément.
  3. Les sous-arbres dupliqués. Une infrastructure partagée atteinte deux fois est le dépassement caché le plus courant.
  4. Les requêtes vides. Un terme qui ne résout vers rien dispose de son propre budget distinct, et un include pointant vers un domaine sans enregistrement SPF est une erreur permanente dès la première occurrence.
  5. Tout ce qui suit all. Les termes morts sont inoffensifs, mais ils signalent en général un enregistrement édité par plusieurs personnes qui ne l’ont pas lu.

Sur les domaines que nous testons pour le Unspam 2026 Email Deliverability Benchmark, 93 % publient un enregistrement SPF valide : le défaut courant dans ce domaine n’est donc pas un enregistrement absent, mais un enregistrement qui a discrètement dépassé son budget.

Quatre façons de repasser sous dix

À peu près par ordre de préférence.

Retirez ce que vous n’utilisez plus. La plupart des enregistrements en dépassement portent un prestataire par lequel plus personne n’envoie depuis deux ans. C’est gratuit, c’est définitif, et c’est presque toujours possible.

Remplacez un include par des plages ip4 là où le prestataire en publie de stables. Un terme ip4 ne coûte rien. Le revers est que la maintenance vous revient : quand le prestataire change d’adresses IP, votre courrier échoue et personne ne vous le dit. Ne le faites que là où le prestataire documente une plage stable et s’engage à signaler les changements.

Déplacez l’envoi vers un sous-domaine. Votre plateforme marketing peut envoyer depuis mail.example.com avec son propre enregistrement SPF et son propre budget de dix. C’est la correction structurelle, elle passe à l’échelle, et elle sépare au passage les réputations.

Aplatissez l’enregistrement avec un service. L’aplatissement SPF résout chaque include et publie à votre place la liste d’adresses IP obtenue, en la rafraîchissant automatiquement. Cela fonctionne, et cela fait de la disponibilité d’un tiers une dépendance de l’authentification de votre courrier. Traitez-le comme la dernière option, pas comme la première.

Si vous construisez un enregistrement plutôt que d’en réparer un, un générateur d’enregistrement SPF produit un enregistrement de départ correct, et notre guide des enregistrements SPF couvre la syntaxe en entier.

Que vérifier une fois l’enregistrement sous la limite

Une réussite SPF est nécessaire mais ne suffit pas à elle seule, parce que DMARC exige que le domaine SPF s’aligne avec l’adresse de votre en-tête From, et parce que SPF casse au réacheminement quel que soit le soin apporté à l’enregistrement. Notre guide de l’authentification des e-mails explique comment les trois enregistrements dépendent les uns des autres et pourquoi c’est DKIM, et non SPF, qui survit à une liste de diffusion.

Revérifiez le total chaque fois que vous ajoutez une plateforme d’envoi, puis de nouveau quelques mois plus tard même si vous n’avez rien changé, car le décompte inclut les enregistrements des prestataires et ceux-ci bougent sous vos pieds. Pour voir à quoi ressemble un vrai message chez un destinataire, avec le résultat SPF à côté de tout ce qui décide du placement, faites un test de spam gratuit.

Questions fréquentes

Que fait include dans un enregistrement SPF ?

Le mécanisme include dit au serveur destinataire d’évaluer l’enregistrement SPF d’un autre domaine comme une vérification distincte et d’en utiliser le résultat. Il ne recopie pas cet enregistrement dans le vôtre. Si l’adresse IP qui se connecte réussit chez le domaine inclus, le include correspond et l’évaluation s’arrête là. Un -all à l’intérieur d’un enregistrement inclus ne rejette pas non plus votre courrier ; il signifie seulement que cet enregistrement n’a pas correspondu, et l’évaluation se poursuit avec votre terme suivant. Seul le all de votre propre enregistrement décide du résultat.

Combien de requêtes DNS un enregistrement SPF a-t-il droit ?

Dix, selon la RFC 7208 section 4.6.4, et dépasser ce nombre est une erreur permanente de niveau MUST et non un avertissement. Cinq mécanismes dépensent ce budget : include, a, mx, ptr et exists. Trois ne le dépensent pas : ip4, ip6 et all, et le modificateur exp est gratuit lui aussi. La macro %{p} est imputée à la même limite parce que son expansion exige une requête inverse. Un terme mx coûte une requête pour le terme, pas une par enregistrement MX renvoyé.

Dépasser dix requêtes casse-t-il chaque message ?

Non, et c’est le détail que la plupart des guides rapportent de travers. Un destinataire évalue vos termes dans l’ordre et s’arrête au premier qui correspond au serveur qui se connecte, et un expéditeur reconnu par le deuxième terme n’atteint donc jamais le douzième. Dépasser la limite signifie que l’enregistrement peut produire un permerror, et le fait pour tout expéditeur non reconnu plus tôt. Le symptôme habituel est le courrier d’une plateforme qui échoue à l’authentification alors que tout le reste paraît correct, et cette plateforme est normalement la dernière ajoutée, à la fin de l’enregistrement.

Pourquoi mon enregistrement SPF utilise-t-il plus de requêtes que de termes écrits ?

Parce que la limite compte chaque terme interrogeant le DNS qu’un destinataire évalue, et non le nombre de domaines que vous avez nommés. Chaque include remet au destinataire un nouvel enregistrement, qui peut contenir d’autres termes include, et un domaine atteint par deux branches différentes est évalué deux fois, donc tout son sous-arbre est payé deux fois. Deux prestataires qui incluent la même infrastructure partagée sont le dépassement caché le plus courant, et compter les noms distincts donne un nombre inférieur à celui qu’atteint un destinataire.

L’aplatissement SPF est-il une bonne idée ?

C’est la dernière option, pas la première. L’aplatissement résout chaque include et publie la liste d’adresses IP obtenue en la rafraîchissant automatiquement, et il règle bien le décompte des requêtes. Il fait aussi de la disponibilité d’un tiers une dépendance de l’authentification de votre courrier. Mieux vaut d’abord retirer les prestataires que vous n’utilisez plus, ce qui est gratuit et définitif, puis remplacer un include par des plages ip4 là où le prestataire en publie de stables, puis déplacer une plateforme vers un sous-domaine doté de son propre enregistrement et de son propre budget de dix.

Puis-je avoir deux enregistrements SPF sur un domaine ?

Non. Publier un second enregistrement TXT au lieu de modifier le premier ne les fusionne pas, et le résultat est une erreur permanente. La plupart des destinataires traitent une erreur permanente comme un échec et non comme un enregistrement absent, et DMARC ne voit donc aucune réussite SPF. Un domaine reçoit un enregistrement SPF, et tout ce que vous autorisez tient dedans.

Découvrez où votre campagne arrive vraiment.

Lancer un test antispam gratuit Test Inbox Placement