背景
Yahoo 几周前 宣布 将大幅缩减 Yahoo Groups 可用的服务。从 2019 年 10 月 28 日起,他们已禁用用户上传的内容。2019 年 12 月 14 日,他们表示将移除所有上传内容,包括邮件归档。我特意加粗了最后一点,因为起初这并不明显,却使得迁移群组变得更为紧迫。他们表示,届时群组仍可用作邮件列表,但未来将不再保留归档。
groups.io 上还有另一项服务,几乎是 Yahoo Groups 的即插即用替代品,对于想要迁移 Yahoo 群组的人来说,这显然是首选——他们会负责迁移所有内容,用户也能保留熟悉的界面。就我个人而言,后一点是该服务的主要缺点之一;另一个缺点是迁移群组的费用高达 220 美元。我觉得,如果我要费心迁移群组,最好将界面更新为更现代化的形式,同时保留其作为邮件列表的功能。
如果您的群组包含大量照片或上传文件,您可能需要考虑其他托管方式。否则,您可以将它们发布到您网站的主题中,或许可以放在单独的类别下。如果您需要保存其他类型的数据(例如数据库或日历),我将把最佳迁移方法留给其他人探讨。
准备工作
此过程的关键是 Yahoo 的“获取我的数据”工具(Get my data),它允许您下载群组中的部分数据。具体来说,您可以获取:
- 您作为成员的所有群组的所有消息,以及
- 您作为成员的所有群组的所有上传文件(但不包括照片)。
下载的消息采用 .mbox 格式,并且包含完整的电子邮件地址,无论您是否是群组的版主或管理员。
该工具允许您提交请求。一旦 Yahoo 处理完毕,您会收到一封电子邮件通知,告知下载已准备就绪——这大约花了我一周时间。
如上所述,“获取我的数据”工具不会下载照片。对于照片,我使用了 https://github.com/IgnoredAmbience/yahoo-group-archiver。它也会下载所有其他数据(据我所知无法限制),并且可以获取照片及其元数据。
安装
按照 discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub 在您选择的 VPS 主机上安装 Discourse(我使用的是 contabo.com,但 VPS 提供商有很多)。如果您还没有域名,请注册一个(如果需要免费域名,可以使用 freenom.com;作为付费注册商,easydns.com 或 name.com 对我而言效果很好)。使用您喜欢的主机设置 DNS(我喜欢用 cloudflare.com)。设置出站和入站邮件,参考 https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487。
按您的意愿配置安装;导入过程不会覆盖您已配置的任何内容。
迁移消息
“获取我的数据”工具会生成一个单独的 .zip 文件。其中包含您作为成员的每个群组的目录,每个目录中都有 messages.zip 和 files.zip。解压 messages.zip 后,您将得到包含该群组所有消息的 .mbox 文件,以及为容纳这些消息所需的多个 10 MB 文件(我迁移的群组包含 38,000 条消息,共有 15 个这样的文件)。获取这些文件后,您可以按照 Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc) 中的说明将它们导入到您的 Discourse 安装中。如果您已有用户,脚本将通过电子邮件地址将消息与这些用户匹配。任何没有对应用户的电子邮件地址将创建新用户。
问题
由于用户创建基于电子邮件,Yahoo 用户如果随时间更改过电子邮件地址,会导致您的 Discourse 安装中出现多个用户。合并用户插件(https://meta.discourse.org/t/merge-users-plugin/114917)应能解决此问题,但识别这些用户仍需手动操作。
结论
这就是我目前的进展——我的网站已正常运行,消息已到位,用户也已到位,现在只需进行微调。希望这能帮助其他人下定决心,将 Yahoo 群组迁移到基于 Discourse 的网站,而不是继续维持现状。