Nous avons remarqué sur quelques forums qui utilisent Discourse pour refléter une liste de diffusion publique que certains messages sont attribués au mauvais utilisateur :
de : [ruby-talk:444110] exif - photo metadata - ruby-talk - Ruby Mailing List Mirror
Dans ce cas, Discourse a d’abord créé un utilisateur nommé « Austin Ziegler via ruby-talk » avec une adresse e-mail correspondant à l’adresse de soumission de la liste, et c’est ce qui s’affiche pour chaque message de ce type.
de : https://community.nanog.org/t/txt-att-net-outage/56955/4
Dans ce cas, Discourse a d’abord créé un utilisateur nommé « Mailman » avec une adresse e-mail correspondant à l’adresse de soumission de la liste.
Après enquête, notre analyse des e-mails est parfois incorrecte. La cause est que pour la conformité DMARC, Mailman se remplace parfois dans l’en-tête From et place l’expéditeur d’origine dans le Reply-To :
To: Ryan Davis via ruby-talk
X-MailFrom: tom@tomsdomain.com
X-Mailman-Version: 3.3.3
Reply-To: Ruby users <ruby-talk@ml.ruby-lang.org>
From: Tom Reilly via ruby-talk <ruby-talk@ml.ruby-lang.org>
Cc: Tom Reilly <tom@tomsdomain.com>
To: Jared Mauch <jared@jaredsdomain.com>
X-BeenThere: nanog@nanog.org
X-Mailman-Version: 2.1.39
From: Owen DeLong via NANOG <nanog@nanog.org>
Reply-To: Owen DeLong <owen@owensdomain.com>
Cc: nanog <nanog@nanog.org>
mais le laisse lorsqu’il n’a pas besoin de changer :
To: Jon Lewis <jlwe@jonsdomain.org>
X-BeenThere: nanog@nanog.org
X-Mailman-Version: 2.1.39
From: William Herrin <bill@billsdomain.us>
Cc: nanog@nanog.org
Il semble y avoir beaucoup d’options de comportement différentes ici, nous aimerions donc proposer un algorithme pour analyser correctement ce que Mailman envoie dans tous les cas.
Il existe potentiellement d’autres options, par exemple Mailman pourrait publier le message inchangé directement sur une instance Discourse, mais celles-ci sont plus complexes à configurer et peuvent ne pas être disponibles pour tout le monde.
Voici le début d’un algorithme :
- si mailman-version < 3
- si l’une des conditions suivantes est remplie :
- L’adresse From correspond à List-Id
- L’adresse From correspond à List-Post
- L’adresse From correspond à X-BeenThere
- alors utiliser Reply-To comme From
- si l’une des conditions suivantes est remplie :
- si mailman-version >= 3
- si X-MailFrom existe
- Utiliser le nom de l’en-tête From, en supprimant
/via .*/ - Utiliser l’e-mail de X-MailFrom
- Utiliser le nom de l’en-tête From, en supprimant
- si X-MailFrom existe
De plus, une fois tout cela terminé, sera-t-il possible d’avoir une tâche rake pour retraiter les messages existants (probablement uniquement ceux correspondant à l’utilisateur erroné) avec cette nouvelle logique ?

