我将首先描述这个问题。
我在 Outlook 2010 中配置了一个电子邮件帐户,该帐户连接到 Exchange 服务器。我将电子邮件本地备份到 PST 文件中。(现在我不再有权访问 Exchange 帐户)
接下来我想导出这些存档的邮件以在 Thunderbird 10.x 中使用(将它们放在本地文件夹以 TB 为单位)。PST 文件大小约为 500MB。
我尝试了不同的方法:
Import > Mail > Outlook
我的第一次尝试是直接从 TB 内部使用该功能,因为建议在这里。- 在另一次尝试中,我将电子邮件“复制”(拖放)到 Outlook 和 Thunderbird 中配置的第三个常用 IMAP 电子邮件(实际上是本地运行的邮件服务器在 127.0.0.1 界面上,我将它们拉入 TB 内的本地文件夹中。
- 我甚至尝试使用Outlook Express作为中间步骤(Outlook -> Outlook Express -> Thunderbird)。
以上所有方法都失败了,因为导出时电子邮件没有保留。我遇到了许多问题,仅举几例:
- 如果我们的
Content-Type: multipart/alternative;
电子邮件同时具有 html/text 格式,那么只会导出 html 格式。 - 有时会使用与原始编码不同的编码(base64、quoted-printable 等)
- 历史路线(
Received:
标题)完全消失了 - 地址有时会丢失,只保留显示名称。例如: 转换为:
To: "First Last" <[email protected]>
To: "First Last"
- 有时整个发送者/接收者的地址会丢失,只需从相反的字段复制即可
- 日期字段时区更改为当前机器的时区(没什么大不了的)
- 所有其他标题都以不同的方式添加/删除/重写......
所以我的问题是如何将 PST 文件中的电子邮件导出为 Thunderbird 的 EML/MBOX 文本格式,并以一种干净的方式保留所有原始标题?
我知道 PST 文件的规范现在是公开的(对吧?),所以我希望有人能为这项任务开发一个像样的工具。在我看来,如果我们能以某种方式访问 Outlook 中的原始电子邮件(比如 TB 中的查看源代码),那么将它们写入文本文件应该不难!!
顺便说一句:在Outlook Express我们可以直接选择File > Save As
并以 .eml 格式导出,但 Outlook 2010 只有(专有?)二进制 .msg 格式选项(或者我遗漏了什么)...
下面是一个示例,展示了电子邮件是如何被篡改的——名字和其他内容已被更改,以保护无辜者:)
Outlook 中的原始电子邮件(在新窗口中打开电子邮件,转到File > Properties
并检查“Internet 标题”文本字段,尽管有时它只是空白的!)
Received: from mail.server (192.168.2.1)
by s2.server (192.168.5.1) with Microsoft SMTP Server id 14.0.702.0;
Thu, 3 Feb 2011 12:51:26 -0500
Received: from mail.server (mail.server [192.168.6.1])
by mail.server (8.14.5.Beta0/8.14.5.Beta0) with ESMTP id p00000000000002;
Thu, 3 Feb 2011 12:51:26 -0500
Received: from smtp.server (smtp.server [192.168.4.1])
by mail.server (8.14.5.Beta0/8.14.5.Beta0) with ESMTP id p00000000000001
for <list@server>; Thu, 3 Feb 2011 12:51:16 -0500
Received: from s3.server (s4.server [192.168.3.1])
by smtp.server (8.14.4/8.14.4) with ESMTP id p0000000000000
for <list@server>; Thu, 3 Feb 2011 12:51:16 -0500 (envelope-from sender@server)
Received: from s1.server ([ffff::0000:000:0000:0000])
by s3.server ([ffff::1111:000:0000:0000%12]) with mapi;
Thu, 3 Feb 2011 12:51:15 -0500
From: sender@server
Subject: test
Thread-Topic: test
Thread-Index: A0000000011112222333344445555g==
Date: Thu, 3 Feb 2011 12:51:15 -0500
Message-ID: <[email protected]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
To: undisclosed-recipients:;
Return-Path: list-request@server
X-MS-Exchange-Organization-AuthSource: s2.server
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-AVStamp-Mailbox: MSFTFF;1;0;0 0 0
X-MS-Exchange-Organization-SCL: -1
将电子邮件导入 Thunderbird(只需按Ctrl+U即可查看源代码)
From: sender@server
Subject: test
Thread-Index: A9999888877776666555544443333g==
Date: Thu, 3 Feb 2011 12:51:15 -0500
Message-ID: <[email protected]>
acceptlanguage: en-US
Content-Language: en-us
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
To: sender@server
X-Mailer: Microsoft Outlook 14.0
x-ms-exchange-organization-authsource: s2.server
x-ms-exchange-organization-authas: Anonymous
X-OlkEid: 00112233445566778899AABBCCDDEEFF00112233
答案1
唯一一个实际上重建了标题是 OutlookFreeware.com 的将邮件导出为 EML 格式实用性。它自由的并且易于使用。我推荐它,因为我是它的开发人员之一。
答案2
mozillaZine 文章导入 .pst 文件处理该问题。
您需要在同一台计算机上安装 Thunderbird 和 Outlook,同时将 Outlook 定义为默认电子邮件客户端,然后Tools -> Import -> Mail
在 Thunderbird 中使用。
由于您已经看过上述文章,请告诉我们为什么它对您不起作用。
您还可以尝试Thunderbird PST 导入插件。
答案3
另一个选择是创建一个 GMAIL 帐户。在您的 GMAIL 帐户中启用 IMAP,然后配置 Outlook 以使用 IMAP GMAIL 帐户。将您的文件从 PST 复制到 Outlook 中的 IMAP GMAIL 帐户。然后在 Thunderbird 中配置您的 Google IMAP 帐户并将文件复制到您的本地存储。
答案4
我发现的最简单的解决方案是邮件商店,免费供家庭使用:
您安装它并将您的电子邮件备份为 eml,然后您可以将其导入到任何电子邮件客户端。