Retour au blog

Sécurité email

Étude de cas : SPF permerror, quand un nouvel outil fait dépasser la limite des 10 requêtes DNS

Un outil de facturation ajouté au SPF, et tout le domaine passe en permerror. Diagnostic des 10 requêtes DNS, des includes orphelins et correction pas à pas.

29 septembre 2026 - 10 min

Un enregistrement SPF dont l'évaluation atteint 12 recherches DNS, au-delà de la limite de 10, produit un résultat permerror.

Une PME de services ajoute un nouvel outil de facturation. Comme le demande l’éditeur, l’équipe informatique ajoute un include: à l’enregistrement SPF du domaine. Le lendemain, les relances clients envoyées par le CRM commencent à arriver en spam, et le formulaire du site ne délivre plus ses accusés de réception chez certains destinataires. Les emails envoyés depuis Microsoft 365, eux, continuent de passer.

Derrière ces symptômes dispersés se cache une seule cause : spf=permerror. Le SPF du domaine est devenu invalide pour tous les expéditeurs, parce que son évaluation dépasse la limite de 10 requêtes DNS. Cette étude de cas déroule le diagnostic complet et la correction.

Scénario reconstitué. Ce cas combine des situations fréquentes observées en audit. Les domaines et prestataires sont fictifs, à l’exception de l’include Microsoft 365, dont le coût a été mesuré.

Les symptômes

  • Les relances du CRM et les emails du formulaire web arrivent en spam chez plusieurs clients.
  • Les emails des salariés, envoyés depuis Microsoft 365, ne sont pas touchés.
  • Le problème est apparu juste après l’ajout de l’outil de facturation dans le SPF.
  • Le domaine publie DMARC en p=quarantine depuis plusieurs mois.

Le contraste entre les flux est le premier indice. Microsoft 365 signe ses messages avec DKIM pour le domaine : DMARC passe grâce à DKIM, même si SPF échoue. Le CRM et le site, eux, n’ont pas de DKIM aligné. Ils ne comptaient que sur SPF. Quand SPF tombe, DMARC tombe avec.

Étape 1 : lire le résultat SPF dans les en-têtes

Un message du CRM, reçu sur une boîte de test, montre :

Authentication-Results: mx.example-client.com;
  spf=permerror smtp.mailfrom=example.fr;
  dkim=none;
  dmarc=fail action=quarantine header.from=example.fr

permerror n’est pas un fail. Le serveur n’a pas jugé l’IP non autorisée : il n’a pas pu évaluer l’enregistrement. Pour DMARC, le résultat est le même : SPF ne passe pas. Les rapports DMARC agrégés confirment le phénomène sur toutes les sources qui utilisent example.fr comme domaine d’enveloppe :

<spf><domain>example.fr</domain><result>permerror</result></spf>

Étape 2 : compter les requêtes, includes compris

L’enregistrement du domaine ne paraît pas excessif :

dig +short TXT example.fr | grep spf1
"v=spf1 include:spf.protection.outlook.com include:spf.mkt-platform.example
 include:_spf.crm.example include:mail.support.example
 include:spf.invoices.example mx -all"

Six mécanismes seulement. Mais la limite de la RFC 7208 porte sur les termes qui déclenchent une requête DNS pendant toute l’évaluation, y compris à l’intérieur des includes. Il faut donc ouvrir chaque include :

dig +short TXT spf.protection.outlook.com
# v=spf1 ip4:40.92.0.0/15 ... -all          → 1 requête (l'include lui-même)
dig +short TXT spf.mkt-platform.example
# v=spf1 include:a.mkt... include:b.mkt...  → 1 + 2 = 3 requêtes

Le décompte complet donne :

Source Coût en requêtes
Microsoft 365 (spf.protection.outlook.com) 1
Plateforme marketing 3
CRM 3
Outil de support 2
Outil de facturation (ajouté) 2
mx 1
Total 12

Avant l’ajout, le total était de 10 : le domaine était exactement à la limite, sans que personne ne le sache. L’include de facturation l’a fait basculer. La RFC est explicite : au-delà de 10, l’implémentation doit renvoyer permerror.

Arbre des includes SPF : Microsoft 365, marketing, CRM, support, facturation et mx, pour un total de 12 requêtes DNS au-delà de la limite de 10.
Le coût réel d'un SPF se mesure dans l'arbre complet des includes. Ici, 12 requêtes pour une limite de 10 : le résultat devient permerror pour tous les expéditeurs.

Étape 3 : chercher les autres causes de permerror

Le dépassement n’est pas la seule cause possible. Pendant l’audit, deux autres points sont vérifiés, car ils produisent le même résultat :

Un include vers un domaine sans SPF. D’après le tableau de la section 5.2 de la RFC 7208, si la cible d’un include: ne publie aucun SPF (résultat none), l’évaluation renvoie permerror. C’est le piège des anciens prestataires : leur domaine disparaît ou cesse de publier SPF, et votre enregistrement casse sans que vous ayez rien modifié.

