3.6 / 5 ( 25 votes )

Ah la messagerie, l'envoi et la réception de mails est un outil formidable. Cependant vous ne trouvez pas que c'est un peu la foire ? On reçoit de la publicité, du spam et des mails indésirables.

Pour lutter contre ce type de pratique les fournisseurs d'accès ont mis en place des vérifications efficaces afin que les mails tombent dans le dossier "spam" ou "courriers indésirables".

Malheureusement certains en sont victimes et, si vous ne mettez pas en place certains paramètres de sécurité vous ne pourrez pas envoyer vos mails vers la boîte de réception de vos interlocuteurs.

Le but de ce tutoriel est de vous expliquer pas à pas comment mettre en place une stratégie efficace pour éviter que vos mails tombent de le dossier "spam".

C'est quoi le SPF ?

Sender Policy Framework (SPF) est une norme de vérification du nom de domaine de l'expéditeur d'un mail. Il permet de savoir réellement si le nom de domaine, le serveur, l'utilisateur est autorisé à envoyer un mail. Le but étant d'éviter une usurpation d'identité.

Le protocole est décrit en long et en large sur la page Wikipedia.

En ce qui nous concerne nous allons expliquer les syntaxes et sa mise en place sur un nom de domaine.

Mise en place du protocole SPF

Explication des syntaxes

Au premier abord le SPF n'est pas facile à comprendre. Il faut renseigner un champ TXT sur les serveurs DNS de votre domaine. La valeur du champs TXT va contenir différentes syntaxes que nous allons vous expliquer.

Il existe des générateurs de syntaxe SPF qui sont excellent. Personnellement j’apprécie particulièrement celui-ci : https://www.dynu.com/fr-FR/NetworkTools/SPFGenerator

Le protocole SPF va fonctionner avec certaines valeurs :

Les valeurs

Les valeurs sont les suivants :

”+” Pass (on passe la vérification)

