Un domaine destinataire distant rejette le courrier pour des raisons de SPF et je pense que c'est parce que l'expéditeur a SPF configuré de manière incorrecte.
Quand je lance Dig, je vois:
[fooadm@box ~]# Dig @8.8.8.8 -t TXT foosender.com
; <<>> Dig 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 -t TXT foosender.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30608
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;foosender.com. IN TXT
;; ANSWER SECTION:
foosender.com. 14039 IN TXT "v=spf1 include:spf.foo1.com -all"
foosender.com. 14039 IN TXT "v=spf1 include:_spf.bob.foo2.com -all"
;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jan 7 09:45:38 2014
;; MSG SIZE rcvd: 146
Est-ce une configuration valide? Il me semble étrange qu'il y ait deux enregistrements distincts (chacun avec des échecs durs). Tout ne devrait-il pas être dans un seul enregistrement?
Je m'attendrais à ce que le bon TXT record soit:
v=spf1 include:spf.foo1.com include:_spf.bob.foo2.com -all
Tu as raison. Voir RFC 4408, section 4.5 .
Les enregistrements qui ne commencent pas par une section de version exactement "v = spf1" sont supprimés. Notez que la section version se termine par un caractère SP ou la fin de l'enregistrement. Un enregistrement avec une section version de "v = spf10" ne correspond pas et doit être supprimé.
Si des enregistrements de type SPF figurent dans l'ensemble, tous les enregistrements de type TXT sont ignorés.
Après les étapes ci-dessus, il doit rester exactement un enregistrement et l'évaluation peut continuer. S'il reste deux enregistrements ou plus, check_Host () se ferme immédiatement avec le résultat de "PermError".
Si aucun enregistrement correspondant n'est renvoyé, un client SPF DOIT supposer que le domaine ne fait aucune déclaration SPF. Le traitement SPF DOIT s'arrêter et
renvoie "Aucun".
Cette configuration SPF n'est pas valide. Si plusieurs enregistrements sont trouvés, la sélection d'enregistrements devrait produire une erreur en conséquence. Voir RFC 7208, section 4.5 sur la sélection des enregistrements:
Si l'ensemble d'enregistrements résultant comprend plusieurs enregistrements, check_Host () produit le résultat "permerror".