Microsoft Outlook 和 Microsoft Exchange 客户端有时使用特殊的方法来打包信息以通过 Internet 发送邮件。这种方法在技术上被称为传输中性封装格式 (TNEF)。
 
TNEF 的使用通常受到 Outlook 中称为 Microsoft Outlook RTF 格式的设置的影响。RTF 格式与 TNEF 不完全相同,但它们密切相关。

TNEF 编码的邮件包含邮件的纯文本版本和“包装”着邮件原件的其他各个部分的二进制附件。在大多数情况下,该二进制附件被命名为 Winmail.dat,其中可能包含以下信息:
  • 邮件的带格式文本版本(如字体信息和颜色)。
  • OLE 对象(如嵌入的图片和嵌入的 Microsoft Office 文档)。
  • 特殊 Outlook 功能(如自定义窗体、投票按钮和会议请求)。
  • 向邮件原件添加的常规文件附件。
除了上面列出的信息,Winmail.dat 文件中还嵌入了您的个人文件夹 (.pst) 文件的路径和您的登录名。虽然此数据不明确显示给收件人,但如果收件人在二进制或文本编辑器中打开 Winmail.dat 文件进行编辑,便可以看到该路径和登录名。注意,密码信息不会显示。要确保您的 .pst 文件路径或登录名未包含在 Winmail.dat 附件中,请按照本文中的步骤发送不包含 Winmail.dat 文件的邮件。

一些 Outlook 功能要求也在使用 Outlook 的 Internet 电子邮件收件人正确理解 TNEF 编码。例如,当您通过 Internet 向某个收件人发送包含 投票按钮的邮件时,如果该收件人未启用 TNEF,将收不到 投票按钮。但是,如果发送包含常规文件附件的邮件,则不需要 TNEF。如果向不使用 Outlook 或 Exchange 客户端的收件人发送包含文件附件的邮件,应该手动选择使用不需要 TNEF 的电子邮件格式(如纯文本)。如果发件人不发送 TNEF 邮件,收件人就能够正常查看和保存附件。

发送和接收注意事项

不能识别 TNEF 的电子邮件客户端接收包含 TNEF 信息的邮件时,会出现以下三种常见结果:
  • 收到邮件的纯文本版本,其中包含名为 Winmail.dat 的附件。打开 Winmail.dat 附件时,其中没有包含任何有用信息,因为它是特殊的 TNEF 格式。

    注意:一些用户已经报告收到 Win.dat 附件。
  • 收到邮件的纯文本版本,其中包含具有 ATT00008.dat 或 ATT00005.eml 等一般名称的附件。在这种情况下,客户端无法识别邮件的 TNEF 部分,而且无法识别 Winmail.dat 文件名,因此会创建一个文件名来存放 TNEF 信息。
  • 收到了邮件的纯文本版本,但客户端忽略了 Winmail.dat 附件。这是在 Microsoft Outlook Express 中发现的行为。Outlook Express 不能识别 TNEF,但是它知道忽略 TNEF 信息。结果会得到纯文本邮件。
除了接收客户端外,电子邮件服务器还经常在传送邮件时删除其中的 TNEF 信息。如果启用删除 TNEF 的服务器选项,客户端将总是收到邮件的纯文本版本。Exchange Server 就是一种具有删除邮件中 TNEF 的选项的电子邮件服务器程序。

邮件编码

用于对邮件进行编码的多部分 Internet 邮件扩展(Multipart Internet Mail Extensions,简称 MIME)和 UUENCODE 等 Internet 标准是独立于 TNEF 使用的。TNEF 可作为类型为“application/ms-tnef”的 MIME 正文部分存在于 MIME 编码的邮件中,或作为名为 Winmail.dat 的附件存在于 UUENCODED 邮件中。

通过使用 MIME 发送 TNEF 邮件时,将向邮件中添加类似以下内容的条目:
------ =_NextPart_000_01BA6275.348C1000
Content-Type:application/ms-tnef
Content-Transfer-Encoding:base64
 
eJ8+IisSAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAAAAEAAQ
ABBJAGAEgBAAABAAAADAAAAAMAADACAAAACwAPDgAAAAACAf8PAQAAAHQAAAAAAAAAtTvC
   [. . .]
					
但是,如果使用 UUENCODE 发送 TNEF 邮件,则将在邮件的底部添加类似以下内容的信息:
begin 600 WINMAIL.DAT
M>)\^(C<.`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$%@ ,`
M#@```,L'" `$``<`)P`O``4`0 $!"8 !`"$````S,S5$,C,W,#%"0T-#13$
   [. . .]
					
无论是哪种情况,TNEF 编码都会发送给收件人,但接收客户端必须能够识别该编码才能正确显示封装的信息。

如何控制邮件中的 TNEF

可以通过三种方法控制 TNEF:
  • 全局 - 如果将默认电子邮件格式更改为纯文本或超文本标记语言 (HTML),则有助于确保仅在某种 Outlook 功能需要 TNEF 时才发送 TNEF。
  • 每个收件人 - 可以在收件人的电子邮件地址中指定不发送 TNEF,以便收件人总是收到邮件的纯文本版本。
  • 每封邮件 - 撰写新邮件或答复收到的邮件时使用此方法。

如何指定电子邮件格式

全局更改
使用以下步骤关闭 TNEF:
  1. 工具菜单上,单击选项,然后单击邮件格式选项卡。
  2. 在“以该邮件格式发送”框中,单击纯文本HTML,然后单击确定
使用以下步骤以 TNEF 格式发送邮件:
  1. 工具菜单上,单击选项,然后单击邮件格式选项卡。
  2. 在“以该邮件格式发送”框中,单击以选中 Microsoft Outlook RTF 格式,然后单击确定
每个收件人更改
在“联系人”文件夹中

使用以下步骤关闭 TNEF:
  1. 在“联系人”文件夹中找到收件人的记录。
  2. 双击收件人的电子邮件地址。
  3. Internet 格式框中选择“只发送纯文本”。
使用以下步骤以 TNEF 格式发送邮件:
  1. 在“联系人”文件夹中打开收件人的记录。
  2. 双击收件人的电子邮件地址。
  3. 单击 Internet 格式框中的“使用 Outlook RTF 格式发送”。
在“个人通讯簿”中

使用以下步骤关闭 TNEF:
  1. 在“个人通讯簿”中找到收件人。
  2. 双击收件人的电子邮件地址。
  3. 单击以清除“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框,然后单击确定
使用以下步骤以 TNEF 格式发送邮件:
  1. 在“个人通讯簿”中找到收件人。
  2. 双击收件人的电子邮件地址。
  3. 单击以选中“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框,然后单击确定
每封邮件更改
使用以下步骤关闭 TNEF。
  1. “新建”一封邮件或在最近收到的邮件上单击答复
  2. 邮件格式工具栏上,单击以从下拉菜单中选择纯文本HTML
使用以下步骤打开 TNEF。
  1. “新建”一封邮件或在最近收到的邮件上单击答复
  2. 邮件格式工具栏上,单击以从下拉菜单中选择 RTF