电子邮件文件格式

Contents
[ ]

EML

EML 是最广为认知和使用的电子邮件文件格式之一,主要设计为遵循 MIME(多用途互联网邮件扩展) 标准。该格式因其开放且通用的邮件存储与传输方式,在各种邮件客户端和系统中得到广泛支持。

关键特性:

  • 每个 EM L 文件封装了单个电子邮件消息及其相关元数据,如发件人、收件人、主题和时间戳。
  • EML 文件遵循 MIME 标准,支持丰富的格式、附件和嵌入元素,实现对电子邮件内容的多样化呈现。
  • 不同于像 MSG(Microsoft Outlook Message)那样与特定软件(Outlook 和 MAPI)紧密关联的专有格式,EML 文件提供了更通用的方式,兼容跨平台的各种电子邮件程序。EML 文件可在包括 Microsoft Outlook、Mozilla Thunderbird、Apple Mail 以及众多基于 Web 的邮件服务等大量邮件客户端中使用。

EML 文件格式本质上与 MIME 标准相连,MIME 是互联网消息体格式的规范。MIME 将基本的电子邮件格式扩展至支持非 ASCII 字符集的文本以及多媒体附件。

MIME 结构:

  • EML 文件以头部部分开始,包含如 From、To、Subject、Date 等信息。其他可能的头部包括 Content-Type、Content-Transfer-Encoding 等。
  • 在头部之后,呈现 EML 文件的正文。此部分可以包含纯文本、HTML 或 multipart 内容,允许在单个消息中组合不同类型的内容。
  • EML 文件可能包含以 base64 编码的附件,从而允许通过电子邮件传输二进制数据。这些附件在各自的 MIME 部分中定义,包含指示文件类型和编码方式的相应头部。

MIME 类型:

EML 文件的内容被划分为不同的 MIME 类型,以区分文本、HTML 和其他媒体类型。EML 文件中常见的 MIME 类型包括:

  • text/plain 用于纯文本消息。
  • text/html 用于 HTML 格式的消息。
  • multipart/mixed 用于包含消息内容和附件的电子邮件。
  • application/octet-stream 用于二进制文件附件。

multipart/mixed MIME 结构示例

MSG

Microsoft Outlook 消息(MSG) 是 Microsoft Outlook 使用的专有电子邮件格式,用于存储单个邮件。此类文件包含邮件内容及元数据,如发件人、收件人、主题和时间戳。它们支持丰富的格式、附件以及 Outlook 特有的功能,如标记、重要性和敏感度。

关键特性:

  • MSG 文件代表单个电子邮件消息。
  • MSG 文件与 Microsoft Outlook 关联,可由其打开。
  • MSG 文件常用于归档、备份以及在不同 Outlook 实例或其他兼容邮件客户端之间交换 Outlook 项目。

MSG 与 Microsoft Outlook 以及 消息应用程序编程接口(MAPI) 紧密相关。MAPI 是一种编程接口,允许应用程序与消息服务交互,主要是 Microsoft Exchange Server 和 Microsoft Outlook。它提供了一套用于发送、接收和管理电子邮件以及访问日历、联系人、任务等功能的函数和协议。Outlook 使用 MAPI 创建、操作和管理电子邮件。当用户在 Outlook 中撰写或接收邮件时,MAPI 负责底层与邮件服务器的通信,并提供管理消息内容所需的功能。

MSG 格式的技术基础:

MSG 文件使用 MAPI 属性 存储消息数据,这些属性定义了消息的各个方面。属性包括发件人、收件人、主题、时间戳等标准属性,以及自定义属性和扩展属性。

MAPI 属性

属性将消息组织成层次结构,顶层属性定义整体消息属性,嵌套属性表示特定组件如收件人、附件和嵌入对象。MSG 文件可能包含多个属性流,每个流包含一组相关的 MAPI 属性。这些流按照 复合文件二进制格式(CFBF) 结构化,存储标准和自定义属性。

msg 格式的结构

OFT

Outlook 文件模板(OFT) 是 Microsoft Outlook 用于创建标准化邮件的格式。与 MSG 文件不同,OFT 文件不包含实际的邮件内容,而是作为预定义格式、布局和动态内容占位符的模板。

关键特性:

  • OFT 文件通过提供针对常见场景(如新闻简报、公告或回复)的预设模板,简化了重复邮件的创建过程。
  • 通过使用 OFT 模板,组织可以确保所有外发通信在品牌、格式和信息传递上的一致性。
  • 用户可以在发送前通过添加或修改内容来自定义 OFT 模板,实现个性化消息的同时保持统一格式。

TNEF

传输中立封装格式(TNEF) 是 Microsoft Outlook 和 Microsoft Exchange Server 使用的专有电子邮件格式,用于封装可能不被标准邮件协议支持的邮件属性和富文本内容。它主要由 Microsoft 邮件客户端使用,以编码和传输富文本格式、嵌入对象以及其他专有邮件功能,确保在不同 Microsoft 邮件客户端之间发送时,复杂的邮件内容(如格式、嵌入文件和日历事件)能够保持完整。

关键特性:

  • TNEF 能封装大量 MAPI 属性、Microsoft 特有的富文本格式以及标准 MIME 或纯文本邮件无法传递的特殊属性。
  • Outlook 项目,如日历、联系人、任务、备注,可被封装在 TNEF 格式中。
  • 非 Microsoft 邮件客户端可能无法理解或正确处理 TNEF 附件,常导致恼人的 winmail.dat 文件。这通常是因为它们无法解码 TNEF 中的专有格式。

TNEF 格式的技术基础:

  • TNEF 将电子邮件内容封装为特殊的二进制附件。该附件通常携带一个 .dat 文件扩展名,最常见为 winmail.dat.
  • TNEF 数据通常关联的 MIME 类型是 application/ms-tnef.
  • TNEF 格式将消息属性的层次结构表示为平面结构,可视为顺序数据流。流中每个特定属性的典型格式包括带有数据类型信息的标识符、大小(如果类型未定义)以及数据本身。

TNEF 中消息属性的结构