Amazon SES est le service d'e-mail sortant d'AWS : bon marché et fiable pour les e-mails qu'envoie une application (confirmations, notifications, factures). Mais que l'e-mail parte n'est pas le plus difficile ; le difficile est qu'il arrive dans la boîte de réception et non dans le spam. Pour cela, Gmail, Outlook et compagnie exigent trois choses qui se prouvent dans le DNS de votre domaine : DKIM (une signature cryptographique), SPF (quels serveurs peuvent envoyer en votre nom) et DMARC (que faire de ce qui ne respecte pas les deux premiers).
Si votre domaine est dans Route 53, dans le même compte AWS, SES peut créer une bonne partie des enregistrements pour vous. Il vaut quand même la peine de savoir ce qu'il met et pourquoi.
Avant de commencer : ce que signifie chaque chose
- SES
- Simple Email Service, le service d'Amazon pour que vos applications envoient des e-mails (confirmations, notifications, factures).
- Route 53
- Le service DNS d'Amazon, c'est-à-dire l'endroit où l'on gère vers quels serveurs pointe votre domaine.
- DNS et enregistrements
- L'« annuaire téléphonique » d'Internet : il traduit votre domaine en adresses et conserve des textes de configuration. Chaque entrée est un enregistrement, avec un nom, un type (TXT, CNAME, MX...) et une valeur.
- Vérifier le domaine
- Prouver à Amazon que le domaine est à vous, en ajoutant dans son DNS des enregistrements que seul le propriétaire peut mettre.
- DKIM
- Une signature numérique que SES ajoute à chaque e-mail et que le destinataire vérifie avec une clé publiée dans votre DNS. Elle prouve que l'e-mail n'a pas été altéré et qu'il vient de votre domaine.
- SPF
- Un enregistrement texte dans votre DNS qui indique quels serveurs ont le droit d'envoyer des e-mails avec votre domaine.
- DMARC
- Un autre enregistrement texte qui indique aux destinataires que faire des e-mails qui ne passent pas DKIM ou SPF (rien, quarantaine ou rejet) et où vous envoyer des rapports.
- MAIL FROM personnalisé
- Un sous-domaine à vous que SES utilise comme expéditeur technique, pour que les vérifications se fassent contre votre domaine et non contre celui d'Amazon.
- Sandbox
- Le mode test dans lequel démarre tout compte SES : il ne permet d'envoyer qu'à des adresses vérifiées. Un guide à part explique comment en sortir.
Pas à pas
Choisissez la région de SES
SES fonctionne par régions et les identités vérifiées ne sont pas partagées entre elles. Choisissez-en une proche de vos utilisateurs ou celle où vous avez déjà le reste (par exemple Europe - Irlande,
eu-west-1) et gardez-la pour toujours : l'application devra envoyer vers cette région.Créez l'identité de domaine
Dans la console SES, Identités, Créer une identité, type Domaine. Saisissez le domaine sans « www » (
midominio.com). Dans la section DKIM, laissez Easy DKIM avec la longueur de clé que SES propose. Si le domaine est dans Route 53 dans ce compte, vous verrez la case pour publier les enregistrements DNS automatiquement : cochez-la. Créez l'identité.SES génère trois enregistrements CNAME du type
xxxx._domainkey.midominio.com. Avec la case cochée, ils sont déjà dans Route 53 ; sinon, copiez-les et créez-les à la main dans la zone hébergée. La vérification prend de quelques minutes à quelques heures ; l'identité passera toute seule à « Vérifiée ».Configurez un domaine MAIL FROM personnalisé (pour le SPF)
Par défaut, les e-mails de SES partent avec un expéditeur technique en
amazonses.com, et c'est cela que regarde le SPF. Pour que la vérification se fasse contre votre domaine et que DMARC puisse « aligner », configurez un domaine MAIL FROM personnalisé : dans l'identité, onglet Domaine MAIL FROM personnalisé, Modifier, et indiquez un sous-domaine que vous n'utilisez pour rien d'autre, par exemplecorreo.midominio.com. Choisissez que SES utilise la valeur par défaut d'amazonses.com si le MX échoue, pour ne pas cesser d'envoyer à cause d'une erreur DNS.SES vous demande deux enregistrements sur ce sous-domaine (là encore, avec Route 53 il peut les mettre tout seul) :
Nom Type Valeur correo.midominio.comMX 10 feedback-smtp.eu-west-1.amazonses.com(remplacez la région par la vôtre)correo.midominio.comTXT "v=spf1 include:amazonses.com ~all"Ajoutez aussi le SPF au domaine principal
Si vous envoyez des e-mails depuis d'autres endroits (votre serveur de messagerie, un fournisseur de newsletters), votre domaine racine a déjà un enregistrement TXT
v=spf1. Ajoutezinclude:amazonses.comà ce même enregistrement ; ne créez jamais un second TXT commençant par v=spf1, car deux enregistrements SPF s'invalident mutuellement. Si vous n'en avez aucun, créez-le dans Route 53 :Nombre: midominio.com Tipo: TXT Valor: "v=spf1 include:amazonses.com ~all"Si vous utilisez aussi Google Workspace ou Microsoft 365, la valeur contiendra également leur
includerespectif, séparés par des espaces.Publiez la politique DMARC
DMARC est un enregistrement TXT sur le sous-domaine
_dmarc. Commencez en mode observation (p=none) pour que personne ne rejette vos e-mails pendant que vous ajustez, et demandez des rapports à une adresse que vous lisez :Nombre: _dmarc.midominio.com Tipo: TXT Valor: "v=DMARC1; p=none; rua=mailto:dmarc@midominio.com"Dans Route 53 : Créer un enregistrement, nom
_dmarc, type TXT, valeur entre guillemets. Après quelques semaines sans surprise dans les rapports, passez àp=quarantinepuis àp=reject. Gmail et Yahoo exigent DMARC de ceux qui envoient beaucoup d'e-mails, alors ne sautez pas cette étape.Vérifiez et envoyez un test
Dans l'identité SES, tout doit apparaître en vert : identité vérifiée, DKIM correct et MAIL FROM configuré. Envoyez un e-mail de test à un compte Gmail et ouvrez « Afficher l'original » : il doit indiquer SPF: PASS, DKIM: PASS et DMARC: PASS. Si vous êtes encore dans le sandbox de SES, vous ne pourrez envoyer qu'à des adresses vérifiées ; le guide pour sortir du sandbox se trouve dans cette même section.
Ce qui peut mal tourner
DKIM reste « en attente » depuis des heures
Vérifiez que les trois CNAME sont exactement comme SES les a donnés, sans que le panneau DNS ait ajouté le domaine deux fois (xxx._domainkey.midominio.com.midominio.com est l'erreur typique en dehors de Route 53). Et assurez-vous que les serveurs NS du domaine chez le registrar sont ceux de la zone Route 53 que vous modifiez ; si le domaine est géré ailleurs, Route 53 ne sert à rien.
SPF passe mais DMARC échoue
Il manque l'alignement : le SPF a été évalué contre amazonses.com, pas contre votre domaine, parce que vous n'avez pas configuré le MAIL FROM personnalisé (étape 3). Avec DKIM aligné, cela suffit généralement pour que DMARC passe, mais configurez quand même le MAIL FROM.
L'e-mail arrive dans le spam avec tout en PASS
L'authentification est nécessaire, pas suffisante. Le contenu, la nouveauté du domaine, la quantité de rebonds et de plaintes comptent aussi. Commencez avec un faible volume, retirez les adresses qui rebondissent et offrez toujours un moyen clair de se désabonner. Et surveillez la réputation dans le tableau de bord de SES.
Mon domaine est dans un autre compte AWS
SES ne pourra pas publier les enregistrements tout seul. Copiez-les depuis l'identité et créez-les à la main dans la zone Route 53 de l'autre compte. Cela fonctionne pareil, simplement à la main.
Dans Simplio
Dans Simplio, l'écran E-mail (SES) affiche vos domaines par région et vous dit quels enregistrements manquent (DKIM, SPF, DMARC, MAIL FROM) avec la valeur exacte de chacun. Si le domaine est dans Route 53, il les met en place d'un bouton. Vous voyez aussi le quota, ce qui a été envoyé, le pourcentage de rebonds et de plaintes, et vous recevez une alerte si une identité cesse d'être vérifiée.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Savoir quels enregistrements manquent | Comparer SES et Route 53 à la main, un par un | L'écran E-mail vous dit ce qui manque (DKIM, SPF, DMARC, MAIL FROM) avec la valeur exacte |
| Créer les enregistrements | Jusqu'à 7 enregistrements dans Route 53, avec des noms longs qui se copient mal : 30 minutes | Bouton « Mettre les enregistrements » si le domaine est dans Route 53 : 1 clic |
| S'il cesse d'être vérifié | Personne ne prévient jusqu'à ce que l'e-mail échoue | Alerte par e-mail |