Les requêtes « vides ». Une requête qui ne renvoie aucune réponse (domaine inexistant ou absence d’enregistrement) est une void lookup. La RFC recommande de les limiter à deux ; au-delà, le résultat est aussi permerror.

Deux enregistrements SPF. Deux TXT commençant par v=spf1 sur le même nom invalident SPF.

Dans ce cas, l’audit trouve en plus un include résiduel vers un ancien routeur d’emailing, retiré depuis l’enregistrement mais toujours présent dans une zone DNS secondaire. Ce n’est pas lui qui casse le domaine principal, mais il est supprimé au passage.

Étape 4 : corriger sans aplatir à l’aveugle

La tentation est de remplacer tous les includes par des adresses IP (flattening). Cela fait baisser le compteur, mais crée un risque de panne silencieuse quand un fournisseur change ses IP. Notre article sur la syntaxe SPF et le flattening détaille ce compromis. Ici, la correction suit un ordre plus durable :

  1. Retirer mx. Les MX du domaine pointent vers Microsoft 365, déjà couvert par son include : le mécanisme est redondant. Gain : 1 requête.
  2. Déplacer le marketing sur un sous-domaine. Les campagnes partent désormais de news.example.fr, avec son propre SPF et une signature DKIM alignée. Gain : 3 requêtes sur le domaine principal. Voir notre guide pour créer un sous-domaine d’envoi.
  3. Activer DKIM aligné sur le CRM et l’outil de facturation. Ces flux ne dépendent plus du seul SPF pour passer DMARC.
  4. Mesurer à nouveau. Le domaine principal tombe à 8 requêtes, avec une marge pour un futur outil.
example.fr.       TXT "v=spf1 include:spf.protection.outlook.com include:_spf.crm.example include:mail.support.example include:spf.invoices.example -all"
news.example.fr.  TXT "v=spf1 include:spf.mkt-platform.example -all"

Étape 5 : vérifier

  • Un message de chaque flux (CRM, site, facturation, Microsoft 365) est envoyé vers une adresse Gmail et une adresse Microsoft 365 : chaque en-tête doit afficher spf=pass et dmarc=pass.
  • Les rapports DMARC sont suivis pendant deux semaines : permerror doit disparaître de toutes les sources.
  • Une règle est documentée : tout ajout d’include est mesuré avant publication. Notre vérificateur de domaine gratuit affiche le coût de chaque terme SPF en requêtes DNS.

Les leçons à retenir

  • Un SPF « court » peut être coûteux : seul l’arbre complet des includes compte.
  • Un permerror touche tous les flux, pas seulement l’outil ajouté.
  • Les flux sans DKIM aligné sont les premiers à tomber. DKIM aligné partout est la meilleure assurance contre un SPF fragile.
  • La marge compte. Un domaine à 10 requêtes fonctionne, jusqu’au prochain outil ou jusqu’à ce qu’un fournisseur ajoute un include chez lui.

FAQ

Quelle différence entre SPF fail et SPF permerror ?

fail signifie que l’IP n’est pas autorisée. permerror signifie que l’enregistrement n’a pas pu être évalué : syntaxe invalide, plus de 10 requêtes, include vers un domaine sans SPF ou trop de requêtes vides.

Un SPF en permerror bloque-t-il tous mes emails ?

Pas forcément. Les flux signés DKIM pour votre domaine peuvent encore passer DMARC. Ceux qui ne comptent que sur SPF échouent, et sont mis en quarantaine ou rejetés si votre politique DMARC le prévoit.

Les mécanismes ip4 et ip6 comptent-ils dans la limite ?

Non. Seuls include, a, mx, ptr, exists et redirect déclenchent des requêtes comptées.

Comment savoir combien coûte un include ?

Il faut lire son enregistrement, puis ceux de ses propres includes, récursivement. Un outil de vérification SPF fait ce calcul automatiquement.

Le flattening est-il une bonne solution ?

C’est un dernier recours. Il réduit le compteur mais doit être surveillé, car les IP des fournisseurs changent. Simplifier l’architecture d’envoi est plus durable.

Conclusion

Un permerror SPF est une panne silencieuse : rien ne prévient au moment de la modification DNS, et les symptômes apparaissent ailleurs, chez les destinataires. Le diagnostic tient en trois gestes : lire les en-têtes, compter l’arbre complet des includes et vérifier les causes annexes. La correction durable passe par la séparation des flux et DKIM aligné, pas par un aplatissement précipité. Notre prestation d’audit et de configuration SPF, DKIM et DMARC inclut cette mesure et la documentation qui évite la rechute.

Sources et références

Ce sujet touche vos propres envois ?

Décrivez ce que vous observez : je vous indique les premières vérifications utiles et la prestation adaptée.