Vérifiez d'abord l'environnement sandbox, car il détermine si cela peut fonctionner. Dans chaque région, tout nouveau compte SES est initialement placé dans la sandbox. Tant qu'il y reste, SES distribue les e-mails uniquement aux adresses vérifiées, aux domaines vérifiés et à son propre simulateur de boîte aux lettres. S'ajoutent à cela des limites de 200 messages par période de 24 heures et d'un message par seconde.
La vérification d'une adresse Email Spam Tester ne permet pas de contourner cette restriction. SES vérifie un destinataire en lui envoyant un e-mail contenant un lien. Comme nos adresses n'acceptent qu'un seul message avant de fermer, l'e-mail de vérification consommerait ce message. En pratique, vous devez donc obtenir l'accès à la production dans la région depuis laquelle vous envoyez vos e-mails. AWS s'engage à fournir une première réponse à cette demande sous 96 heures.
Comme le statut de la sandbox est propre à chaque région, un compte en production dans eu-west-1 peut encore être dans la sandbox dans us-east-1. Les identités sont également propres à chaque région, chacune avec ses propres enregistrements DKIM.
Obtenez une adresse, envoyez un message
Ouvrez email-spam-tester.com et copiez l’adresse affichée. Elle ne nécessite ni compte ni clé API et se présente sous la forme test-, suivi de vingt caractères, à l’adresse t.email-spam-tester.com. Vous disposez d’une heure et d’un seul message. Préparez donc la commande d’envoi avant de récupérer l’adresse.
La méthode d’envoi la plus simple utilise la CLI. Elle est adaptée de l’exemple fourni par AWS sur la page consacrée aux tenants SES, sans les options de tenant et de jeu de configuration :
aws sesv2 send-email \
--from-email-address "sender@yourdomain.com" \
--destination "ToAddresses=test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com" \
--content "Simple={Subject={Data='Test Subject',Charset=utf-8},Body={Text={Data='Test email body',Charset=utf-8}}}"
L’adresse From doit être une identité vérifiée, même en production. Un corps de message uniquement en texte brut comme celui-ci suffit pour tester l’authentification et l’IP, mais ne vous apprend presque rien sur le contenu. Pour obtenir un verdict réel, envoyez le message que votre application envoie réellement, avec sa partie HTML et ses en-têtes. Utilisez également le même chemin de code, qu’il s’agisse de send_email de boto3, d’une bibliothèque SMTP ou d’une autre solution. Si les envois en production utilisent un jeu de configuration, ajoutez également --configuration-set-name ici afin que le test passe par les mêmes paramètres.
Le test de placement utilise la même commande. Ajoutez les boîtes de réception des fournisseurs dans ToAddresses, à côté de l’adresse de test, et son marqueur dans les données de Subject. Un seul appel alimente alors deux rapports. Le second indique le dossier dans lequel le message est arrivé chez Gmail, Outlook, Yahoo et d’autres fournisseurs. Ces boîtes de réception ne sont pas vérifiées non plus. Cela nécessite donc également un accès à la production.
Vous pouvez aussi passer par la console. Ouvrez Configuration > Identities, cliquez sur l’identité, puis choisissez Send test email. Sélectionnez Raw si vous souhaitez coller un message MIME complet avec vos propres en-têtes. AWS décrit la console comme un outil généralement réservé aux e-mails de test, et la documentation ne mentionne aucun préfixe de test ni aucune autre modification du message. Dans la sandbox, le champ Custom recipient nécessite une adresse vérifiée, ce qui vous ramène au problème précédent.
À quoi ressemble une nouvelle identité SES dans le rapport
Dans le rapport · Authentification
- SPFréussinon alignéLe MAIL FROM est un sous-domaine d'amazonses.com, et non de votre domaine.
- DKIMréussialignéEasy DKIM signe chaque message avec une clé de 2048 bits sur votre domaine.
- DMARCréussiRéussit grâce à la signature DKIM alignée, une fois que vous avez publié un enregistrement DMARC.
Une identité SES par défaut : SPF réussit, mais pour amazonses.com. Un MAIL FROM personnalisé permet de l'aligner.
DKIM. Easy DKIM est l'option par défaut pour les identités de domaine et signe chaque message avec une clé de 2048 bits. La configuration nécessite trois enregistrements CNAME nommés token._domainkey.yourdomain.com qui pointent vers token.dkim.<region>.amazonses.com. Si la vérification DKIM échoue, commencez par vérifier deux points : si la propagation DNS est terminée (AWS prévoit jusqu'à 72 heures) et si votre hébergeur DNS a ajouté le domaine au nom, créant ainsi token._domainkey.yourdomain.com.yourdomain.com. Avec BYODKIM, vous publiez à la place un enregistrement TXT pour votre propre sélecteur. Pendant le passage de l'un à l'autre, SES peut envoyer des messages sans aucune signature, ce que le rapport signale comme DKIM manquant. Le vérificateur DKIM utilise le token comme sélecteur.
SPF et le chemin de retour. Par défaut, SES utilise un sous-domaine d'amazonses.com comme MAIL FROM. SPF réussit, mais pour amazonses.com. Le rapport indique donc que SPF n'est pas aligné avec votre champ From. Lorsque DKIM est aligné, cela coûte peu de points (2 points sur l'échelle de 100 points au lieu de 5), et DMARC réussit toujours grâce à DKIM. Pour aligner également SPF, configurez un sous-domaine MAIL FROM personnalisé avec exactement un enregistrement MX, 10 feedback-smtp.<region>.amazonses.com, et un enregistrement TXT v=spf1 include:amazonses.com ~all. Ne choisissez pas un sous-domaine qui reçoit des e-mails et n'ajoutez pas aspf=s à votre enregistrement DMARC, car AWS indique que l'alignement SPF avec SES ne fonctionne pas avec une politique SPF stricte.
DMARC. SES n'en publie pas pour vous. L'exemple d'AWS est v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com. Si personne ne lit encore vos rapports DMARC, je vous conseille de commencer par p=none, puis de renforcer la politique plus tard. Le vérificateur DMARC affiche votre configuration actuelle, et DMARC fail présente les causes courantes d'échec.
Valeurs d’exemple. Copiez les valeurs réelles depuis votre compte.
| Nom | Type | Valeur | Utilité | Copier |
|---|---|---|---|---|
| token. | CNAME | token. | Easy DKIM. Trois enregistrements de ce type, un par token. | |
| mail. | MX | 10 feedback-smtp. | MAIL FROM personnalisé. Exactement un enregistrement MX, sur un sous-domaine qui ne reçoit aucun e-mail. | |
| mail. | TXT | v= | SPF pour le MAIL FROM personnalisé, afin que SPF soit aligné avec votre champ From. | |
| _dmarc. | TXT | v= | DMARC, exemple d'AWS. Commencez par p=none si personne ne lit encore les rapports, et omettez aspf=s. |
List-Unsubscribe. SES ajoute List-Unsubscribe et List-Unsubscribe-Post uniquement lorsque vous envoyez avec ListManagementOptions pointant vers une liste de contacts et un sujet. Même dans ce cas, il ne les ajoute qu'aux messages destinés à un seul destinataire et utilisant Easy DKIM, et SES remplace tous les en-têtes de désabonnement que vous définissez vous-même. Tous les autres messages sont envoyés sans aucun en-tête de désabonnement. Pour une newsletter, cela signifie que la vérification List-Unsubscribe et celle du désabonnement en un clic échouent, sauf si vous ajoutez vous-même ces en-têtes. Depuis mars 2024, la v2 API accepte les en-têtes personnalisés sans MIME brut. Adaptés de l'article d'AWS sur le désabonnement en un clic, les deux en-têtes se présentent ainsi :
"Headers": [
{ "Name": "List-Unsubscribe",
"Value": "<https://yourdomain.com/unsub?address=x&topic=x>, <mailto:unsubscribe@yourdomain.com>" },
{ "Name": "List-Unsubscribe-Post",
"Value": "List-Unsubscribe=One-Click" }
]
Votre endpoint doit ensuite traiter la requête POST. Les réinitialisations de mot de passe et les reçus sans en-têtes de liste constituent un autre cas. Pour ces messages, le rapport indique que le groupe d'exigences des expéditeurs en nombre a été ignoré. Pour en savoir plus sur cet en-tête, consultez notre page List-Unsubscribe.
IP et listes de blocage
Les nouveaux comptes envoient depuis des IP partagées avec d'autres utilisateurs de SES, et AWS recommande de les conserver sauf si votre volume est important et régulier. Le rapport vérifie l'IP d'envoi dans 21 listes de blocage. Sur les adresses partagées, une détection concerne l'ensemble du pool. Les IP dédiées sont proposées en mode Standard, avec un préchauffage manuel, ou Managed, où SES gère le préchauffage. Dans ce cas, une inscription sur une liste est liée à vos propres envois. Toute IP trouvée dans l'onglet Headers peut être vérifiée directement avec le vérificateur de listes de blocage.
AWS surveille également votre compte. Sa FAQ sur l'application des règles recommande d'effectuer les tests avec de vraies adresses capables de recevoir des e-mails, ou avec le simulateur, afin que des destinataires fictifs n'augmentent pas le taux de rebond. Un compte est soumis à vérification lorsque son taux de rebond atteint 5 % ou son taux de plaintes 0,1 %.
Le plan de correction situé en bas répertorie jusqu'à huit modifications, chacune accompagnée de l'enregistrement DNS à copier lorsqu'il y en a un. Les points indiqués à côté de chaque correction correspondent aux pénalités actuelles des vérifications concernées. Le modèle sélectionne et explique les corrections. Il ne les chiffre pas. Si le nom d'une vérification ne vous dit rien, la documentation explique chacune des 42 vérifications.
Références AWS
Accès au sandbox et à la productiondocs.aws.amazon.com ↗Easy DKIMdocs.aws.amazon.com ↗MAIL FROM personnalisédocs.aws.amazon.com ↗DMARC avec SESdocs.aws.amazon.com ↗Gestion des abonnementsdocs.aws.amazon.com ↗sesv2 send-emaildocs.aws.amazon.com ↗Questions
Puis-je effectuer un test depuis le bac à sable SES ?
Pas avec notre adresse. Dans le bac à sable, SES envoie uniquement aux destinataires vérifiés, et la vérification de notre adresse utiliserait le seul message qu'elle accepte. Demandez l'accès à la production pour la région concernée. En attendant, vérifiez vos enregistrements avec les outils gratuits de vérification DKIM, SPF et DMARC.
Le simulateur de boîte aux lettres SES fournit-il les mêmes informations ?
Non. Il vous indique comment SES traite un rebond, une plainte ou une livraison, et son utilisation est facturée comme un envoi normal. Il n'analyse pas vos en-têtes, votre authentification ni votre contenu.
Dois-je ajouter SES à l'enregistrement SPF de mon domaine racine ?
Les serveurs destinataires vérifient SPF par rapport au domaine MAIL FROM, qui est par défaut un sous-domaine de amazonses.com, ou votre sous-domaine MAIL FROM personnalisé. L'enregistrement SPF de SES doit se trouver sur ce sous-domaine et, comme l'indique la page MAIL FROM, rien n'est requis sur le domaine racine.