Hop, petit pense-bête. Je viens récemment de prendre des retours de mails envoyé depuis un compte @yahoo vers une mailing-list sur l’outil mailman (appelons-la liste@autre_domaine.fr) qui contenait des adresses notamment chez gmail.
Bilan, gmail les rejette au motif de :
Sep 11 05:45:32 mon_host postfix/smtp[8866]: 04746A1558: to=, relay=gmail-smtp-in.l.google.com[64.233.184.27]:25, delay=31, delays=0.01/0/30/0.71, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[64.233.184.27] said: 550-5.7.1 Unauthenticated email from yahoo.fr is not accepted due to domain's 550-5.7.1 DMARC policy. Please contact the administrator of yahoo.fr domain if 550-5.7.1 this was a legitimate mail. Please visit 550-5.7.1 https://support.google.com/mail/answer/2451690 to learn about the 550 5.7.1 DMARC initiative. o16-v6si1277580wmh.19 - gsmtp (in reply to end of DATA command))
Ce gentil baratin m’a mené vers https://wiki.list.org/DEV/DMARC qui explique (et ça ne doit pas dater d’hier pourtant) que le contrôle DMARC sur les serveurs autorisés à expédier au nom d’un serveur donné (yahoo ici) a mis la misère aux outils de mailing-list car l’expéditeur est par exemple yahoo et c’est un serveur qui n’est pas yahoo qui relaye (@autre_domaine.fr dans mon exemple). Donc gmail, qui contrôle le DMARC, bloque.
Bilan, depuis les versions 2.1 (en debian stable « stretch ») et 3.1 (plus tard ? ;)), ils ont trouvé comme solution globalement satisfaisante de faire de la réécriture du champ From afin que l’expéditeur soit bien @liste@autre_domaine.fr, expédiée par le serveur de autre_domaine.fr, donc légitime etc. Et pouf, les mails arrivent. Le champ Reply-To est mis à la valeur de l’expéditeur (yahoo) afin de permettre le retour (surtout si l’expéditeur n’est pas dans la liste, il n’aurait pas la réponse).
Ce n’est pas activé par défaut, il faut aller dans l’éditeur web de conf mailman, dans la partie /mailman/admin/
et positionner le paramètre dmarc_moderation_action à « Munge » (rewrite) si on veut ce comportement.
A noter que, à moins de cocher dmarc_none_moderation_action, mailman est intelligent et teste le comportement des serveurs en terme de DMARC et s’il sait qu’un mail va se faire rejeter, alors il fait la réécriture, pas pour les autres. On voit d’ailleurs dans les logs partir 2 salves de mails : les réécrits et les non réécrits (gmail.com, outlook.com …)
C’est à faire obligatoirement, à mon sens, sans quoi vos listes sont HS.