将邮件列表迁移到 Discourse(mbox、Listserv、Google Groups 等)」

解决方案就在你上面的帖子里。:wink:

我们应该修复这个脚本。也许你可以创建一个 PR 来为所有人解决这个问题?

谢谢,解决了,抱歉。为了弥补我阅读能力的不足,我打开了 Added duplication to name to prevent modification of frozen string exception by adam-skalicky · Pull Request #30325 · discourse/discourse · GitHub 来拯救其他可能问出愚蠢问题而感到羞愧的人。

1 个赞

此导入脚本是否以任何方式使 Discourse 复制 Mailman 2 的电子邮件主题(例如,使用 Discourse 的小箭头表示“In-Reply-To”)还是它纯粹是按时间顺序排列的(基于 Message-ID、In-Reply-To 和 References 的每个主题)?

1 个赞

是的,它确实可以。

3 个赞

好的。我的邮件列表中的不少电子邮件缺少应有的“In-Reply-To”和“References”标头,因此可能会被导入为新主题,而不是简单的回复。据我回忆,该脚本会使用这些标头或主题标头(而不是两者都用)。

我想我以前问过这个问题,但有没有什么非手动的方法可以在导入 Discourse 之前或之后向 MBOX 文件添加这些标头和/或以其他方式重新排列电子邮件?

现在可以合并主题并保持时间顺序,所以也许这就是答案。它们只是缺少 Discourse 的小箭头来表示该消息是回复给谁的。

1 个赞

mbox 导入脚本有两个阶段。第一个阶段是索引,它会输出一个 SQLite 数据库。你可以在导入前修改 SQLite 中的数据,或者修改 Ruby 脚本。

所有关于按主题或标题排序/分组的神奇之处都发生在这里:

如果你知道如何对电子邮件进行分组,可以添加自己的分组逻辑。

3 个赞

在考虑如此复杂的事情之前,我还需要一段时间!

https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/view/head:/Mailman/Archiver/pipermail.py#L669 Mailman 2 的 Pipermail 按以下顺序查找:

  1. In-Reply-To。
  2. References。
  3. 主题匹配的最旧邮件。

这种组合方法似乎很理想。在第三种情况下,Discourse 不使用“回复”箭头可能是有意义的。

据我回忆,Mailman 3 的 Hyperkitty 根本不考虑主题,效果不太好。

2 个赞