Un SPF pour autoriser smtp.free.fr à envoyer des e-mails

Nouveau WRInaute
Bonjour à tous !

Voici, pour les meilleurs d’entre vous, le défi du siècle : écrire un SPF qui autorise smtp.free.fr à envoyer des e-mails de la part de mon nom de domaine… Et c’est pas gagné !

Si vous trouvez la solution, tous les Freenautes pourront également utiliser la méthode, alors je compte sur vous !

Je possède le site mondomaine.com, hébergé sur un serveur mutualisé. Mon hébergeur se casse les dents sur ma demande, et il n’y a désormais que vous qui puissiez m’aider… Je précise que je ne suis pas informaticien, et que ce post est l’issu de recherches longues et acharnées, ne débouchant malheureusement sur aucun résultat.

Mon e-mail perso est prenom.nom@mondomaine.com, et pour envoyer des e-mails, j’utilise deux moyens :

- Pour les envois groupés, un logiciel de mailing pour mes newsletters, avec un logiciel permettant de créer un SMTP local sur mon PC perso, dont l’adresse IP est xx.xx.xx.xx. Dans ce cas, je règle SMTP en localhost, et il faut donc que le SPF autorise mon IP xx.xx.xx.xx à envoyer des e-mails de la part de prenom.nom@mondomaine.com.

- Pour les envois au quotidien, Windows Live Mail, qui utilise le SMTP de mon FAI Free. Windows Live Mail, pour mon adresse prenom.nom@mondomaine.com, est donc configuré avec smtp.free.fr pour le courrier sortant (limité à environ 200 e-mails émis par jour).

Pour autoriser mon IP xx.xx.xx.xx à envoyer des e-mails de la part de prenom.nom@mondomaine.com, c’est simple, l’écriture suivante suffit :

"v=spf1 mx ip4:xx.xx.xx.xx -all"

Le problème est que cette écriture bloque tous les envois effectués depuis mon Windows Live Mail, et qui utilisent le SMTP smtp.free.fr

Alors on a essayé l’écriture suivante :

"v=spf1 mx include:smtp.free.fr ip4: xx.xx.xx.xx -all"

Mais l’écriture "include:smtp.free.fr" crée malheureusement une erreur.

Après plusieurs recherches, j’ai constaté que smtp.free.fr ne correspondait à rien, et que les serveurs smtp réellement utilisés, en ce moment, étaient, selon la date et l’endroit :

smtp1-g21.free.fr <==> 2a01:e0c:1:1599::10 <==> 212.27.42.1
smtp2-g21.free.fr <==> 2a01:e0c:1:1599::11 <==> 212.27.42.2
smtp3-g21.free.fr <==> 2a01:e0c:1:1599::12 <==> 212.27.42.3
smtp4-g21.free.fr <==> 2a01:e0c:1:1599::13 <==> 212.27.42.4
smtp5-g21.free.fr <==> 2a01:e0c:1:1599::14 <==> 212.27.42.5
smtp6-g21.free.fr <==> 2a01:e0c:1:1599::15 <==> 212.27.42.6

Alors on s’est dit chouette, on va écrire le SPF de la façon suivante :

"v=spf1 mx include:free.fr ip4:xx.xx.xx.xx ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all"

Mais souci, si c’est toujours ok pour les mails envoyés depuis mon SMTP localhost, puisque le SPF autorise expressément mon IP xx.xx.xx.xx à envoyer des e-mails, en ce qui concerne Free, rien n’est résolu, et je tombe sur des erreurs qui risquent de faire que mes messages arrivent directement dans les spams de mes destinataires…


Voici des exemples d’en-têtes des e-mails qu’ont reçu mes destinataires :


GMAIL :

Received: from smtp3-g21.free.fr (smtp3-g21.free.fr. [2a01:e0c:1:1599::12])
by mx.google.com with ESMTP id ph3si2328382wjb.103.2013.01.18.12.13.30;
Received-SPF: fail (google.com: domain of prenom.nom@mondomaine.com does not designate 2a01:e0c:1:1599::12 as permitted sender) client-ip=2a01:e0c:1:1599::12;
Authentication-Results: mx.google.com;
spf=hardfail (google.com: domain of prenom.nom@mondomaine.com does not designate 2a01:e0c:1:1599::12 as permitted sender) smtp.mail=prenom.nom@mondomaine.com


YAHOO :

Received-SPF: permerror (encountered permanent error during SPF processing of domain of mondomaine.com)
X-Originating-IP: [212.27.42.3]
Authentication-Results: mta1008.mail.ukl.yahoo.com from=mondomaine.com; domainkeys=neutral (no sig); from= mondomaine.com; dkim=neutral (no sig)
Received: from 127.0.0.1 (EHLO smtp3-g21.free.fr) (212.27.42.3)
by mta1008.mail.ukl.yahoo.com with SMTP


