我正在考虑导入几千个Thunderbird文件夹的想法,当然每个文件夹包含许多电子邮件,作为一组Emacs的Gnus邮件组。每个邮件组名称都将从文件夹层次结构派生。由于数量,工作将相当繁琐,所以如果可能的话,我会自动进行大量的导入。
在可用的后端中, nnfolder 似乎是最有希望的。我认为从Gnus中填充邮件组会更好。否则,我必须彻底了解 nnfolder 格式,这可能需要多次迭代才能真正做到正确。此外,随着电子邮件继续流入,迭代可能变得难以正确组织而不会丢失任何东西。
我想我必须 respool 一切,在所选邮件组是Thunderbird起源函数的约束下,覆盖标准Gnus选择机制。我过去做了一些Gnus编码,但由于我没有接触Emacs十几年,所以它都非常生疏。关于如何尽可能高效,快速地完成这项任务,我有点迷茫。所以我的问题是:你将如何处理它?还是有一些聪明的Gnus隐藏的角落,我应该更深入地探索? : - )
弗朗索瓦
P.S。 在我写完这个问题之后,我发现Gnus对这个目标有很好的帮助作用。我们的想法是首先复制~/Mail
目录中的所有Thunderbird文件夹文件,因为它们用于内容,但已正确重命名。完成此操作后,M-x nnfolder-generate-active-file
会立即为每个复制的文件夹执行操作,编辑内容,保留~
备份,生成NOV数据,创建一个邮件组,当然还要调整~/Mail/active
文件。
要复制~/.thunderbird/LOGIN/Mail/Local Folders/
目录下的文件夹,我编写了一个小的Python脚本。它忽略所有.msf
个文件,并在.sbd
个目录中递归。相对于Local Folders/
的文件夹路径名称将其所有.sbd/
字符串转换为生成邮件组名称的句点,还可以降低大小写,将空格和下划线转换为破折号,并适当地处理其他特殊字符。特别是,非ASCII字符处理不当, nnfolder 在这里和那里混淆了UTF-8和ISO-8859-1。该脚本还必须跳过msgfilterrules.dat
,可能会drafts
,junk
等等。
我注意到需要注意的两个细节:
(setq nnmail-use-long-file-names t)
需要~/.emacs
。批量转换中止,说它无法解密其中一条消息。我将有问题的文件夹移开了,然后,冗长的操作成功了。