Introduction
J'ai donné ce cours en avril 2023, sous forme de slides reveal.js sur mon ancien blog. Je le reprends ici en article, mis à jour, et les slides d'origine restent disponibles en fin d'article.
Au programme : comprendre pourquoi l'email est un canal fragile, puis mettre en place SPF, DKIM, DMARC et BIMI, et enfin tester tout ça.
Pourquoi l'email n'est pas sûr
Le protocole SMTP date d'une époque où l'on se faisait confiance :
- rien n'authentifie l'expéditeur : n'importe qui peut envoyer un email avec
From: [email protected]; - le chiffrement du transport (STARTTLS) est opportuniste et ne protège pas le message de bout en bout ;
- il est donc facile d'usurper une identité pour du phishing ou du spam.
Pour se défendre, les serveurs de destination calculent une réputation : sur l'adresse IP d'envoi, le domaine et le contenu du message. Ils peuvent aussi demander à l'expéditeur de réessayer plus tard (greylisting).
Conséquence directe pour vous : sans configuration, vos emails peuvent mettre plusieurs minutes à arriver, finir en spam, ou ne pas arriver du tout.
Depuis février 2024, Gmail et Yahoo exigent au minimum SPF ou DKIM pour tous les expéditeurs, et SPF, DKIM et DMARC pour ceux qui envoient en volume (plus de 5 000 emails par jour vers Gmail). Ce n'est plus optionnel.
SPF : Sender Policy Framework
SPF (RFC 7208) permet de déclarer, dans le DNS, quelles adresses IP ont le droit d'envoyer des emails pour votre domaine. Le serveur de destination compare l'IP de l'expéditeur à cette liste.

L'enregistrement SPF est un simple enregistrement TXT (le type DNS SPF est obsolète) :
ilogus.dev. IN TXT "v=spf1 include:_spf.google.com ~all"
v=spf1: la version ;include:: inclut la liste d'IPs d'un autre domaine (votre fournisseur d'email) ;ip4:/ip6:/a/mx: autorisent des IPs précises, ou celles des enregistrements A et MX ;~all: tout le reste est en softfail (suspect).-allest un échec strict,?allneutre.
Quelques règles à respecter :
- Un seul enregistrement SPF par domaine : s'il y en a deux, SPF échoue.
- Pas plus de 10 requêtes DNS (
include,a,mx…) au total, sinon SPF échoue aussi. - Recensez tous vos services d'envoi : hébergeur mail, outil d'emailing, application, CRM…
Testez votre enregistrement avec MxToolbox SPF.
DKIM : DomainKeys Identified Mail
DKIM (RFC 6376) signe les emails avec une clé privée. La clé publique est publiée dans le DNS, et le serveur de destination l'utilise pour vérifier que le message vient bien de votre domaine et qu'il n'a pas été modifié en route.

La plupart des fournisseurs (Google Workspace, Microsoft 365, Brevo…) génèrent la clé pour vous et vous donnent l'enregistrement à créer. Si vous gérez votre propre serveur d'envoi, vous pouvez la générer avec OpenSSL :
openssl genrsa -out dkim_private.pem 2048
chmod 600 dkim_private.pem
On extrait ensuite la clé publique en base64, prête à être mise dans le DNS :
openssl rsa -in dkim_private.pem -pubout -outform der 2>/dev/null | openssl base64 -A
La clé est publiée sous un sélecteur, ce qui permet d'avoir plusieurs clés (une par service, ou pour faire une rotation). Par exemple pour le service comptabilité :
accounting._domainkey.ilogus.dev. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."
v: la version ;k: l'algorithme de la clé ;p: la clé publique en base64.
Testez avec MxToolbox DKIM en indiquant le domaine et le sélecteur.
DMARC : la politique qui relie tout
Une politique DMARC permet à l'expéditeur d'indiquer que ses emails sont protégés par SPF et/ou DKIM, et dit au destinataire quoi faire si ces vérifications échouent.
DMARC (RFC 7489) ajoute la notion d'alignement : il ne suffit pas que SPF ou DKIM passe, il faut que le domaine vérifié corresponde au domaine visible dans le From. C'est ce qui empêche vraiment l'usurpation. En prime, vous recevez des rapports sur les emails envoyés en votre nom.
L'enregistrement se place sur le sous-domaine _dmarc :
_dmarc.ilogus.dev. IN TXT "v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:[email protected]"
p: la politique en cas d'échec :none(on observe),quarantine(spam),reject(rejet) ;adkim/aspf: alignement DKIM et SPF,r(relâché, les sous-domaines sont acceptés) ous(strict) ;rua: l'adresse qui reçoit les rapports agrégés (lemailto:est obligatoire).
La bonne méthode : commencer en p=none, lire les rapports quelques semaines pour repérer les services oubliés, puis passer à quarantine et enfin reject. Cloudflare explique très bien l'enregistrement DMARC.
Vérifiez avec MxToolbox DMARC.
BIMI : votre logo dans la boîte de réception
BIMI (Brand Indicators for Message Identification) permet d'afficher le logo de votre marque à côté de vos emails dans la boîte de réception. Le principe ressemble aux certificats : le logo peut être certifié par un tiers.
Les prérequis :
- DMARC en
p=quarantineoup=reject(pasnone) ; - un logo au format SVG Tiny PS, servi en HTTPS ;
- pour Gmail et Apple Mail, un certificat VMC (Verified Mark Certificate, qui demande une marque déposée) ou, depuis 2024, un CMC (Common Mark Certificate), plus accessible. Comptez plusieurs centaines d'euros par an, et plus de 1 000 € pour un VMC.
Sans certificat, un BIMI « auto-déclaré » reste possible. Il est pris en compte par moins de clients mail, mais c'est un bon début :
default._bimi.ilogus.dev. IN TXT "v=BIMI1; l=https://ilogus.dev/bimi/logo.svg;"
Tester ses emails
Une fois tout configuré, testez chaque élément, ou tout d'un coup :
- MxToolbox Deliverability vérifie l'ensemble des enregistrements ;
- mail-tester.com analyse un vrai email envoyé à une adresse de test : authentification, mais aussi contenu HTML, liens, réputation ;
- en ligne de commande,
digsuffit pour vérifier ce qui est publié :
dig +short TXT ilogus.dev
dig +short TXT _dmarc.ilogus.dev
dig +short TXT accounting._domainkey.ilogus.dev
Les slides du cours
Voici les slides d'origine du cours (en anglais). Naviguez avec les flèches, la barre d'espace, ou ouvrez-les en plein écran.
Conclusion
SPF dit qui peut envoyer, DKIM prouve que le message est authentique, DMARC dit quoi faire en cas d'échec et vous en informe, et BIMI met votre logo en avant une fois que tout le reste est solide. Quelques enregistrements DNS bien posés, et vos emails arrivent enfin là où ils doivent.