邮件列表镜像错误,存在安全隐患

一种解决方案是重写 message-id,使其反映发帖人邮件客户端创建的原始 ID,再加上一个额外的标识符,例如 Discourse 已经查找的邮件列表的 To: 地址?这意味着,如果一篇文章来自邮件列表 B,但它引用了也来自邮件列表 A 的文章中的 message-id 标头,它会被 Discourse 正确归档吗?

例如。原始电子邮件同时发送到两个邮件列表 A 和 B,具有唯一的 message-id“1234567890gmail”。

Discourse 收到两个副本,转发到通用的传入 Discourse 地址。第一条消息根据 To: 地址归档到列表 A,message-id 会被 Discourse 追加额外的字符,变成“1234567890gmailListA”。第二条消息由于看起来是重复的,因此未归档。(我认为这是当前行为)。

列表 B 上的某人使用列表 B 的 To: 地址进行回复。Discourse 收到副本,并注意到有一个“in reply to”标头包含“1234567890gmail”。Discourse 看到电子邮件是通过反映列表 B 的 To: 行传入的,会在末尾追加字符,使“in reply to”标头看起来像“1234567890gmailListB”。然后,它会将此作为新消息在新类别中归档,因为它不再与归档到列表 A 的消息相关联。

这种方法也可能适用于转移存档,因为如果用户同时将消息发送到多个列表,则在多个邮件列表中可能会找到相同的 message-id。在导入时,所有 message-id 字段(以及 in reply to)都可以追加唯一的文本,链接到命名的邮件列表,以防止在索引消息时存档之间发生某种交叉通信。