He encontrado un error interesante y poco común con respecto a cómo se archivan las respuestas a las publicaciones en listas de correo que se reflejan en Discourse.
Tengo pruebas de que las respuestas a una lista de correo pueden archivarse incorrectamente en una segunda lista de correo (con un público diferente) si el correo electrónico inicial se envió a ambas listas de correo al mismo tiempo.
Imagina que pertenezco a dos listas de correo, A y B, suscrito con mi dirección de Gmail. Tienen públicos potencialmente diferentes. El servidor de listas envía una sola copia de un mensaje a quienes están en ambas listas de correo, pero la línea Para: indica que el mensaje se envió a las listas A y B en el mismo correo electrónico. Este correo electrónico llega a mi dirección de Gmail, que luego, a través de un filtro, reenvía una copia a listaA@mydiscourse.org.uk, y Gmail elige una de las dos listas en la línea Para:. Gmail está configurado para reenviar publicaciones a A a listaA@mydiscourse.org.uk y publicaciones a B a listB@mydiscourse.org.uk. Discourse está configurado con dos categorías con esas dos direcciones de correo electrónico de entrada de duplicación diferentes (listA@mydiscourse.org.uk y listB@mydiscourse.org.uk).
El problema de que el servidor de listas y Gmail solo envíen una copia es un tema aparte y no es el objeto de este error.
Después de esto, una copia del correo electrónico enviado a mí en mi cuenta de Gmail termina mostrándose en la categoría asociada con la dirección de entrada listA@mydiscourse.org.uk después de que Gmail lo reenviara.
Todo bien hasta ahora (aparte del hecho de que solo llegó un correo electrónico del servidor de listas en primer lugar).
Ahora, un usuario separado, que solo está en la lista de correo B, responde a ese correo electrónico al servidor de listas. El servidor de listas envía ese mensaje a todos en la lista de correo B. Esto llega a mi dirección de Gmail con una línea Para: que indica que se envió a la lista B. Gmail lo reenvía a listB@mydiscourse.org.uk.
¡Pero entonces Discourse lo archiva como si se hubiera enviado por correo electrónico a listA@mydiscourse.org.uk!
¡Esto, por lo tanto, revela a quienes tienen acceso a la lista A el contenido de la publicación de un miembro de la lista B!
Sospecho que Discourse ignora la ruta que tomó el correo electrónico para ingresar a Discourse y lo archivó basándose en los indicadores del ID del mensaje en las cabeceras, eludiendo así la ruta de entrada.
El correo electrónico original, enviado a A y B, tiene un único ID de mensaje y sospecho que se está produciendo un archivo basado únicamente en ese ID de mensaje.
Si el remitente original hubiera escrito dos correos electrónicos separados a la lista A y a la lista B, este problema no habría ocurrido, ya que los dos mensajes tendrían sus propios IDs de mensaje.
Solución sugerida: Si una categoría está duplicando una lista de correo y llega un mensaje a través de la dirección de duplicación que, según las cabeceras, parece ser una respuesta a otra publicación que reside en otro lugar de Discourse, entonces se debe crear una nueva publicación (quizás sin un padre obvio) en la categoría esperada, en lugar de que la respuesta termine en una categoría que está asociada con una lista de correo diferente.