Wir haben auf einigen Foren, die Discourse verwenden, um eine öffentliche Mailingliste zu spiegeln, festgestellt, dass einige Beiträge dem falschen Benutzer zugeordnet werden:
von: [ruby-talk:444110] exif - photo metadata - ruby-talk - Ruby Mailing List Mirror
In diesem Fall hat Discourse zuerst einen Benutzer mit dem Namen „Austin Ziegler via ruby-talk“ mit einer E-Mail-Adresse, die der Adresse der Listenübermittlung entspricht, angelegt, und das ist es, was für jeden Beitrag wie dieser angezeigt wird.
von: https://community.nanog.org/t/txt-att-net-outage/56955/4
In diesem Fall hat Discourse zuerst einen Benutzer mit dem Namen „Mailman“ mit einer E-Mail-Adresse, die der Adresse der Listenübermittlung entspricht, angelegt.
Bei der Untersuchung ist unsere E-Mail-Verarbeitung manchmal falsch. Der Grund dafür ist, dass Mailman aus DMARC-Konformitätsgründen manchmal den From-Header zu sich selbst ändert und den ursprünglichen Absender in die Reply-To-Adresse einfügt:
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>
lässt es aber unverändert, wenn es nicht geändert werden muss:
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
Es scheint, dass es hier viele verschiedene Verhaltensoptionen gibt, daher möchten wir einen Algorithmus entwickeln, um das, was Mailman in jedem einzelnen Fall sendet, korrekt zu parsen.
Es gibt möglicherweise andere Optionen, zum Beispiel könnte Mailman die unveränderte Nachricht direkt an eine Discourse-Instanz senden, aber diese sind komplexer einzurichten und möglicherweise nicht für jeden verfügbar.
Hier ist der Anfang davon:
- Wenn mailman-version < 3
- Wenn eine der folgenden Bedingungen zutrifft:
- From-Adresse entspricht List-Id
- From-Adresse entspricht List-Post
- From-Adresse entspricht X-BeenThere
- Dann Reply-To als From verwenden
- Wenn eine der folgenden Bedingungen zutrifft:
- Wenn mailman-version >= 3
- Wenn X-MailFrom vorhanden ist
- Namen aus dem From-Header verwenden,
/via .*/entfernen - E-Mail von X-MailFrom verwenden
- Namen aus dem From-Header verwenden,
- Wenn X-MailFrom vorhanden ist
Ist es außerdem möglich, wenn all dies abgeschlossen ist, eine Rake-Aufgabe zu haben, die bestehende Beiträge (wahrscheinlich nur die, die dem fehlerhaften Benutzer entsprechen) mit dieser neuen Logik neu verarbeitet?

