nicolass

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 [email protected], 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 [email protected]

- Pour les envois au quotidien, Windows Live Mail, qui utilise le SMTP de mon FAI Free. Windows Live Mail, pour mon adresse [email protected], 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 [email protected], 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 [email protected] 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 [email protected] does not designate 2a01:e0c:1:1599::12 as permitted sender) [email protected]


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) [email protected]; dkim=none header.d= mondomaine.com; x-hmca=none
X-SID-PRA: [email protected]
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 [email protected] !

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 à [email protected], 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: [email protected]
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: [email protected]
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 !

oromcom

Re : Un SPF pour autoriser smtp.free.fr à envoyer des mails
« Réponse #1 le: 19 janvier 2013 03:02:34 »
c'est normal, vous n'êtes pas propriétaire du domaine "free.fr" il vous faut installer un serveur de messagerie et pointer l'ip du serveur sur le MX  et dans le SPF remplacer smtp.free.fr par mail.votredomaine.com

nicolass

Re : Un SPF pour autoriser smtp.free.fr à envoyer des mails
« Réponse #2 le: 19 janvier 2013 11:36:10 »
Je vous remercie d'avoir pris le temps de me répondre, mais d'un point de vue informatique, votre suggestion ne tient pas, étant donné que les smtp de free ont des IP connues. Cela n'a donc rien avoir avec le fait que je sois propriétaire de free.fr ou non. Le but d'un SPF est notamment de permettre au propriétaire d'un site Internet d'autoriser les envois depuis les smtp de son propre fournisseur d'accès.

Je précise toutefois 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 !

nicolass

Re : Un SPF pour autoriser smtp.free.fr à envoyer des mails
« Réponse #3 le: 19 janvier 2013 15:28:22 »
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



oromcom

Re : Un SPF pour autoriser smtp.free.fr à envoyer des mails
« Réponse #4 le: 19 janvier 2013 15:31:36 »
transféré le nom de domaine chez OVH

nicolass

Re : Un SPF pour autoriser smtp.free.fr à envoyer des mails
« Réponse #5 le: 21 janvier 2013 14:19:30 »
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 [email protected]

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 !