Ich habe einen interessanten und obskuren Fehler gefunden, wie Antworten auf Beiträge an Mailinglisten, die auf Discourse gespiegelt werden, abgelegt werden.
Ich habe Beweise dafür, dass Antworten an eine Mailingliste falsch gegen eine zweite Mailingliste (mit einer anderen Leserschaft) abgelegt werden können, wenn die ursprüngliche E-Mail gleichzeitig an beide Mailinglisten gesendet wurde.
Stellen Sie sich vor, ich bin Mitglied zweier Mailinglisten, A und B, abonniert mit meiner Gmail-Adresse. Sie haben potenziell unterschiedliche Leserschaften. Der Listenserver sendet eine einzelne Kopie einer Nachricht an diejenigen, die auf beiden Mailinglisten sind, aber die Zeile „An:“ gibt an, dass die Nachricht in derselben E-Mail an die Listen A und B gesendet wurde. Diese E-Mail erreicht meine Gmail-Adresse, die dann über einen Filter eine Kopie an listA@mydiscourse.org.uk weiterleitet, wobei Gmail eine der beiden Listen in der Zeile „An:“ auswählt. Gmail ist so eingestellt, dass Beiträge an A an listA@mydiscourse.org.uk und Beiträge an B an listB@mydiscourse.org.uk weitergeleitet werden. Discourse ist mit zwei Kategorien mit diesen beiden unterschiedlichen eingehenden spiegelnden E-Mail-Adressen (listA@mydiscourse.org.uk und listB@mydiscourse.org.uk) eingerichtet.
Das Problem, dass der Listenserver und Gmail nur eine Kopie senden, ist separat und nicht Gegenstand dieses Fehlers.
Danach wird eine Kopie der an mich gesendeten E-Mail an mein Gmail-Konto in der Kategorie angezeigt, die der eingehenden Adresse listA@mydiscourse.org.uk zugeordnet ist, nachdem Gmail sie weitergeleitet hat.
Bis hierhin alles gut (abgesehen davon, dass vom Listenserver überhaupt nur eine E-Mail eingegangen ist).
Nun antwortet ein separater Benutzer, der nur auf der Mailingliste B ist, auf diese E-Mail an den Listenserver. Der Listenserver sendet diese Nachricht an alle auf der Mailingliste B. Diese erreicht meine Gmail-Adresse mit einer Zeile „An:“, die angibt, dass sie an die Liste B gesendet wurde. Gmail leitet sie an listB@mydiscourse.org.uk weiter.
Aber dann legt Discourse sie so ab, als wäre sie an listA@mydiscourse.org.uk gesendet worden!
Dies offenbart daher denjenigen, die Zugriff auf Liste A haben, den Inhalt eines Beitrags eines Mitglieds von Liste B!
Ich vermute, Discourse ignoriert den Weg, den die E-Mail genommen hat, um in Discourse zu gelangen, und legt sie basierend auf den Message-ID-Flags in den Headern ab, wodurch der Eingangs-Weg umgangen wird.
Die ursprüngliche E-Mail, die an A und B gesendet wurde, hat eine einzige Message-ID und ich vermute, dass die Ablage nur basierend auf dieser Message-ID erfolgt.
Wenn der ursprüngliche E-Mail-Absender zwei separate E-Mails an Liste A und Liste B geschrieben hätte, wäre dieses Problem nicht aufgetreten, da die beiden Nachrichten ihre eigenen Message-IDs gehabt hätten.
Vorgeschlagene Korrektur: Wenn eine Kategorie eine Mailingliste spiegelt und eine Nachricht über die spiegelnde Adresse eingeht, die aus den Headern zu stammen scheint, als Antwort auf einen anderen Beitrag, der sich irgendwo anders auf Discourse befindet, dann muss ein neuer Beitrag erstellt werden (vielleicht ohne offensichtlichen Elternteil) in der erwarteten Kategorie, anstatt dass die Antwort in einer Kategorie landet, die mit einer anderen Mailingliste verbunden ist.