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/sa [...] id/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 !