2

我有一个特殊的 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”分隔符。

4

1 回答 1

0

最初我写的是 \n\nFrom me...\n" 为了确保每个 From 前面都有所需的空白行...我认为最初的空白行是 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 对结果格式感到满意。所以我现在觉得我很好。

于 2017-09-02T20:11:18.023 回答