HOTMAIL :

Authentication-Results: hotmail.com; spf=permerror (sender IP is 212.27.42.3) smtp.mailfrom=prenom.nom@mondomaine.com; dkim=none header.d= mondomaine.com; x-hmca=none
X-SID-PRA: prenom.nom@mondomaine.com
X-AUTH-Result: NONE
X-SID-Result: NONE
Received: from smtp3-g21.free.fr ([212.27.42.3]) by BAY0-MC2-F17.Bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4900);


Alors pour comprendre ce qui se passe, j’ai utilisé le validateur en ligne http://www.kitterman.com/spf/validate.html, en tapant mon nom de domaine mondomaine.com, pour vérifier la validité du SPF. Et je tombe sur l’erreur suivante :

Found v=spf1 record for mondomaine.com:
v=spf1 mx include:free.fr ip4:xx.xx.xx.xx ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all
Results - PermError SPF Permanent Error: No valid SPF record for included domain: free.fr: include:free.fr

Bilan : il semble que la séquence include:free.fr ne soit pas valide. J’imagine donc qu’il faut que je la supprime, ce qui donnerait :

"v=spf1 mx ip4:xx.xx.xx.xx ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all"

Oui, au passage, je précise qu’on a mis ~all plutôt que –all, parce que –all semble poser des problèmes à beaucoup de monde.

Mais même si la séquence include:free.fr créait un bug, ça n’explique pas pourquoi Gmail, Hotmail et Yahoo, affichent un message d’erreur au sujet du ip6:2a01:e0c:1:1599::12 ! Pourtant, dans la séquence, on avait bien précisé que ip6:2a01:e0c:1:1599::12 était autorisé à envoyer des e-mails de la part de prenom.nom@mondomaine.com !

Alors question, est qu’on a bien fait d’indiquer l’Ipv6 plutôt qu’une autre forme d’écriture ?

Est-ce qu’on aurait pas plutôt dû écrire :

"v=spf1 mx ip4:xx.xx.xx.xx a:smtp1-g21.free.fr a:smtp2-g21.free.fr a:smtp3-g21.free.fr a:smtp4-g21.free.fr a:smtp5-g21.free.fr a:smtp6-g21.free.fr ~all"

ou même :

"v=spf1 mx ip4:xx.xx.xx.xx ip6:212.27.42.1 ip6:212.27.42.2 ip6:212.27.42.3 ip6:212.27.42.4 ip6:212.27.42.5 ip6:212.27.42.6 ~all"

En vrac, voici quelques réflexions :
- Ne faut-il pas écrire mx:free.fr quelque part ?
- Ou même "v=spf1 a mx ptr a:free.fr mx:free.fr mx:free.fr (…)" ?
- Ou bien encore "v=spf1 mx:mail.mondomaine.com ip4:xx.xx.xx.xx a:smtp3-g21.free.fr (…)" ?
- N’y a-t-il pas confusion, quelque part, entre a: mx: et ptr: ?
- S’est-on trompé dans l’ordre ? A-t-on oublié quelque chose ?
- N’oubliez pas que, semble-t-il, on est limité à 10 DNS dans un SPF...

Bref, je ne sais plus sur quelle piste partir, et si ça continue, je vais finir par écrire un absurde "v=spf1 +all" !

Si cela peut vous aider, voici quelques outils intéressants :
- Générateur de SPF : https://www.mtgsy.net/dns/spfwizard.php
- Générateur de SPF : https://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/
- Générateur de SPF : http://www.mailradar.com/spf/
- Tutoriel SPF : http://www.openspf.org/FAQ/Common_mistakes


Dernière chose, j’ai envoyé un e-mail à check-auth@verifier.port25.com, et je reçois le bilan suivant :

==========================================================
Summary of Results
==========================================================
SPF check: permerror
DomainKeys check: neutral
DKIM check: neutral
Sender-ID check: permerror
SpamAssassin check: ham

----------------------------------------------------------
SPF check details:
----------------------------------------------------------
Result: permerror
ID(s) verified: smtp.mailfrom=prenom.nom@mondomaine.com
DNS record(s):
mondomaine.com. SPF (no records)
mondomaine.com. 60 IN TXT "v=spf1 mx include:free.fr ip4:xx.xx.xx.xx ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all"
mondomaine.com. 86400 IN MX 30 mail.mondomaine.com.
mail. mondomaine.com AAAA (no records)
free.fr. SPF (no records)
free.fr. TXT (no records)


