toutes les fiches

// comment corriger

Domaine MAIL FROM personnalisé Amazon SES : alignement SPF pour DMARC

Amazon SES utilise un domaine de rebond amazonses.com, donc le SPF ne s'aligne pas pour DMARC. Configurez un sous-domaine MAIL FROM avec le bon MX et le bon SPF.

Ce que ça veut dire

Chaque email comporte deux adresses d'expéditeur. L'adresse From est celle que voient les gens. Le MAIL FROM (aussi appelé expéditeur d'enveloppe, Return-Path ou adresse de rebond) sert aux serveurs pour renvoyer les rebonds. Le SPF vérifie le domaine du MAIL FROM, pas celui du From.

Par défaut, Amazon SES utilise un sous-domaine de amazonses.com comme MAIL FROM. Le SPF passe, mais pour amazonses.com, pas pour votre domaine. Or DMARC exige que le SPF ou le DKIM passe pour un domaine aligné sur votre domaine From. Avec les réglages par défaut, le SPF ne compte donc jamais pour DMARC. Dans un rapport, cela ressemble à ceci :

spf=pass smtp.mailfrom=0100018abc...@us-east-1.amazonses.com
dkim=pass header.d=yourdomain.com
dmarc=pass header.from=yourdomain.com

Ici, DMARC passe quand même grâce au DKIM. Mais vous dépendez du seul DKIM : si un transfert ou un pied de page ajouté par une passerelle casse la signature, DMARC échoue. Un domaine MAIL FROM personnalisé vous donne une seconde validation alignée. Le principe général est expliqué dans Return-Path, expéditeur d'enveloppe et From.

Pourquoi cela arrive

  • Aucun domaine MAIL FROM personnalisé n'est configuré sur l'identité (c'est le réglage par défaut).
  • Un domaine MAIL FROM personnalisé est configuré, mais son statut est Pending, TemporaryFailure ou Failed. Avec l'option de repli Use default MAIL FROM domain, SES revient silencieusement à amazonses.com.
  • Le sous-domaine MAIL FROM a deux enregistrements MX, ou aucun, ou une mauvaise Région dans la valeur du MX.
  • Votre enregistrement DMARC impose un alignement SPF strict (aspf=s). Un sous-domaine comme mail.yourdomain.com ne s'aligne qu'en mode relaxed, le mode par défaut.

Comment vérifier

Envoyez un email via SES à l'adresse unique de la page d'accueil de Delivmail et ouvrez le rapport. Regardez le domaine vérifié par le SPF et si la section DMARC indique que le SPF est aligné. Si vous voyez amazonses.com, le MAIL FROM personnalisé n'est pas actif. Dans la console SES, ouvrez Identities, votre domaine, puis le panneau Custom MAIL FROM domain pour voir son statut. Depuis un terminal :

dig +short MX mail.yourdomain.com
dig +short TXT mail.yourdomain.com
dig +short TXT _dmarc.yourdomain.com

Comment corriger

  1. Choisissez un sous-domaine dédié, par exemple mail.yourdomain.com ou bounce.yourdomain.com. AWS exige qu'il s'agisse d'un sous-domaine d'une identité vérifiée, qui ne sert ni d'adresse From ni à recevoir des emails. Ne réutilisez pas un sous-domaine qui a déjà des enregistrements MX pour une boîte mail.
  2. Dans la console : Identities, votre domaine, Custom MAIL FROM domain, Edit. Cochez Use a custom MAIL FROM domain, saisissez le sous-domaine et choisissez le Behavior on MX failure (comportement en cas d'échec du MX). Use default MAIL FROM domain continue d'envoyer si le DNS est cassé ; Reject message bloque l'envoi avec une erreur MailFromDomainNotVerified.
  3. Publiez les deux enregistrements affichés par SES, en remplaçant la Région par la vôtre :
mail.yourdomain.com.  MX   10 feedback-smtp.us-east-1.amazonses.com
mail.yourdomain.com.  TXT  "v=spf1 include:amazonses.com ~all"

Il doit y avoir exactement un enregistrement MX sur ce sous-domaine, sinon la configuration échoue. L'enregistrement SPF se place sur le sous-domaine, pas sur votre domaine principal : il ne consomme donc aucune des 10 requêtes DNS de votre SPF principal. Si le sous-domaine a déjà un CNAME, supprimez-le d'abord : un CNAME ne peut pas cohabiter avec des enregistrements MX ou TXT (voir conflit entre CNAME et enregistrements MX ou TXT).

Avec la CLI, le même réglage s'écrit :

aws sesv2 put-email-identity-mail-from-attributes \
  --email-identity yourdomain.com \
  --mail-from-domain mail.yourdomain.com \
  --behavior-on-mx-failure USE_DEFAULT_VALUE

SES cherche l'enregistrement MX pendant 72 heures au maximum. S'il ne le trouve pas, le statut passe en Failed et vous devez recommencer la configuration. Répétez l'opération pour chaque Région où l'identité est utilisée.

Conservez l'alignement relaxed dans DMARC (pas de aspf=s), sinon le sous-domaine ne s'alignera pas. Si d'autres services envoient aussi pour votre domaine, voyez comment les faire cohabiter dans plusieurs services d'email sur un même domaine. Pour les bases de DMARC, consultez DMARC échoue : SPF et DKIM ne correspondent pas à votre domaine.

Vérifier que c'est corrigé

Attendez le statut Success dans la console (SES envoie aussi un email au propriétaire du compte). Lancez un nouveau test Delivmail : le SPF doit désormais passer pour mail.yourdomain.com, et DMARC doit montrer le SPF et le DKIM alignés. Renvoyez ensuite au destinataire dont le serveur avait refusé ou filtré votre message. Selon le TTL, les modifications DNS peuvent mettre un certain temps à atteindre tous les résolveurs.

Vérifiez que c'est corrigé

Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.

Fiches liées