在以下示例中,我使用 Thunderbird 作为 IMAP 和 POP3 客户端,因为我比 Outlook 及其同事更了解它。
说了这么多:
1) 转移到自己的 IMAP 服务器
对于这种情况,这是我最喜欢的。无论如何,我不希望我的提供商保留消息...
因此,您可以设置自己的 IMAP 服务器。根据您的需要,这可能需要知识(例如,在 Linux 下设置我最喜欢的 Cyrus Imapd)或者可能非常简单(例如,在 Windows 下设置 hMailServer,我也可以在我的一个客户端上非常可靠地运行它100 GB 的消息、数百个嵌套文件夹和超过 100.000 条消息)。
有几种方法可以实现您想要的,我将尝试展示其中的一些。
请注意,某些方法(如果不是全部)涉及使用电子邮件客户端软件,但使用哪一种方法是暂时的,因为您以后可以重新导入数据或使用我知道的任何其他电子邮件软件处理数据关于,甚至根本没有电子邮件客户端。
在以下示例中,我使用 Thunderbird 作为 IMAP 和 POP3 客户端,因为我比 Outlook 及其同事更了解它。
说了这么多:
1) 转移到自己的 IMAP 服务器
对于这种情况,这是我最喜欢的。无论如何,我不希望我的提供商保留消息...
因此,您可以设置自己的 IMAP 服务器。根据您的需要,这可能需要知识(例如,在 Linux 下设置我最喜欢的 Cyrus Imapd)或者可能非常简单(例如,在 Windows 下设置 hMailServer,我也可以在我的一个客户端上非常可靠地运行它100 GB 的消息、数百个嵌套文件夹和超过 100.000 条消息)。
然后将 Thunderbird 连接到您当前的服务器和刚刚设置的新服务器,然后将所有文件夹和消息从旧服务器复制到新服务器。这可能有点乏味,因为 Thunderbird 有时会拒绝在不同的名称空间/服务器之间复制文件夹结构,但如果您没有很多嵌套文件夹,这是最简单的方法。
如果您有很多嵌套文件夹,您可能希望使用 Outlook 来完成这部分工作。我以前使用过它,据我所知,递归复制大型文件夹结构没有问题。[题外话:这是 Outlook 远远优于 Thunderbird 的一个关键点,但我会坚持使用 Thunderbird,因为它还有其他优势]。
如果您不想使用电子邮件客户端,可以使用专门的脚本或命令行工具;看看
imapsync
,例如。但请注意:它们比普通的电子邮件客户端更难使用。完成此操作后,您已将所有 IMAP 消息复制到您自己的 IMAP 服务器上,该服务器完全由您自己控制,并且您可以将每个能够 IMAP 的电子邮件客户端软件连接到该服务器并处理您的旧消息。
2) 转移到 Thunderbird 的“本地文件夹”
如果您曾经使用过 Thunderbird,您可能已经注意到帐户列表中有一个名为“本地文件夹”的部分。文件夹结构和其中包含的消息通常由所谓
mbox
格式的文件支持。这些文件通常位于 Thunderbird 配置文件中,而 Thunderbird 配置文件通常位于您的 Windows 用户配置文件目录中。因此,您可以将 Thunderbird 连接到您当前的 IMAP 服务器并将所有文件夹和消息复制到“本地文件夹”中。然后,您将
mbox
在本地磁盘上拥有包含所有文件夹和消息的文件。我知道的
mbox
大多数其他电子邮件客户端都可以理解文件格式,因此您可以将这些文件导入此类客户端。此外,
mbox
它是面向文本的,因此理论上您可以通过在文本编辑器中打开这些文件来直接使用它们。这很好,但实际上并没有任何意义,因为您可能不喜欢在 HTML 标记之间查找实际的消息文本,或者将附件从 base64 解码为图片以查看它们,等等。另外,在 中mbox
,一个文件夹的所有消息,包括附件,都被塞进一个大文件中。但是,如果您希望所有消息都保存在一个或多个大
mbox
文件中,您可以轻松地与您的用户配置文件一起备份,并且如果您准备好使用支持的众多软件客户端之一来处理它们,这很方便它。3)同步和离线工作
我知道的每个 IMAP 客户端(包括 Thunderbird)都提供将 IMAP 消息同步到本地磁盘,这样搜索变得更快,即使您与 IMAP 服务器断开连接也可以处理您的消息。
在同步过程中,所有文件夹和邮件都将下载到您的本地磁盘,您可以正常使用它们,即使在您关闭当前 IMAP 服务器很久之后也是如此。不过也有陷阱:
首先,根据您的软件,您可能必须告诉软件您要离线使用哪些文件夹。您必须注意这一点,因为如果您忘记在其中包含一个文件夹,则在您关闭当前 IMAP 服务器后,相应的消息将会丢失。
其次,我从未尝试过,也不知道当您首先让消息与当前 IMAP 服务器同步,然后脱机工作并关闭该服务器,然后将相应的帐户重新连接到另一个 IMAP 服务器时会发生什么。
因此,如果您决定这样做,您最终应该确保包含同步邮件存档的帐户永远不会连接到另一个 IMAP 服务器。
该方法的另一个缺点是同步消息不一定以其他电子邮件客户端可以理解的格式存储。我真的不确定,但我假设您需要与消息同步的同一个客户端才能使用它们。
我总结一下,我不鼓励这种方法。
4)将每条消息单独存储在普通文件系统中
有一种文件格式用于存储单个电子邮件消息;令人惊讶的是,文件扩展名为
.eml
. 您可以轻松地从 Thunderbird 中“导出”所有消息,只需将它们从程序窗口拖到 Windows 文件资源管理器中的任意文件夹中即可。使用 Thunderbird,一次选择多条消息并将它们拖到一个文件夹中可以正常工作 - 每条消息都变成一个单独的.eml
文件。为了澄清,这些
.eml
文件也是文本文件(如mbox
文件),因此您可以使用任何文本编辑器打开它们。与.mbox
文件一样,这是一个坏主意(特殊用途除外),因为您最终必须从 HTML 文档中选择实际的消息文本,如果标题行包含特殊字符(如德语变音符号),则解码标题行,解码附件等.但是,
.eml
文件始终包含完整的消息,包括附件和元数据。另一个好处是您可以非常轻松地将它们重新导入其他电子邮件客户端,至少在大多数客户端中:对于 Thunderbird,只需将它们从 Windows 文件资源管理器拖到程序窗口中,它们就会变成正常的消息再次,包括附件,并保留所有元数据信息/标题(接收时间等)。
并非每个邮件客户端都支持直接拖放
.eml
消息,但有大量的插件、脚本和帮助程序,例如 Outlook。因此,如果您真的坚持将电子邮件和附件分别保存在文件系统中(我个人不会这样做),那将是一种可能的方式:
旁注:在 Thunderbird 中,您甚至可以打开将每个帐户(同步的 IMAP、POP3、本地文件夹)中的每条消息直接保存为
.eml
,但我强烈建议您不要这样做,因为这在某种程度上仍然是实验性的。有关更多信息,请考虑以下内容:https: //support.mozilla.org/en-US/kb/maildir-thunderbird
5) 通过 POP3 下载
我理解您对这种方法的担忧,但它也有优势。就个人而言,我更喜欢移动文件夹和消息而不是复制它们,因为当您复制嵌套在数千个文件夹中的数十万条消息时,很难验证您是否确实复制了所有文件夹中的所有消息.
相反,当我移动文件夹和消息时,即使进程停止,我也可以很容易地看到我是否丢失了一些东西(在这种情况下,它仍然会在旧服务器上)或没有(在这种情况下,不会有任何消息留在旧服务器上)。
请注意,大多数电子邮件客户端显示的“消息数量”并不可靠,因为您永远无法知道客户端下载了多少消息(标头),尤其是当各个文件夹最近以高速率填充消息时,正如复制/移动时发生的那样。所以你真的不应该使用那个“消息数量”来检查你的旧服务器副本是否完整。
话虽如此,如果您使用 Thunderbird 通过 POP3 从旧服务器获取消息,这些消息也将由位于 Windows 用户配置文件中的 Thunderbird 配置文件中的文件支持,因此您可以很好地将其称为完整下载。
我不确定 Thunderbird 存储这些消息的格式(可能是
mbox
,但这只是一个未经证实的猜测),因此很可能您无法将该存档直接导入其他电子邮件客户端。另一方面,我绝对肯定有很多实用程序和转换器可以将 POP3 存档导入您想要使用的任何其他电子邮件软件,Thunderbird 本身就是其中的主要选择:没有什么可以阻止您复制或移动POP3 帐户中的所有邮件到另一个 IMAP 帐户,然后您可以从任何其他支持 IMAP 的电子邮件客户端连接。同样,您可以轻松地将所有邮件从您的 POP3 帐户复制/移动到如上所述的“本地文件夹”部分,并以
mbox
格式存储它们。最后,Thunderbird 有几个扩展处理数据导出和导入(包括帐户信息、消息等)。但是,我不认识他们,所以我不知道他们有多可靠。我从未使用过它们,因为有很多更好的方法可以复制或移动邮件存档。
我希望上面显示的方法之一适合您...