Bug de mise en miroir de liste de diffusion avec implications de sécurité

Une solution possible serait-elle d’avoir une option pour réécrire l’ID du message afin qu’il reflète l’ID d’origine créé par le client de messagerie de l’expéditeur, plus un identifiant supplémentaire, par exemple l’adresse To: de la liste de diffusion que Discourse recherche déjà ? Cela signifierait que si un message provenait de la liste de diffusion B mais référençait un en-tête message-id qui se trouvait également dans un message de la liste de diffusion A, il serait correctement classé par Discourse ?

Par exemple. Un e-mail original envoyé simultanément à deux listes de diffusion A et B a un message-id unique ‘1234567890gmail’.

Discourse reçoit deux copies transférées à l’adresse entrante générique de Discourse. Le premier message est classé en fonction de l’adresse To: qui est adressée à la liste A et Discourse ajoute des caractères supplémentaires à l’ID du message pour qu’il devienne ‘1234567890gmailListA’. Le deuxième message n’est pas classé car il semble être un doublon. (Je pense que c’est le comportement actuel).

Quelqu’un de la liste B répond en utilisant l’adresse To: de la liste B. Discourse reçoit une copie et repère qu’il y a un en-tête “en réponse à” qui contient ‘1234567890gmail’. Discourse, voyant que l’e-mail est arrivé avec une ligne To: reflétant la liste B, ajoute des caractères à la fin pour que l’en-tête “en réponse à” ressemble à ‘1234567890gmailListB’. Il procède ensuite à son classement comme un nouveau message dans la catégorie correcte car il n’est plus lié au message qui a été classé sous la liste A.

Cette approche pourrait également fonctionner pour le transfert d’archives où le même ID de message pourrait être trouvé dans plusieurs listes de diffusion si un utilisateur a envoyé le message à plusieurs listes en même temps. Au moment de l’importation, tous les champs message-id (et en réponse à) pourraient avoir du texte unique ajouté, lié au nom de la liste de diffusion, pour éviter une sorte de dialogue croisé entre les archives lors de l’indexation des messages.