”-” Fail (On renvoi un échec et on s'arrête)

“~” SoftFail (On renvoi un échec mais on accepte quand même)

”?” Neutral (Neutre)

Voici un exemple de syntaxe « v=spf1 +a +mx -all »

Nous allons donc pouvoir affecter ces valeurs + / - ? / ~ à d'autres valeurs (appelés arguments) comme A ou MX ou IP ou encore Include.

Description de l'argument ALL

Cet argument est ajouté en fin de syntaxe il signifie "que fait t'on avec toutes les valeurs qui ne sont pas renseignées ?"

On peut donc attribuer les valeurs suivantes

-all ==> On renvoi un échec et donc le mail sera probablement non réceptionné (et même pas dans les spams)

+all ==> On passe le mail arrivera sans doute dans la boîte de réception

~all ==> On tolère mais ce n'est pas un comportement normal donc on le met en SPAM

?all ==> On laisse faire le mail arrivera sans doute dans la boîte de réception

A savoir En général je met le ?all à la fin des syntaxes.

Description de l’argument IP4

Cet argument permet de définir ce qui se passe si le mail est envoyé depuis telle ou telle ip publique.

Imaginons que mon serveur de messagerie ou bien l'outil qui envoie les mails ai l'adresse ip publique suivante : 8.8.8.8

Pour trouver votre IP publique vous pouvez aller sur le site http://www.mon-ip.com/

Je peux donc attribuer les valeurs suivante :

ip4:ip-publique ou encore ip4:ip-publique/masque CIDR

Soit avec notre exemple : ip4:8.8.8.8 , ainsi j'autorise l'adresse IP 8.8.8.8 à envoyé des mails pour mon domaine. Elle montre patte blanche sur le réseau.

Voici un exemple de syntaxe « v=spf1 ip4:8.8.8.8 ip4:9.9.9.9 ?all »

Il est possible de mettre plusieurs IP publiques.

Description de l'argument A

L'argument A permet d'autoriser l'hôte qui envoie. Par exemple si derrière votre IP publique vous avez un nom dns vous pouvez le définir.

Voici un exemple de syntaxe « v=spf1 a:smtp.tutos-informatique.com ?all »

Description de l'argument MX

L'argument MX permet d'autoriser des serveurs MX. Par exemple si votre domaine fait pointer le champs MX vers mail.mondomaine.com.

Voici un exemple de syntaxe « v=spf1 mx:mondomaine.com ?all »

Description de l'argument INCLUDE

L'argument Include permet de définir quels sont les serveurs qui sont autorisés à envoyer des mails. C'est généralement cet ajout que l'on fait le plus souvent.

Par exemple si vous souscrivez à des services d'envoi de mails en masse comme Mailjet, alors vous devez déclarer leurs serveurs (exemple spf.mailjet.com)

Voici un exemple de syntaxe « v=spf1 include:spf.mailjet.com ?all »

Vous avez compris la syntaxe est importante et permet de combiner différents arguments. Il faut donc connaître les IP , les serveurs qui envoient vos mails afin de rendre l'envoi beaucoup plus sécurisé.

Ajout des entrées DNS

Vous devez entrer vos enregistrements DNS. Il est préférable de réaliser une entrée TXT et non SPF directement.

Voici un exemple d'ajout :

Champ TXT – Nom : @ – Valeur : v=spf1 include:spf.mailjet.com include:_mailcust.gandi.net ?all

Le plus difficile est de comprendre qui envoie le mail. Votre serveur ? Un relais smtp ? un autre service. Il faut identifier précisément l’émetteur afin de paramétrer correctement votre champ TXT.

Vérification de la bonne application du champs SPF

Pour vérifier que votre syntaxe est correcte je vous recommande de vous rendre sur le site MXTOOLBOX puis de saisir votre nom de domaine et de choisir le protocole SPF.

Une fois que vos DNS sont à jour je vous recommander de faire un vérifier votre score d'indésirabilité avec Mail-Tester

Vous devez simplement envoyer un mail à l'adresse qui s'affiche (elle change à chaque fois).

Une fois envoyé, vous vérifiez votre score. Vous avez également une explication très détaillée qui peut vous permettre d'améliorer votre score.

Il est recommandé d'avoir un score > à 7.

Le SPF permet donc de prouver que le serveur qui envoi le mail est autorisé par le propriétaire du domaine.

Le DKIM / Domainkey c'est quoi ?

Présentation

Ce sont des protocoles plus complexes à mettre en place. Ils nécessitent généralement l'installation de modules spécifiques et des entrées DNS. Contrairement au SPF qui nécessite que des entrées DNS.

C'est de plus en plus nécessaire tant les fournisseurs améliorent leur sécurité.

Certains fournisseurs de messagerie le mettent déjà en place comme OFFICE 365.

Au niveau du fonctionnement il s'agit de crypter le mail à l'aide d'une clé Privé, les serveurs de messageries interrogent alors le DNS du domaine pour vérifier la clé publique.

Le DKIM a pour but de prouver l'authenticité du mail !

Généralement les outils / modules vous donnent les entrées DNS à saisir dans un champ TXT.

Mise en place du DKIM

L'installation dépend de votre serveur de messagerie.

Serveurs linux et DKIM

Par exemple pour un serveur POSTFIX vous devez installer et configurer OPENDKIM

Serveurs Exchange

Il existe un module gratuit OpenSource et non développer par Microsoft pour les serveurs Exchange il se nomme DKIM SIGNER pour Exchange

Vous trouverez la documentation pour l'installer directement sur le GITHUB de l'éditeur , en cas de besoin n'hésitez pas à me demander dans le fil des commentaires.

Le module permet de signer en amont les mails.

Pour vous accompagner dans la mise en place du DKIM sur serveur Exchange, vous trouverez un tutoriel complet sur le DKIM & EXCHANGE

Solutions tierces

Des solutions existent, comme MailJet qui permet de servir de relais SMTP. Une fois que votre domaine est reconnu et bien identifié vous pouvez envoyer 200 mails par jour sur l'offre gratuite.

Le DMARC

Le DMARC va de paire avec le DKIM et le SPF.

Une politique DMARC autorise l'expéditeur à indiquer que ses e-mails sont protégés par SPF et/ou DKIM et indique au destinataire ce qu'il doit faire si ces méthodes d'authentification échouent (ex. : rejeter tous les emails sans DKIM et prévenir une adresse email). (source WikiPedia)

Le DMARC est très simple à mettre en place. Il faut faire une entrée DNS au format TXT.

Voici un exemple :

v=DMARC1; p=none

Certains opérateurs vérifient le DMARC et accorde beaucoup plus de crédit à ceux qui ont fait la démarche de le déclarer.

Construire sa popularité

Les algorithmes ont des critères pour juger la fiabilité de votre domaine.

Voici quelques conseils pour avoir une bonne réputation :

Ne pas faire des envois de mails en masse avec très peu de contenu !

Il faut que vos mails soient ouverts, lue par vos interlocuteurs il faut leur donner envie de les consulter !

Eviter les mots comme VIAGRA , GRATUIT, bref des mots qui sont très vite détecter par les anti-spams.

Si jamais vous avez une mauvaise réputation rien n'est perdu ! Mettez en place les protocoles ci-dessus et n'hésitez pas à dire à vos clients de sortir le mail de leur dossier spam pour le mettre dans la boîte de réception.

Il est également possible de dire que le mail reçu n'est pas un spam. Vous enverrez alors des signaux positifs aux algos.