----------------------------------------------------------
Sender-ID check details:
----------------------------------------------------------
Result: permerror
ID(s) verified: header.From=prenom.nom@mondomaine.com
DNS record(s):
mondomaine.com. SPF (no records)
mondomaine.com. 60 IN TXT "v=spf1 mx include:free.fr ip4:xx.xx.xx.xx ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all"
mondomaine.com. 86259 IN MX 30 mail.mondomaine.com.
mail.mondomaine.com. AAAA (no records)
free.fr. SPF (no records)
free.fr. TXT (no records)


Voilà, 1000 mercis à ceux qui ont eu le courage d’aller jusq’au bout, et n’y connaissant pas grand chose en SPF, je compte vraiment sur vous pour trouver la solution de ce problème qui m’empêche de dormis depuis 3 jours…

Encore merci !
 
Nouveau WRInaute
Je précise que, 24 heures après la propagation DNS, il y a une évolution pour mon smtp Free :

Hotmail --> fail
Yahoo --> fail
Gmail --> pass, grâce au IP6:2a01:e0c:1:1599::12

En revanche, il y a malheureusement également eu une évolution négative pour mon smtp localhost :

Hotmail --> pass
Yahoo --> fail
Gmail --> pass

Pour mon smtp localhost, avec la simple écriture "v=spf1 mx ip4:xx.xx.xx.xx -all", tout était en pass, même pour yahoo. Je fais donc l'hypothèse que yahoo sanctionne systématiquement une erreur d'écriture, celle sans doute provoquée par include:free.fr

Je pense demander à mon hébergeur de tester :

"v=spf1 mx ip4:xx.xx.xx.xx ip4:212.27.42.0/24 ip6:2a01:e0c:1:1599::10 ip6:2a01:e0c:1:1599::11 ip6:2a01:e0c:1:1599::12 ip6:2a01:e0c:1:1599::13 ip6:2a01:e0c:1:1599::14 ip6:2a01:e0c:1:1599::15 ~all"

J'ai supprimé include:free.fr, et rajouté la tranche de serveurs free au format IPv4. J'ai gardé les IPv6, puisque au moins l'un d'entre eux permet d'avoir un important pass pour gmail.

Je vous tiens au courant, mais si vous avez d'autres suggestions d'ici là...

Encore merci !
 
Nouveau WRInaute
Malheureusement, mon hébergeur ne veut pas saisir le nouveau SPF que je lui ai soumis !
Donc impossible de savoir si le problème peut être résolue en enlevant le include:free.fr et en rajoutant les IPv4 de Free.

Voici la réponse du directeur technique de mon hébergeur (l'affaire est en support niveau 3, quand même) :





Bonjour,

Le probléme ne viens pas de NOM-DE-L'HEBERGEUR, le SPF est corréctement configuré .

Merci de voir avec les FAI qui bloquent vos messages

Sinon , merci d'acheter LUNDI matin un vrais serveur SMTP chez NOM-DE-L'HEBERGEUR.

Ca ne marche pas avec votre domaine via FREE : les FAI ne veulent plus cette configuration .

Cordialement

Mr XXXX
Directeur Technique / Technical Director
 
WRInaute passionné
Pour tes IPv6, tu peux écrire des range : ip6:2a01:e0c:1:1599::/64 devrait faire l'affaire.
Certains SPF trop long (peut-être le tiens) ne fonctionne pas (j'ignore la longueur limite), du coup, généralement tu utilises des includes de sous domaines permettant d'avoir un champ TXT "principal" plus petit.
 
Nouveau WRInaute
Excellente nouvelle ! A force de harcèlement et menaces, mon hébergeur a finalement accepté de tenter un "dernier SPF", celui que je lui ai directement soumis. Et bien entendu, il avait totalement tort (bravo à lui)...

Désormais, tout est en "pass", et mon hypothèse était exacte : la séquence include:free.fr créait bien une erreur "fatale", étant donné que Free ne dispose pas de SPF spécifique. Hotmail et Yahoo, dès lors qu'ils détectaient une erreur dans le SPF, n'allaient pas plus loin dans le décryptage du SPF. En gros : dès qu'il y une erreur dans le SPF, aucune des autres donnée n'est prise en compte par Hotmail et Yahoo, même la donnée en question est exacte.

Vous vérifier si le SPF est ok (préalable indispensable pour Hotmail et Yahoo), il suffit d'envoyer un e-mail à l'adresse check-auth@verifier.port25.com

Je précise que, par contre, pour Gmail, le fait qu'il y ait une erreur dans le SPF n'empêche pas Gmail d'extraire du SPF les données exactes, en laissant de côté les données non valides.

Dernière chose : si Gmail sait lire, dans un SPF, les IPv6, ce n'est pas le cas de Hotmail et Yahoo, pour qui il faut indiquer les serveurs sous forme IPv4.

Voici, en tout cas, les différentes choses que j'ai pu directement expérimenter.

Bon courage à tous !
 
Discussions similaires
Haut