0

如何从 Thunderbird 的global-messages-db.sqlite恢复丢失的电子邮件?

在将一些电子邮件从 Imap 迁移到本地存储时,我的 PC 内核出现了恐慌。结果,该迁移没有完成对磁盘的写入。

由于迁移失败,许多电子邮件存在于global-messages-db.sqlite中,但不存在于相应的 mbox 文件中(例如,不在 Mail/username@hostname.tld中)。我通过sqlitebrowser验证了电子邮件存在于global-messages-db.sqlite。事实上,我已经成功地手动提取了一些关键消息的内容。

启动时,Thunderbird 会从在 mbox 文件中找不到的global-messages-db.sqlite电子邮件中剔除。如果我用包含我丢失的电子邮件的版本替换活动的global-messages-db.sqlite,Thunderbird 会忽略并最终删除那些丢失的电子邮件。

如果我仍然可以访问 Imap 帐户,这将是一个微不足道的困境。不幸的是,我没有。

4

1 回答 1

0

编写转换器脚本很简单

我会快速编写一个 gloda->mbox 转换器,这可能是您通往成功的最快途径。您已经发现了 gloda 数据库的结构。现在,只需在 node.js 中编写一个小 JavaScript 即可打开一个 sqlite 数据库,遍历文件夹,然后是每个文件夹中的消息,并为每个文件夹编写一个 mbox 文件。mbox 文件格式很简单(只需注意“发件人”)。完成后,您可以通过覆盖现有的空本地文件夹在 Thunderbird 中打开这些 mbox 文件。

PS 提醒一下:进行备份。特别是。在进行此类迁移操作之前,还要定期进行。

于 2018-10-14T11:14:24.803 回答