SPF, DKIM et DMARC sont trois enregistrements DNS qui décident de deux choses : si les e-mails que vous envoyez arrivent en boîte de réception, et si quelqu’un d’autre peut envoyer des e-mails qui semblent venir de vous. Gmail, Yahoo et Outlook.com exigent désormais les trois de tout expéditeur en masse, et pour tous les autres, les messages qui en sont dépourvus ont plus de chances de finir en spam.
Ces enregistrements sont courts, mais il est facile de s’y tromper subtilement, et ils cessent de fonctionner sans prévenir dès qu’un nouvel outil commence à envoyer pour vous. Ce guide explique le rôle de chacun, comment les configurer dans le bon ordre et comment les maintenir en état de marche.
Comment ils s’articulent
Chaque e-mail possède deux adresses d’expéditeur : l’expéditeur d’enveloppe, utilisé par les serveurs de messagerie pour renvoyer les rebonds, et l’adresse From que voit le destinataire. La fraude exploite l’écart entre les deux : n’importe qui peut écrire n’importe quelle adresse From. Les trois enregistrements comblent cet écart.
SPF (Sender Policy Framework) liste les serveurs autorisés à envoyer des e-mails pour votre domaine.
DKIM (DomainKeys Identified Mail) ajoute à chaque message une signature cryptographique, que les destinataires vérifient grâce à une clé publique publiée dans votre DNS.
DMARC (Domain-based Message Authentication, Reporting and Conformance) les rattache à l’adresse From visible et indique aux destinataires quoi faire des e-mails qui échouent.
SPF : qui a le droit d’envoyer
Un enregistrement SPF est un enregistrement TXT sur votre domaine. Il liste les services et serveurs qui envoient des e-mails pour vous et se termine par ce qu’il faut faire de tout le reste :
example.com. TXT « v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.25 ~all »
include: ajoute l’enregistrement SPF d’un autre domaine, la façon habituelle d’autoriser un service d’envoi.
ip4: et ip6: autorisent des adresses précises, comme celle de votre propre serveur de messagerie.
~all (soft fail) ou -all (fail) indique ce qu’il advient de tous ceux qui ne sont pas listés. N’utilisez jamais +all, qui autorise tout Internet.
Deux règles piègent la plupart des domaines :
Un seul enregistrement. Un domaine doit avoir exactement un enregistrement SPF. S’il en a deux, les destinataires renvoient une erreur permanente et SPF échoue pour chaque message. Quand un nouveau service vous demande d’« ajouter cet enregistrement SPF », ajoutez plutôt son include à l’enregistrement existant.
10 requêtes DNS au maximum. Chaque include, a, mx et redirect coûte une requête, et les includes imbriqués comptent aussi. Au-delà de 10, SPF échoue. Un enregistrement avec Google Workspace, un outil d’e-mailing, un CRM et un helpdesk peut dépasser la limite sans que personne ne s’en aperçoive.
SPF a un point faible : il vérifie l’expéditeur d’enveloppe, pas l’adresse From que voit le destinataire, et il casse quand un e-mail est transféré. C’est pourquoi il ne suffit pas à lui seul.
DKIM : une signature sur chaque message
Avec DKIM, votre service d’envoi signe chaque message avec une clé privée. La clé publique est publiée dans le DNS, sous un nom appelé sélecteur :
google._domainkey.example.com. TXT « v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC… »
Le destinataire lit le sélecteur dans l’en-tête DKIM-Signature du message, récupère la clé et vérifie que le message n’a pas été modifié en route. Une signature DKIM résiste au transfert, ce qui en fait le plus fiable des deux.
Chaque service qui envoie pour vous a besoin de sa propre configuration DKIM, généralement dans ses paramètres d’administration, à la rubrique « authentification » ou « domaine vérifié ». Utilisez des clés de 2048 bits quand le service le propose : les clés de 1024 bits fonctionnent encore mais constituent le minimum, et les clés plus courtes sont rejetées. Quand un service fait tourner ses clés, le nouveau sélecteur doit figurer dans votre DNS avant d’être utilisé, sinon les signatures échouent.
DMARC : le lien avec l’adresse From
DMARC est un enregistrement TXT placé sur _dmarc de votre domaine :
_dmarc.example.com. TXT « v=DMARC1; p=none; rua=mailto:dmarc@example.com »
Il fait deux choses que SPF et DKIM ne peuvent pas faire seuls.
D’abord, il exige l’alignement. Un message ne passe DMARC que si SPF ou DKIM réussit pour le même domaine que l’adresse From visible. Une newsletter envoyée via un service qui signe avec son propre domaine passe DKIM, mais pas pour votre domaine : elle échoue donc à DMARC. C’est pourquoi chaque service doit signer avec votre domaine.
Ensuite, il définit une politique pour les e-mails qui échouent :
p=none : les distribuer normalement. Rien ne change, mais les destinataires peuvent vous envoyer des rapports.
p=quarantine : les placer en spam.
p=reject : les refuser.
La balise rua demande aux destinataires d’envoyer des rapports agrégés quotidiens à l’adresse de votre choix. Ils indiquent quels serveurs ont envoyé des e-mails au nom de votre domaine et s’ils ont réussi les contrôles : c’est ainsi que vous repérez les expéditeurs oubliés.
Les configurer dans le bon ordre
Passer directement à p=reject est le moyen classique d’empêcher vos propres factures ou réinitialisations de mot de passe d’arriver. Procédez par étapes :
Recensez tout ce qui envoie au nom de votre domaine. Votre fournisseur de messagerie, outil d’e-mailing, CRM, helpdesk, système de réservation, plateforme e-commerce, formulaire de contact du site et tout serveur qui envoie des notifications.
Configurez DKIM pour chacun d’eux avec votre propre domaine, en suivant les instructions de chaque service.
Construisez un seul enregistrement SPF avec les services qui en ont besoin, sous les 10 requêtes, terminé par ~all.
Publiez DMARC avec p=none et une adresse rua, et laissez tourner deux à quatre semaines.
Corrigez chaque expéditeur légitime qui échoue, le plus souvent un service qui signe encore avec son propre domaine.
Passez à p=quarantine, éventuellement avec pct=25 pour commencer par un quart des e-mails en échec, puis à p=reject dès que plus aucun e-mail légitime n’échoue.
Les domaines qui n’envoient jamais d’e-mails méritent aussi d’être protégés, car ils sont faciles à usurper. Donnez-leur un enregistrement qui le déclare :
example.org. TXT « v=spf1 -all »
_dmarc.example.org. TXT « v=DMARC1; p=reject »
Les erreurs qui cassent vos e-mails en silence
Un deuxième enregistrement SPF ajouté pour un nouveau service, au lieu d’un include dans le premier.
Un enregistrement SPF qui a dépassé les 10 requêtes à l’ajout d’un outil de plus.
Une newsletter ou un CRM qui envoie avec son propre domaine DKIM, si bien que DMARC échoue malgré une signature valide.
Une clé DKIM renouvelée chez le fournisseur mais jamais publiée dans le DNS.
Un enregistrement DMARC contenant une faute de frappe, comme p=rejected, que les destinataires ignorent.
Le passage à p=reject avant d’avoir vérifié que chaque expéditeur passe les contrôles.
Un enregistrement MX modifié ou un serveur de messagerie qui se retrouve sur une liste de blocage, ce qui nuit à la délivrabilité quels que soient les enregistrements.
Aucune de ces erreurs ne produit de message visible. Les e-mails commencent simplement à atterrir en spam, et vous l’apprenez des semaines plus tard, quand un client vous dit n’avoir jamais reçu la facture.
Vérifiez vos enregistrements
Vous pouvez vérifier votre domaine dès maintenant avec notre vérificateur SPF, DKIM et DMARC gratuit. Il lit les enregistrements dans le DNS, compte les requêtes SPF, cherche les clés DKIM sous les sélecteurs courants et explique ce qu’il faut corriger, avec l’enregistrement à coller.
Des enregistrements corrects aujourd’hui cassent dès que quelqu’un ajoute un service le mois prochain. La surveillance de l’authentification des e-mails d’Uptimecheck vérifie SPF, DKIM et DMARC sur vos moniteurs de domaine deux fois par jour, explique chaque problème en termes simples, vous donne l’enregistrement DNS qui le corrige et ne vous alerte que lorsqu’un nouveau problème apparaît. Elle vérifie aussi si les serveurs de messagerie que vous gérez vous-même figurent sur des listes de blocage, pour qu’un listage ne passe pas inaperçu. Ajoutez-la à la surveillance de domaine qui vous prévient déjà avant l’expiration du domaine lui-même.
Checklist
Recensez chaque service qui envoie des e-mails au nom de votre domaine.
Configurez DKIM avec votre propre domaine dans chacun d’eux, en 2048 bits si possible.
Gardez un seul enregistrement SPF, sous les 10 requêtes, terminé par ~all ou -all.
Publiez DMARC en p=none avec une adresse de rapport.
Corrigez chaque expéditeur légitime qui échoue à l’alignement.
Passez à p=quarantine, puis à p=reject.
Protégez les domaines qui n’envoient pas d’e-mails avec v=spf1 -all et p=reject.
Vérifiez les enregistrements régulièrement, et chaque fois qu’un nouvel outil commence à envoyer pour vous.