mime将电子邮件提取回mbox格式

时间:2017-09-01 22:11:14

标签: perl mime mime-message mbox

我有一个特殊的mbox文件,其中mbox中的每条消息都有一条或多条附加消息。这些是作为附件转发而创建的。我有一个使用MIME::ToolsMIME::Parser来解析该mbox文件的perl脚本。它可以将这些文件传输到另一个程序(spamassassin),或将它们保存为单独的文本文件,这正是我正在做的事情。我相信这些单独的文件是RFC822格式(不是正面的)。每个文本文件都不以“From:...”开头,因此我不能简单地将它们重新组合在一起。

我需要一种方法将这些提取的文件重新组合成mbox(mbxcl2)格式。是否有可用于重新组合这些提取文件的工具或脚本?

我尝试让我的脚本在解析时将它们输出到一个文件中,并使用From me\@myserver.com Fri Sep 1 15:18:53 2017\n。这足以在服务器上查看mailx,但Dovecot抱怨:dovecot: imap(me): Error: Syncing INBOX failed: Mailbox isn't a valid mbox file

所以我显然需要做的不仅仅是添加“From”分隔符。

1 个答案:

答案 0 :(得分:0)

最初我正在写作\ n \ n从我... \ n“为了确保每个人面前所需的空白行......我认为最初的空白行是Dovecot不满意的。

我重写了它,因为原始的解析脚本打破了消息附件,我在下面添加了2行(在写入各个消息的行之前和之后)。所以现在它并没有一句空白。

print OUT "From me\@myserver.com  Fri Sep  1 15:18:53 2017\n";
$ent->bodyhandle->print(\*OUT);
print OUT "\n\n";

OUT是生成的mbx文件。由于原始邮件具有内容长度标题,因此至少Dovecot和Outlook对结果格式感到满意。所以我觉得我现在很好。