Abbiamo notato su un paio di forum che utilizzano Discourse per rispecchiare una mailing list pubblica che alcuni post vengono attribuiti all’utente sbagliato:
da: [ruby-talk:444110] exif - photo metadata - ruby-talk - Ruby Mailing List Mirror
In questo caso, Discourse ha inizialmente creato un utente con il nome “Austin Ziegler via ruby-talk” con un indirizzo email corrispondente all’indirizzo di invio della lista, ed è quello che viene visualizzato per ogni post di questo tipo.
da: https://community.nanog.org/t/txt-att-net-outage/56955/4
In questo caso, Discourse ha inizialmente creato un utente con il nome “Mailman” con un indirizzo email corrispondente all’indirizzo di invio della lista.
Dopo un’indagine, il nostro parsing delle email è a volte errato. La causa è che per la conformità DMARC, Mailman cambierà a volte l’intestazione From con se stesso e inserirà il mittente originale nel 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>
ma lo lascerà quando non è necessario modificarlo:
To: Jon Lewis <jlewis@jonsdomain.org>
X-BeenThere: nanog@nanog.org
X-Mailman-Version: 2.1.39
From: William Herrin <bill@billsdomain.us>
Cc: nanog@nanog.org
Sembra che ci siano molte opzioni di comportamento diverse, quindi vorremmo elaborare un algoritmo per analizzare correttamente ciò che Mailman invia in ogni singolo caso.
Ci sono potenzialmente altre opzioni, ad esempio Mailman potrebbe inviare il messaggio non modificato direttamente a un’istanza Discourse, ma queste sono più complesse da configurare e potrebbero non essere disponibili per tutti.
Ecco l’inizio di uno:
- se mailman-version < 3
- se uno qualsiasi di:
- L’indirizzo From corrisponde a List-Id
- L’indirizzo From corrisponde a List-Post
- L’indirizzo From corrisponde a X-BeenThere
- allora usa Reply-To come From
- se uno qualsiasi di:
- se mailman-version >= 3
- se X-MailFrom esiste
- Usa il nome dall’intestazione From, rimuovendo
/via .*/ - Usa l’email da X-MailFrom
- Usa il nome dall’intestazione From, rimuovendo
- se X-MailFrom esiste
Inoltre, una volta che tutto questo sarà finito, sarà possibile avere un task rake per rielaborare i post esistenti (probabilmente solo quelli corrispondenti all’utente errato) con questa nuova logica?

