如果用编辑器打开 mbox 文件,每条消息似乎都以从接下来是一个空格,然后是地址和日期。这是 mbox 语法的一部分还是电子邮件格式规范的一部分RFC 2822?根据有关 mbox 的维基百科文章,没有 mbox RFC。不是没有冒号吗从与 UUCP 有关吗?
我必须解析一些 mbox,我想知道如何处理无冒号从。
答案1
我对 mbox 格式进行了一些深入研究。简短的回答似乎是,虽然没有 RFC 指定 mbox 格式,但早在 20 世纪 70 年代中期,From+space 就被用来分隔在一个文本文件中串在一起的不同邮件消息。
贝尔实验室的第一版Unix(1971年11月)中有一个mail命令,但源代码已经丢失,所以我不确定它是如何工作的。 mbox 出现在第三版。的源代码为Unix 第五版(1974 年 6 月起)已恢复,可以看到From
+␣ 标记已用于分隔消息。语法是 From、空格、不带空格的名称和 ctime 字符串(24 个字符的人类可读时间戳)。
+␣行From
是由发送过程引入的,该行将其添加到发件人键入的消息之前,然后将其附加到收件人的邮箱。这种做法随后被成功的邮件递送程序所遵循,包括曾经流行的发送邮件起源于 Unix 的 Berkeley 变体。
Berkeley Unix 的早期版本是贝尔实验室版本的补充。 1979 年 3 月的第二个伯克利软件发行版已经有了一个复杂的邮件程序,我们可以看到后来形成 sendmail 的文件结构的开始。代码在head.c
标识From
+␣ 标记并引入一些修改:名称必须为 17 个字符或更少(这在 sendmail 时代没有保留),并且在日期末尾和换行符之间可以有更多文本(这使得)。
sendmail 的后继者,例如qmail,已经正式化了 mbox 的语法,包括处理邮件消息中以From
+␣ 开头的行,这个问题导致多种 mbox 格式。