Hemos notado en algunos foros que usan Discourse para reflejar una lista de correo pública que algunas publicaciones se atribuyen al usuario incorrecto:
de: [ruby-talk:444110] exif - photo metadata - ruby-talk - Ruby Mailing List Mirror
En este caso, Discourse primero creó un usuario con el nombre “Austin Ziegler via ruby-talk” con una dirección de correo electrónico que coincide con la dirección de envío de la lista, y eso es lo que aparece para cada publicación de este tipo.
de: https://community.nanog.org/t/txt-att-net-outage/56955/4
En este caso, Discourse primero creó un usuario con el nombre “Mailman” con una dirección de correo electrónico que coincide con la dirección de envío de la lista.
Tras la investigación, nuestro análisis de correo es a veces incorrecto. La causa es que para el cumplimiento de DMARC, Mailman a veces cambia la cabecera From a sí mismo y pone al remitente original en el 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>
pero lo deja cuando no necesita cambiarlo:
To: Jon Lewis <ljlewis@jonsdomain.org>
X-BeenThere: nanog@nanog.org
X-Mailman-Version: 2.1.39
From: William Herrin <bill@billsdomain.us>
Cc: nanog@nanog.org
Parece que hay muchas opciones diferentes de comportamiento aquí, por lo que nos gustaría idear un algoritmo para analizar correctamente lo que Mailman envía en cada caso.
Potencialmente hay otras opciones, por ejemplo, Mailman podría publicar el mensaje sin cambios directamente en una instancia de Discourse, pero esas son más complejas de configurar y pueden no estar disponibles para todos.
Aquí está el inicio de uno:
- si mailman-version < 3
- si alguna de:
- La dirección From coincide con List-Id
- La dirección From coincide con List-Post
- La dirección From coincide con X-BeenThere
- entonces usar Reply-To como From
- si alguna de:
- si mailman-version >= 3
- si X-MailFrom existe
- Usar el nombre de la cabecera From, eliminando
/via .*/ - Usar el correo electrónico de X-MailFrom
- Usar el nombre de la cabecera From, eliminando
- si X-MailFrom existe
Además, cuando todo esto esté dicho y hecho, ¿es posible tener una tarea rake para reprocesar las publicaciones existentes (probablemente solo las que coinciden con el usuario erróneo) con esta nueva lógica?

