SPF, DKIM et DMARC pour Amazon SES.
Amazon SES est un expéditeur « par compte » : il n'existe aucune ligne SPF partagée à coller sur votre domaine racine, ni assistant d'authentification de domaine qui gérerait votre DNS à votre place. Vous vérifiez votre domaine et activez Easy DKIM — trois enregistrements CNAME propres à votre compte que SES génère — et, comme l'expéditeur d'enveloppe par défaut de SES réside sur amazonses.com, vous ajoutez éventuellement un sous-domaine MAIL FROM personnalisé pour aligner aussi le SPF sur votre propre domaine. Une fois que les CNAME DKIM sont résolus, SES signe chaque message avec d=yourdomain.com, si bien que DMARC passe grâce à l'alignement DKIM avant même que vous ne touchiez au SPF.
Pourquoi authentifier Amazon SES ?
SES vous fournit une infrastructure d'envoi brute, à haute délivrabilité, mais il ne publie délibérément pas l'authentification à votre place comme le font les assistants de Mailchimp ou de SendGrid — cette charge vous incombe, et l'ignorer explique pourquoi le courrier SES atterrit si souvent en spam. Depuis février 2024, Gmail et Yahoo exigent que tout expéditeur en masse (environ 5 000 messages par jour et plus) passe SPF, DKIM et DMARC avec alignement, et Microsoft a commencé à rejeter le courrier non conforme en 2025. Si vous envoyez via SES sans activer Easy DKIM, vos messages ne sont signés qu'avec la clé partagée amazonses.com, rien ne s'aligne sur votre domaine, DMARC échoue et votre réputation est mise en commun avec celle de tous les autres locataires SES non authentifiés. Activer Easy DKIM corrige l'essentiel du problème en une seule opération : SES signe en tant que d=yourdomain.com, DKIM s'aligne, DMARC passe et la réputation d'envoi que vous construisez profite à votre propre domaine. Un domaine MAIL FROM personnalisé ajoute ensuite l'alignement SPF par-dessus, pour les destinataires qui lui accordent du poids.
La réalité SPF pour Amazon SES
Amazon SES est un fournisseur par compte, et non un fournisseur « include » — pour la plupart des gens, il n'y a AUCUN include:amazonses.com à ajouter à votre enregistrement SPF RACINE, et vous ne devez pas en ajouter là. Par défaut, SES définit l'enveloppe MAIL FROM (l'adresse Return-Path / de rebond) sur un sous-domaine de amazonses.com. Le SPF est donc vérifié par rapport à l'enregistrement publié par amazonses.com lui-même et PASSE automatiquement — mais il passe pour amazonses.com, pas pour votre domaine, il n'est donc pas « aligné » et n'apporte rien à DMARC en soi. C'est voulu par conception et c'est très bien, car Easy DKIM assure DMARC grâce à l'alignement DKIM (SES signe avec d=yourdomain.com). Si vous voulez en plus aligner le SPF sur votre domaine — ceinture et bretelles, et utile car certains destinataires accordent du poids à l'alignement SPF — vous configurez un sous-domaine MAIL FROM personnalisé (par exemple mail.yourdomain.com) et publiez v=spf1 include:amazonses.com ~all ainsi qu'un enregistrement MX pointant vers feedback-smtp.{region}.amazonses.com. Point crucial : ces deux enregistrements vont sur le SOUS-DOMAINE MAIL FROM, jamais sur votre SPF racine. Votre SPF racine reste intact, SES n'y ajoute aucune recherche DNS, et include:amazonses.com n'apparaît que sur ce sous-domaine dédié.
Deux façons de le configurer
Easy DKIM — 3 CNAME (recommandé)
- SES génère une paire de clés RSA de 2048 bits et vous publiez trois tokens CNAME qui délèguent la clé à SES
- SES détient et fait tourner la clé privée — rien à générer, stocker, sauvegarder ni faire tourner de votre côté
- Publier les trois CNAME vérifie l'identité du domaine et active la signature DKIM en une seule étape
- Fonctionne d'emblée avec l'alignement d=yourdomain.com, si bien que DMARC passe grâce à DKIM sans modification du SPF
BYODKIM — 1 TXT (apportez votre propre clé)
- Vous générez vous-même la clé RSA (1024–2048 bits, PKCS#1 ou PKCS#8, base64/PEM) et publiez un unique enregistrement TXT selector._domainkey avec la clé publique
- Utile lorsque la politique exige que vous conserviez la garde de la clé, ou que vous souhaitez réutiliser une même clé sur plusieurs fournisseurs/régions
- Vous êtes responsable du stockage et de la rotation de la clé — SES ne voit jamais la clé privée
- Un seul enregistrement DNS au lieu de trois, mais aucune rotation automatique des clés
Étape par étape
- 1
Créer (ou ouvrir) l'identité de domaine
Ouvrez la console SES sur console.aws.amazon.com/ses et, sous Configuration, choisissez Identities → Create identity → Domain. Saisissez yourdomain.com. Si le domaine existe déjà, ouvrez-le et utilisez plutôt l'onglet Authentication.
- 2
Conserver Easy DKIM en RSA_2048
Dans les paramètres DKIM avancés, laissez Identity type = Easy DKIM et DKIM signing key length = RSA_2048_BIT (la valeur par défaut et le choix le plus robuste ; RSA_1024_BIT n'est qu'un réglage hérité plus faible). Assurez-vous que DKIM signatures = Enabled. Ne choisissez BYODKIM que si vous devez fournir votre propre clé.
- 3
(Facultatif) Définir un domaine MAIL FROM personnalisé
Sur la page de l'identité, ouvrez le panneau Custom MAIL FROM domain → Edit → cochez « Use a custom MAIL FROM domain » et saisissez un sous-domaine dédié comme mail.yourdomain.com (utilisé pour rien d'autre). Réglez Behavior on MX failure sur « Use default MAIL FROM domain » pendant que le DNS se propage.
- 4
Ajouter les trois enregistrements CNAME DKIM
SES affiche trois enregistrements de la forme token1._domainkey → token1.dkim.amazonses.com (token2, token3 de même). Ajoutez chacun en tant que CNAME exactement tel qu'affiché. Les publier vérifie à la fois le domaine et active DKIM — il n'y a aucun TXT à coller pour Easy DKIM.
- 5
Ajouter le MX et le SPF du MAIL FROM (uniquement si vous avez activé le MAIL FROM personnalisé)
Sur le sous-domaine MAIL FROM, ajoutez un enregistrement MX, priorité 10, valeur feedback-smtp.{region}.amazonses.com (spécifique à la région, par ex. us-east-1), et un enregistrement TXT v=spf1 include:amazonses.com ~all. Les deux résident sur mail.yourdomain.com, pas sur votre domaine racine.
- 6
Publier ou conserver un seul enregistrement DMARC
Ajoutez un enregistrement TXT à _dmarc.yourdomain.com commençant par v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. Conservez exactement un seul enregistrement _dmarc pour l'ensemble du domaine — n'en ajoutez pas un second pour SES.
- 7
Désactiver le proxy Cloudflare sur les CNAME
Si votre DNS est sur Cloudflare, réglez chaque CNAME DKIM sur « DNS only » (nuage gris). Un CNAME proxifié en nuage orange ne se résoudra pas vers *.dkim.amazonses.com et la vérification DKIM restera bloquée en pending.
- 8
Attendre que SES détecte les enregistrements
De retour dans la console, le statut DKIM passe à Verified/Successful et, si vous en avez défini un, l'état du MAIL FROM personnalisé passe à Success. La détection prend généralement quelques minutes, mais SES tolère jusqu'à 72 heures ; SES vous envoie un e-mail à chaque étape terminée.
- 9
Demander l'accès en production (sortir du bac à sable)
Les nouveaux comptes démarrent dans le bac à sable SES — vous ne pouvez envoyer qu'à des adresses vérifiées, avec un plafond de 200 messages/jour et 1/seconde. Dans Account dashboard, choisissez Request production access, sinon votre vrai courrier ne partira jamais, aussi parfait que soit votre DNS.
- 10
Envoyer un test et lire les en-têtes
Envoyez un vrai message depuis une adresse sur le domaine et ouvrez-le dans Gmail → Afficher l'original. Confirmez DKIM: PASS avec d=yourdomain.com, SPF: PASS et DMARC: PASS.
Enregistrements à ajouter
Amazon SES génère les valeurs exactes dans son assistant de configuration — celles-ci illustrent la forme de ce que vous ajouterez chez votre hébergeur DNS.
| Type | Hôte | Valeur |
|---|---|---|
| CNAME | token1._domainkey | token1.dkim.amazonses.comClé Easy DKIM 1 — le token est unique à votre compte/région et SES fait tourner la clé derrière lui |
| CNAME | token2._domainkey | token2.dkim.amazonses.comClé Easy DKIM 2 (token par compte) |
| CNAME | token3._domainkey | token3.dkim.amazonses.comClé Easy DKIM 3 (token par compte) |
| MX | feedback-smtp.us-east-1.amazonses.comMAIL FROM personnalisé uniquement — priorité 10, hôte spécifique à la région ; exactement un seul MX sur ce sous-domaine | |
| TXT | v=spf1 include:amazonses.com ~allMAIL FROM personnalisé uniquement — va sur le sous-domaine MAIL FROM, PAS sur votre SPF racine | |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comVotre politique DMARC — une par domaine, commencez à p=none |
Conservez exactement un seul enregistrement SPF (v=spf1) TXT sur votre domaine racine — fusionnez-y tous vos expéditeurs. Avoir deux enregistrements SPF constitue en soi une erreur.
Le budget de 10 requêtes DNS
SPF est plafonné à une limite stricte de 10 requêtes DNS — dépassez-la et il renvoie une permerror et cesse de valider partout. Voici ce que coûte la configuration de Amazon SES sur ce budget.
La configuration recommandée de Amazon SES ajoute 0 requête — les 10 restent disponibles pour les expéditeurs qui, eux, ont besoin d'un include:.
DKIM
DKIM est l'enregistrement porteur pour SES, et Easy DKIM le rend automatique. Lorsque vous l'activez, SES génère une paire de clés RSA de 2048 bits (RSA_2048 est le choix par défaut de la console ; le 1024 bits n'est qu'une option héritée plus faible) et vous fournit trois tokens. Vous les publiez sous forme de CNAME — token1._domainkey.yourdomain.com → token1.dkim.amazonses.com, et de même pour token2 et token3. Notez que la longueur de la clé ne change pas ce que vous stockez : Easy DKIM publie toujours trois courts CNAME, que vous choisissiez 1024 ou 2048, car la clé publique réelle réside du côté SES du CNAME, et non dans votre zone. Comme il s'agit de CNAME délégués à SES plutôt que d'enregistrements TXT que vous collez, SES détient la clé privée et peut faire tourner les clés publiées derrière ces sélecteurs sans que vous n'ayez plus jamais à modifier le DNS. Chaque message est alors signé avec d=yourdomain.com, ce qui est précisément ce qui s'aligne pour DMARC. Dans la console SES actuelle, cette même publication des CNAME est aussi ce qui vérifie l'identité du domaine (vérification basée sur DKIM), il n'y a donc généralement pas de token TXT _amazonses distinct à ajouter. Deux réserves : sur Cloudflare, les CNAME doivent être en mode DNS-only (nuage gris), et les identités SES sont par région AWS — envoyer depuis une seconde région génère ses propres trois tokens que vous devez également publier. Si vous ne pouvez pas utiliser de CNAME, BYODKIM est l'alternative : vous générez la clé et publiez un unique enregistrement TXT selector._domainkey avec la clé publique (et là, la clé de 2048 bits produit effectivement une valeur TXT plus longue que certains hébergeurs DNS scindent en plusieurs chaînes), mais vous êtes alors responsable de la rotation.
DMARC
DMARC est un enregistrement de politique distinct sur votre domaine racine, et non quelque chose que SES publie pour vous. Ajoutez un enregistrement TXT à _dmarc.yourdomain.com commençant par v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com — p=none est en mode surveillance seule, il n'affectera donc pas la délivrance pendant que vous confirmez que le courrier SES passe avec alignement. La nuance propre à SES : comme l'enveloppe MAIL FROM par défaut de SES est un sous-domaine de amazonses.com, le SPF passe mais n'est pas aligné sur votre domaine, si bien que sur une configuration SES par défaut, DMARC passe entièrement grâce à l'alignement DKIM. Cela signifie que vous devez avoir Easy DKIM (ou BYODKIM) activé et vérifié avant de durcir la politique — avec DKIM désactivé, une configuration SES en MAIL FROM par défaut échoue purement et simplement à DMARC. Une fois que les rapports agrégés (rua) confirment que SES est une source cohérente et alignée sur une semaine ou deux, passez de p=none à p=quarantine, puis finalement à p=reject. Si vous configurez aussi un domaine MAIL FROM personnalisé, vous obtiendrez l'alignement SPF par-dessus, ce qui vous donne deux façons indépendantes de passer. Conservez exactement un seul enregistrement _dmarc pour l'ensemble du domaine, quel que soit le nombre d'expéditeurs que vous utilisez — n'en ajoutez jamais un second pour SES.
Vérifiez que tout fonctionne réellement
Ne vous fiez pas aux seuls badges de la console — confirmez sur un vrai message. Dans SES, le statut DKIM de l'identité doit indiquer Verified/Successful et, si vous en avez configuré un, l'état du MAIL FROM personnalisé doit indiquer Success. Envoyez-vous ensuite un test depuis une adresse sur le domaine, ouvrez-le dans Gmail et choisissez ⋮ → Afficher l'original : vous voulez voir DKIM: PASS affichant d=yourdomain.com (et non amazonses.com), ainsi que DMARC: PASS. Le SPF affichera PASS pour votre sous-domaine MAIL FROM si vous en avez configuré un personnalisé, ou pour amazonses.com sinon — le cas amazonses.com est attendu et DMARC passe quand même car DKIM s'en charge, ne le considérez donc pas comme un échec. Passez votre domaine dans le contrôle de santé de domaine de Qualisend pour confirmer que les trois CNAME DKIM (et le MX/SPF du MAIL FROM, le cas échéant) se résolvent, et une fois que les rapports agrégés DMARC commencent à arriver, déposez-en un dans l'analyseur de rapports DMARC — SES devrait y apparaître comme une source alignée et passante.
Pièges courants
- Configuration DNS
SES fonctionne par région. Les identités, les trois tokens DKIM et l'hôte MX feedback-smtp sont tous limités à une seule région AWS. Si vous envoyez à la fois depuis us-east-1 et eu-west-1, chaque région émet ses propres trois CNAME DKIM et son propre MX régional — publiez les enregistrements de chaque région, sinon le courrier de la région non configurée ne s'authentifiera pas.
- Couverture
Les nouveaux comptes démarrent dans le bac à sable. Tant que vous n'avez pas fait Request production access, SES ne délivre qu'aux destinataires vérifiés, plafonné à 200 messages/jour et 1/seconde — un DNS parfait n'y changera rien si vous êtes encore en bac à sable.
- Couverture
L'alignement SPF est optionnel, pas automatique. Par défaut, l'enveloppe est un sous-domaine amazonses.com, donc le SPF passe mais ne s'aligne pas et DMARC repose entièrement sur DKIM. Voir « SPF: amazonses.com » est normal — ne configurez un MAIL FROM personnalisé que si vous voulez expressément aligner le SPF aussi.
- Casse l'authentification
N'ajoutez jamais include:amazonses.com à votre SPF RACINE. Il n'a sa place que sur le sous-domaine MAIL FROM personnalisé. Sur la racine, il ne sert à rien et consomme inutilement l'une de vos 10 recherches SPF.
- Couverture
Exactement un seul MX sur le sous-domaine MAIL FROM. SES fait échouer la configuration du MAIL FROM personnalisé si ce sous-domaine possède plus d'un enregistrement MX ; utilisez donc un sous-domaine dédié (mail. ou bounce.) qui ne sert ni à envoyer ni à recevoir quoi que ce soit d'autre.
- Configuration DNS
Le proxy Cloudflare casse DKIM. Réglez les trois CNAME sur « DNS only » (nuage gris) ; un CNAME proxifié en nuage orange ne se résoudra pas vers *.dkim.amazonses.com et l'identité restera en pending.
- Casse l'authentification
Doublement d'hôte chez le registrar et points finaux. Saisissez uniquement le label (token1._domainkey, mail), et non le FQDN complet, si votre panneau ajoute automatiquement le domaine ; et là où un hôte attend un FQDN pour la valeur du MX/CNAME, utilisez un point final afin que feedback-smtp.us-east-1.amazonses.com ne soit pas déformé en ...amazonses.com.yourdomain.com.
- Couverture
« Behavior on MX failure = Reject message » est risqué au début. Pendant que le DNS se propage (ou si le MX venait à ne pas se résoudre), Reject fera rebondir tout votre courrier — laissez-le sur « Use default MAIL FROM domain » jusqu'à ce que l'état affiche Success.
Construisez votre enregistrement SPF
Amazon SES n'a pas besoin d'un include: SPF sur votre domaine racine — utilisez le générateur pour assembler un enregistrement propre et unique pour vos autres expéditeurs, en le limitant à une seule ligne.
Sending sources
Search for each platform you send email through and tick it.
Search for your email platform above, or .
This domain's own servers
Authorize the domain itself, if it sends mail directly (not through a platform above).
Other senders & IPs
Anything not in the list — another provider's SPF host, or specific IP addresses.
We add the include: prefix — enter the hostname your provider documents.
Policy for everyone else
What receivers should do with mail from any server not listed above (the all mechanism).
No senders yet, so every message would hit the ~all policy. Add the platforms you send through in step 1.
- Publish it as a TXT record at your root domain — host @ (the bare domain), value the full string above.
- Keep only one SPF record per domain. Merge every sending source into this single line — a second TXT record starting v=spf1 makes both invalid.
- Stay at or under 10 DNS lookups. Each include:, a and mx counts, and an include can trigger more lookups inside itself — ip4: and ip6: are free.
Authentication published? The next step is sending to a clean, verified list.
Verify a listSPF Amazon SES — FAQ
Lectures complémentaires
Une fois publié, confirmez que tout se résout correctement avec la vérification de l'état du domaine, puis identifiez qui envoie en votre nom grâce à l'analyseur de rapports DMARC. Parcourez toutes les sources d'envoi dans le générateur. L'authentification ne représente toutefois que la moitié de la délivrabilité — une IP ou un domaine d'envoi inscrit sur une liste vous fait toujours atterrir dans les spams, quelle que soit la propreté de votre SPF ; il vaut donc la peine de surveiller les listes noires avec la surveillance des listes noires.
Authentifié — maintenant, gardez votre liste propre
Réussir SPF, DKIM et DMARC vous mène jusqu'à la boîte de réception ; une liste propre vous y maintient. Vérifiez la vôtre — commencez gratuitement avec 100 crédits, sans carte bancaire.