大家好,作为 OpenStreetMap 的一员,我发现他们现在使用的 Discourse 在线论坛存在一些问题。
有人告诉我邮件列表界面应该工作得很好。然而,我发现了一个 bug,当通过电子邮件回复时,线程会中断。它会生成一个新的消息 ID,而不是重新使用原始 ID。
示例
主要概念是好的——它使用了,例如:
格式:thread msg-id in-reply-id
1 topic/851.
初始线程
1.1 topic/851/2747. topic/851
消息 2747 是对初始主题 851 的回复,如 in-reply-to: 和 references: 标头所示:
1.1.1 ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx topic/851/2747.
这是对 topic/851/2747 的电子邮件回复,消息 ID 为 ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx
1.1.1.1 topic/851/2749. ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx
这里论坛回复 2749 正确地链接到我的消息 ID ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx
1.1.1.1.1 07289952-0e88-c08a-ea66-b34774c8554e@gmx topic/851/2749.
…等等
然而,当我回复到前一个主题的消息 ID ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx 时,我引用了
References:… <topic/851/2747. bae9c8af72f1f7ef599f1bcd @OSM>
但我的消息(HTML 论坛版本)被发回给我,其中包含
References: …
<topic/851/2747. ae42d62b1252f1572b2a9a07 @OSM>
您注意到引用中消息 ID 的区别了吗?
论坛系统在引用中破坏了消息 ID!
这导致线程中断,出现以下情况:
1.2 topic/851/2748. topic/851/2747.
1.3 topic/851/2751. topic/851/2749.
其中 1.2 是 1.1.1 的论坛版本(新的消息 ID topic/851/2748.e6be773dbcc599ad5f35bae5@OSM 而不是我的原始消息 ID),
而 1.3 是 1.1.1.1.1 的论坛版本。
我还没有验证其他人是否收到损坏的线程——因为他们不仅会收到我原始回复的消息 ID
1.1.1 ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx,
而且还会收到论坛版本
1.2 消息 ID 为 topic/851/2748.e6be773dbcc599ad5f35bae5@OSM,同时还收到回复
1.1.1.1 引用了 ee76eed4-a255-6d1c-0f5b-59da9772f230@gmx
我在这里对域名进行了模糊处理,因为该论坛会将这些消息 ID 转换为 mailto 链接,从而超出了我允许的链接数量限制。