简介
本文档介绍UNIX邮箱(mbox)格式及其在思科邮件安全设备(ESA)上的应用。
前提条件和重要注意事项
- 确保您了解ESA上的AsyncOS在存档邮件时以及在邮件过滤器的
log()操作中使用UNIX mbox格式。
- mbox格式基于ASCII,而不是二进制。
- mbox格式有多种变体,这会使解析复杂化。
- AsyncOS不使用“Content-Length”信头方法或插入
Content-Length字段。
UNIX mbox格式概述
当邮件通过邮件过滤器操作进行存档或记录时,AsyncOS会使用UNIX mbox格式。“Archive Message”是ESA上的IronPort反垃圾邮件(IPAS)、防病毒(Sophos和McAfee)、高级恶意软件防护(AMP)和灰色邮件等功能的附加配置选项。
mbox格式是一种纯文本(ASCII)格式,存储在一个文件中串联的一个或多个电子邮件。消息使用特定模式分离,从而能够提取单个消息。格式匹配在符合RFC 2821的邮件网关之间传输的邮件。
mbox文件的结构
- 消息分隔符:每条消息都以以“From ”开头的行开头(ASCII字符F、r、o、m和空格)。
- “自”后面的字段:接下来的字段如下:
- 信封发件人:可以是真实邮箱、破折号(-
)或其他字符串,具体取决于生成mbox的应用程序。
- 日期:由ESA以标准UNIX asctime()格式插入,长度始终为24个字符。
- 可选数据:某些mbox变体会在日期后添加更多字段。
- 现场分离:这些字段用单个空格分隔。
- 电子邮件内容:遵循标准RFC 2822格式的分隔行(标题、空白行、正文)。
示例:Mbox格式的单条消息
From Adam@Outside.COM Sun Oct 17 12:03:20 2004
Received: from mail.outside.com (192.35.195.200)
by smtp.alpha.com with ESMTP; 17 Oct 2004 12:03:20 -0700
X-IronPort-AV: i="3.85,147,1094454000";
v="EICAR-AV-Test'0'v";
d="scan'208"; a="86:adNrHT37924848"
X-IronPort-RCPT-TO: alan@mail.example.com
From: Adam@Outside.COM
To: Alan Alpha <Alan@mail.example.COM>
Subject: Exercise 7a Anti-Virus Scanning
Reply-To: Adam Alpha <adam@outside.com>
Date: Sun, 17 Oct 2004 12:02:39 -0700
MIME-version: 1.0
Content-type: multipart/mixed; boundary="IronPort"
--IronPort
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7bit
Blah blah blah blah blah
Blah blah blah blah blah
Blah blah blah blah blah
...
--IronPort
Content-type: text/plain
Content-transfer-encoding: 7bit
Content-disposition: inline
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*">X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--IronPort--
消息分离和“发件人”行处理
- 由于许多应用程序生成mbox文件,“From”分隔行的格式可能会有所不同。但是,您可以始终使用“发件人”作为可靠的消息边界。
- 分离器后面大约有20个已知字段变体,使得自动解析变得非常困难。
- 为防止混淆,邮件正文中以“From”开头的行始终以单个“>”作为前缀。 AsyncOS日志文件会将“>”预置到任何行,该行以一个或多个“>”字符开头,后跟“From”。
示例:在mbox文件中报价
From jtrumbo@example1.com Sun Dec 12 12:27:33 2004
X-IronPort-RCPT-TO: trumbo@example1.com
From: jtrumbo@example1.com
To: trumbo@example2.com
Subject: Quote this, if you dare
Date: Sun, 12 Dec 2004 12:28:00 -0700
The following line is just From
>From A From Line
The following line has quoted >From
>>From A >From Line
The following line has many >>>>From
>>>>>From This line has 4 > characters before From
And this is the last line
消息结束和解析
- 邮件的结尾通常用空白行标记。AsyncOS始终包含此行,但并非所有实现都包含此行。
- 在分析时,将新的“从”分隔行的开始或文件的结尾视为消息的结尾。删除空白行(如果有)。
- 某些变体使用“内容长度”字段来标记消息边界,但AsyncOS不使用此方法。
要点总结
- AsyncOS使用标准的UNIX mbox格式来存档和记录消息。
- mbox格式为ASCII,连接消息,并使用“自”行作为分隔符。
- AsyncOS可确保以“From”开头的邮件中的行使用“>”进行报价,以避免解析错误。
- 解析mbox文件需要处理许多变体,尤其是使用消息分隔符行。
- 不要期望或依赖AsyncOS生成的mbox文件中的“Content-Length”字段。