# 如何从 Yahoo Groups 迁移到 Discourse

**URL:** https://meta.discourse.org/t/how-to-migrate-from-yahoo-groups-to-discourse/132662
**Category:** Migration
**Created:** [2019年十一月5日 15:13 UTC](https://meta.discourse.org/t/how-to-migrate-from-yahoo-groups-to-discourse/132662 "2019-11-05T15:13:18Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![danb35](https://avatars.discourse-cdn.com/v4/letter/d/dfb087/32.png) [@danb35](https://meta.discourse.org/u/danb35)
#### Post date: [2019年十一月5日 15:13 UTC](https://meta.discourse.org/t/how-to-migrate-from-yahoo-groups-to-discourse/132662/1 "2019-11-05T15:13:19Z")

</div>

我发起过一个话题（[https://meta.discourse.org/t/migration-from-yahoo-groups/131951/）以寻求相关指导，另一个话题（https://meta.discourse.org/t/yahoo-groups-to-discourse-migration/131587）也询问了此事，因此以下是我总结出的迁移方案。](https://meta.discourse.org/t/migration-from-yahoo-groups/131951/%EF%BC%89%E4%BB%A5%E5%AF%BB%E6%B1%82%E7%9B%B8%E5%85%B3%E6%8C%87%E5%AF%BC%EF%BC%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E8%AF%9D%E9%A2%98%EF%BC%88https://meta.discourse.org/t/yahoo-groups-to-discourse-migration/131587%EF%BC%89%E4%B9%9F%E8%AF%A2%E9%97%AE%E4%BA%86%E6%AD%A4%E4%BA%8B%EF%BC%8C%E5%9B%A0%E6%AD%A4%E4%BB%A5%E4%B8%8B%E6%98%AF%E6%88%91%E6%80%BB%E7%BB%93%E5%87%BA%E7%9A%84%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%88%E3%80%82)

## 背景

Yahoo 几周前 [宣布](https://help.yahoo.com/kb/SLN31010.html) 将大幅缩减 Yahoo Groups 可用的服务。从 2019 年 10 月 28 日起，他们已禁用用户上传的内容。2019 年 12 月 14 日，他们表示将移除所有上传内容， **包括邮件归档** 。我特意加粗了最后一点，因为起初这并不明显，却使得迁移群组变得更为紧迫。他们表示，届时群组仍可用作邮件列表，但未来将不再保留归档。

[groups.io](http://groups.io) 上还有另一项服务，几乎是 Yahoo Groups 的即插即用替代品，对于想要迁移 Yahoo 群组的人来说，这显然是首选——他们会负责迁移所有内容，用户也能保留熟悉的界面。就我个人而言，后一点是该服务的主要缺点之一；另一个缺点是迁移群组的费用高达 220 美元。我觉得，如果我要费心迁移群组，最好将界面更新为更现代化的形式，同时保留其作为邮件列表的功能。

如果您的群组包含大量照片或上传文件，您可能需要考虑其他托管方式。否则，您可以将它们发布到您网站的主题中，或许可以放在单独的类别下。如果您需要保存其他类型的数据（例如数据库或日历），我将把最佳迁移方法留给其他人探讨。

## 准备工作

此过程的关键是 Yahoo 的“获取我的数据”工具（[Get my data](https://groups.yahoo.com/neo/getmydata)），它允许您下载群组中的部分数据。具体来说，您可以获取：

- 您作为成员的所有群组的所有消息，以及
- 您作为成员的所有群组的所有上传文件（但不包括照片）。

下载的消息采用 .mbox 格式，并且包含完整的电子邮件地址，无论您是否是群组的版主或管理员。

该工具允许您提交请求。一旦 Yahoo 处理完毕，您会收到一封电子邮件通知，告知下载已准备就绪——这大约花了我一周时间。

如上所述，“获取我的数据”工具不会下载照片。对于照片，我使用了 [https://github.com/IgnoredAmbience/yahoo-group-archiver。它也会下载所有其他数据（据我所知无法限制），并且可以获取照片及其元数据。](https://github.com/IgnoredAmbience/yahoo-group-archiver%E3%80%82%E5%AE%83%E4%B9%9F%E4%BC%9A%E4%B8%8B%E8%BD%BD%E6%89%80%E6%9C%89%E5%85%B6%E4%BB%96%E6%95%B0%E6%8D%AE%EF%BC%88%E6%8D%AE%E6%88%91%E6%89%80%E7%9F%A5%E6%97%A0%E6%B3%95%E9%99%90%E5%88%B6%EF%BC%89%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%8F%AF%E4%BB%A5%E8%8E%B7%E5%8F%96%E7%85%A7%E7%89%87%E5%8F%8A%E5%85%B6%E5%85%83%E6%95%B0%E6%8D%AE%E3%80%82)

## 安装

按照 [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md) 在您选择的 VPS 主机上安装 Discourse（我使用的是 [contabo.com](http://contabo.com)，但 VPS 提供商有很多）。如果您还没有域名，请注册一个（如果需要免费域名，可以使用 [freenom.com](http://freenom.com)；作为付费注册商，[easydns.com](http://easydns.com) 或 [name.com](http://name.com) 对我而言效果很好）。使用您喜欢的主机设置 DNS（我喜欢用 [cloudflare.com](http://cloudflare.com)）。设置出站和入站邮件，参考 [https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487。](https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487%E3%80%82)

按您的意愿配置安装；导入过程不会覆盖您已配置的任何内容。

## 迁移消息

“获取我的数据”工具会生成一个单独的 .zip 文件。其中包含您作为成员的每个群组的目录，每个目录中都有 `messages.zip` 和 `files.zip`。解压 `messages.zip` 后，您将得到包含该群组所有消息的 `.mbox` 文件，以及为容纳这些消息所需的多个 10 MB 文件（我迁移的群组包含 38,000 条消息，共有 15 个这样的文件）。获取这些文件后，您可以按照 [Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc)](https://meta.discourse.org/t/importing-mailing-lists-mbox-listserv-google-groups-emails/79773) 中的说明将它们导入到您的 Discourse 安装中。如果您已有用户，脚本将通过电子邮件地址将消息与这些用户匹配。任何没有对应用户的电子邮件地址将创建新用户。

## 问题

由于用户创建基于电子邮件，Yahoo 用户如果随时间更改过电子邮件地址，会导致您的 Discourse 安装中出现多个用户。合并用户插件（[https://meta.discourse.org/t/merge-users-plugin/114917）应能解决此问题，但识别这些用户仍需手动操作。](https://meta.discourse.org/t/merge-users-plugin/114917%EF%BC%89%E5%BA%94%E8%83%BD%E8%A7%A3%E5%86%B3%E6%AD%A4%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BD%86%E8%AF%86%E5%88%AB%E8%BF%99%E4%BA%9B%E7%94%A8%E6%88%B7%E4%BB%8D%E9%9C%80%E6%89%8B%E5%8A%A8%E6%93%8D%E4%BD%9C%E3%80%82)

## 结论

这就是我目前的进展——我的网站已正常运行，消息已到位，用户也已到位，现在只需进行微调。希望这能帮助其他人下定决心，将 Yahoo 群组迁移到基于 Discourse 的网站，而不是继续维持现状。
