论文部分内容阅读
【摘 要】本文通过Winmail.dat问题的提出,介绍了邮件MIME编码和Exchange邮件TNEF编码,并介绍了通过修改发送方和接收方的设置,解决此问题。
【关键词】Winmail.dat MIME TNEF 编码 格式 解码
一、前言
我们在使用Lotus Notes的时候,会发现有附件名字为Winmail.dat的邮件,这样的邮件在Lotus Notes客户端是不能打开的。检查此邮件的文档属性,可以看到此邮件发送的内容类型是:application/ms-tnef; name=”winmail.dat”。
出现这种问题的原因是发件人使用的是Exchange发送邮件,没有开启MIME编码。Winmail.dat是把无编码格式的附件加载到邮件里。
二、MIME编码
多用途互联网邮件扩展(Multipurpose Intemet Mail Extensions,MIME)是当前广泛应用的一种电子邮件技术规范。在MIME出现之前,互联网使用RFC822作为电子邮件的文本格式标准。但是RFC822具有一定的局限性:它只能发送基本的ASCII码文本信息,邮件内容如果包含语音、图像等多媒体数据以及其他二进制数据文件,实现起来就非常困难。MIME在RFC822的基础上对电子邮件规范作了大量的扩展,引入了新的格式规范和编码方式,弥补其缺陷。不仅可以用来传输8bit的字符,也可以用来传送二进制的文件,如邮件附件中的图像、音频等信息,而且扩展了很多基于MIME 的应用。
从编码方式来说,MIME定义了两种编码方式:Base64和可打印编码。Base64编码技术用于编码任意的2进制信息。所以可以用Base64编码方式传输图像、声音、视频文件等信息。可打印编码是把一个8bit的字符用两个16进制数值表示,然后在前面加“=”。根据输入的字符串或字节范围进行编码,若是不需编码的字符,直接输出。若需要编码,则先输出’=’,后面跟着以2个字符表示的十六进制字节值。
通常,电子邮件是由消息头和消息体组成。对照RCF822中的定义,MIME在Internet E-mail报文中增加了5个新的头域,即:MIME-Version;Content-Type;Content-Transfer-Encoding;Content-ID;Content-Description。邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。每条信息称为一个域,由域名后加“:”和信息内容构成,可以是一行,较长的也可以占用多行。域的首行必须“顶头”写, 即左边不能有空白字符(空格和制表符);续行则必须以空白字符打头, 且第一个空白字符不是信息本身固有的, 解码时要过滤掉。邮件体包含邮件的内容, 他的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本) 和text/html (超文本)。
三、Exchange邮件编码
上面的问题中邮件类型为:application/ms-tnef,这种类型是由Exchange邮件发送的。Exchange Server使用传输中性封装格式 (TNEF) 将MAPI邮件转换为 RFC 822格式。TNEF以application/ms-tnef 类型的MIME附件的形式出现在邮件中。该附件的名称为Winmail.dat。它包含完整的邮件内容以及所有附加文件。只有 MAPI客户端(如Outlook)能够对 Winmail.dat 附件进行解码。非MAPI客户端无法对TNEF进行解码,并且可能将 Winmail.dat 显示为典型但无用的文件。
TNEF编码的邮件包含邮件的纯文本版本以及一个二进制附件,该附件“包装”着原始邮件的其他各部分。多数情况下,该二进制附件将被命名为 Winmail.dat,并可能包括:
(一)该邮件的带格式文本版本(字体信息、颜色等)
(二)OLE 对象(嵌入的图片、嵌入的 Office 文档等)
(三)特殊的 Outlook 功能(自定义表格、投票按钮、会议请求等)
(四)添加到原始邮件的常规文件附件
当不识别TNEF的邮件客户端收到包含TNEF信息的邮件时,有三种常见结果:
1.收到了该邮件的纯文本版本,且包含名为Winmail.dat 的附件。但由于该 Winmail.dat附件为特殊的TNEF格式,因而在打开时没有任何有用的信息。
2.收到了该邮件的纯文本版本,且包含一个按普通方法命名的附件(如 ATT00008.dat 或 ATT00005.eml)。在这种情况下,客户端无法识别邮件的 TNEF 部分,并且无法识别 Winmail.dat 文件名,因此客户端创建了一个文件名来保存 TNEF 信息。
3.收到了该邮件的纯文本版本,但客户端忽略了Winmail.dat附件。这是 Microsoft Outlook Express中存在的情况。尽管Outlook Express不识别TNEF,但它知道要忽略TNEF信息。结果便得到一个纯文本邮件。
四、解决方法
(一)邮件发送方解决方法
TNEF的使用通常受到Outlook中称为“Microsoft Outlook RTF格式”的设置的影响。RTF格式和TNEF并不完全相同,但是它们之间有着密切关系。
可以通过控制是否以RTF格式发送邮件来解决这类问题。
创建自定义收件人:
当管理员使用 Microsoft Exchange Administrator 程序創建自定义收件人时,请单击清除“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框。 修改现有的 Microsoft Exchange 和自定义收件人:
管理员可以通过单击清除收件人属性的高级属性页中的 MAPI 收件人复选框,防止现有的用户帐户(Microsoft Exchange 用户或自定义收件人)发送 RTF 信息。管理员可以通过单击收件人姓名,然后单击文件菜单上的属性,查看收件人的属性。
个人通讯簿中的地址:
最终用户可以通过单击清除个人通讯簿 (PAB) 中 Internet 地址的 SMTP - 地址属性页中的“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框,修改个人通讯簿 (PAB) 中的 Internet 地址以防止发送 RTF 信息。要获取 PAB 条目的属性,请单击该条目,然后单击文件菜单上的属性。
配置 Internet Mail Connector (IMC):
管理员可以使用 RTF 选项以下列方式配置 IMC:
1.打开 Internet Mail Connector 属性页。
2.单击常规选项卡。
“发送 Microsoft Exchange RTF 信息”列表框控制 RTF 数据的发送。有三个值可供选择:
如果将该值设置为用户,则使用收件人属性来决定是否发送 RTF 信息。
如果将该值设置为总是,则无论收件人属性是什么,总是发送 RTF 信息。
如果将该值设置为从不,则永远不会发送 RTF 信息。
管理员也可以在每个域的基础上配置发送 RTF 信息的选项。要定义电子邮件域和该域的邮件设置,请单击 Internet 邮件选项卡中的电子邮件域按钮。
(二)邮件接收方解决方法:
1.接收方服务器:
早一点儿的Domino服务器是不能对Winmail.dat進行解码的,但是在6.5版本以后,domino已经提供了对Winmail.dat的附件进行解码的功能。我们使用的Domino8.5版本需要在服务器的配置文件(Notes.ini)中加入一行:TNEFEnableConversion=1,就可以解决此问题。
2.接收方客户端
客户端可以下载安装一个解码Winmail.dat的阅读器,像Winmail-reader等。将邮件中的Winmail.dat附件下载到本地。运行Winmail阅读器打开这个附件就可以看到邮件的文本内容和附件。
五、结束语
通过介绍邮件编码和Winmail.dat问题的解决方法,可以解决COSL邮件系统中出现的类似问题,消除了和Exchange邮件系统邮件收发的障碍,间接的提高了工作效率。
参考文献:
[1] IBM.如何解决从Internet上来的邮件里的附件名字变为winmail.dat,IBM技术知识库,1897669D20000 2009
[2]王淑蓉 沈虹. 分析MIME邮件组成结构及构建邮件收发系统,现代电子技术,2004
【关键词】Winmail.dat MIME TNEF 编码 格式 解码
一、前言
我们在使用Lotus Notes的时候,会发现有附件名字为Winmail.dat的邮件,这样的邮件在Lotus Notes客户端是不能打开的。检查此邮件的文档属性,可以看到此邮件发送的内容类型是:application/ms-tnef; name=”winmail.dat”。
出现这种问题的原因是发件人使用的是Exchange发送邮件,没有开启MIME编码。Winmail.dat是把无编码格式的附件加载到邮件里。
二、MIME编码
多用途互联网邮件扩展(Multipurpose Intemet Mail Extensions,MIME)是当前广泛应用的一种电子邮件技术规范。在MIME出现之前,互联网使用RFC822作为电子邮件的文本格式标准。但是RFC822具有一定的局限性:它只能发送基本的ASCII码文本信息,邮件内容如果包含语音、图像等多媒体数据以及其他二进制数据文件,实现起来就非常困难。MIME在RFC822的基础上对电子邮件规范作了大量的扩展,引入了新的格式规范和编码方式,弥补其缺陷。不仅可以用来传输8bit的字符,也可以用来传送二进制的文件,如邮件附件中的图像、音频等信息,而且扩展了很多基于MIME 的应用。
从编码方式来说,MIME定义了两种编码方式:Base64和可打印编码。Base64编码技术用于编码任意的2进制信息。所以可以用Base64编码方式传输图像、声音、视频文件等信息。可打印编码是把一个8bit的字符用两个16进制数值表示,然后在前面加“=”。根据输入的字符串或字节范围进行编码,若是不需编码的字符,直接输出。若需要编码,则先输出’=’,后面跟着以2个字符表示的十六进制字节值。
通常,电子邮件是由消息头和消息体组成。对照RCF822中的定义,MIME在Internet E-mail报文中增加了5个新的头域,即:MIME-Version;Content-Type;Content-Transfer-Encoding;Content-ID;Content-Description。邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。每条信息称为一个域,由域名后加“:”和信息内容构成,可以是一行,较长的也可以占用多行。域的首行必须“顶头”写, 即左边不能有空白字符(空格和制表符);续行则必须以空白字符打头, 且第一个空白字符不是信息本身固有的, 解码时要过滤掉。邮件体包含邮件的内容, 他的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本) 和text/html (超文本)。
三、Exchange邮件编码
上面的问题中邮件类型为:application/ms-tnef,这种类型是由Exchange邮件发送的。Exchange Server使用传输中性封装格式 (TNEF) 将MAPI邮件转换为 RFC 822格式。TNEF以application/ms-tnef 类型的MIME附件的形式出现在邮件中。该附件的名称为Winmail.dat。它包含完整的邮件内容以及所有附加文件。只有 MAPI客户端(如Outlook)能够对 Winmail.dat 附件进行解码。非MAPI客户端无法对TNEF进行解码,并且可能将 Winmail.dat 显示为典型但无用的文件。
TNEF编码的邮件包含邮件的纯文本版本以及一个二进制附件,该附件“包装”着原始邮件的其他各部分。多数情况下,该二进制附件将被命名为 Winmail.dat,并可能包括:
(一)该邮件的带格式文本版本(字体信息、颜色等)
(二)OLE 对象(嵌入的图片、嵌入的 Office 文档等)
(三)特殊的 Outlook 功能(自定义表格、投票按钮、会议请求等)
(四)添加到原始邮件的常规文件附件
当不识别TNEF的邮件客户端收到包含TNEF信息的邮件时,有三种常见结果:
1.收到了该邮件的纯文本版本,且包含名为Winmail.dat 的附件。但由于该 Winmail.dat附件为特殊的TNEF格式,因而在打开时没有任何有用的信息。
2.收到了该邮件的纯文本版本,且包含一个按普通方法命名的附件(如 ATT00008.dat 或 ATT00005.eml)。在这种情况下,客户端无法识别邮件的 TNEF 部分,并且无法识别 Winmail.dat 文件名,因此客户端创建了一个文件名来保存 TNEF 信息。
3.收到了该邮件的纯文本版本,但客户端忽略了Winmail.dat附件。这是 Microsoft Outlook Express中存在的情况。尽管Outlook Express不识别TNEF,但它知道要忽略TNEF信息。结果便得到一个纯文本邮件。
四、解决方法
(一)邮件发送方解决方法
TNEF的使用通常受到Outlook中称为“Microsoft Outlook RTF格式”的设置的影响。RTF格式和TNEF并不完全相同,但是它们之间有着密切关系。
可以通过控制是否以RTF格式发送邮件来解决这类问题。
创建自定义收件人:
当管理员使用 Microsoft Exchange Administrator 程序創建自定义收件人时,请单击清除“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框。 修改现有的 Microsoft Exchange 和自定义收件人:
管理员可以通过单击清除收件人属性的高级属性页中的 MAPI 收件人复选框,防止现有的用户帐户(Microsoft Exchange 用户或自定义收件人)发送 RTF 信息。管理员可以通过单击收件人姓名,然后单击文件菜单上的属性,查看收件人的属性。
个人通讯簿中的地址:
最终用户可以通过单击清除个人通讯簿 (PAB) 中 Internet 地址的 SMTP - 地址属性页中的“发送给该收件人的邮件始终采用 Microsoft Exchange RTF 格式”复选框,修改个人通讯簿 (PAB) 中的 Internet 地址以防止发送 RTF 信息。要获取 PAB 条目的属性,请单击该条目,然后单击文件菜单上的属性。
配置 Internet Mail Connector (IMC):
管理员可以使用 RTF 选项以下列方式配置 IMC:
1.打开 Internet Mail Connector 属性页。
2.单击常规选项卡。
“发送 Microsoft Exchange RTF 信息”列表框控制 RTF 数据的发送。有三个值可供选择:
如果将该值设置为用户,则使用收件人属性来决定是否发送 RTF 信息。
如果将该值设置为总是,则无论收件人属性是什么,总是发送 RTF 信息。
如果将该值设置为从不,则永远不会发送 RTF 信息。
管理员也可以在每个域的基础上配置发送 RTF 信息的选项。要定义电子邮件域和该域的邮件设置,请单击 Internet 邮件选项卡中的电子邮件域按钮。
(二)邮件接收方解决方法:
1.接收方服务器:
早一点儿的Domino服务器是不能对Winmail.dat進行解码的,但是在6.5版本以后,domino已经提供了对Winmail.dat的附件进行解码的功能。我们使用的Domino8.5版本需要在服务器的配置文件(Notes.ini)中加入一行:TNEFEnableConversion=1,就可以解决此问题。
2.接收方客户端
客户端可以下载安装一个解码Winmail.dat的阅读器,像Winmail-reader等。将邮件中的Winmail.dat附件下载到本地。运行Winmail阅读器打开这个附件就可以看到邮件的文本内容和附件。
五、结束语
通过介绍邮件编码和Winmail.dat问题的解决方法,可以解决COSL邮件系统中出现的类似问题,消除了和Exchange邮件系统邮件收发的障碍,间接的提高了工作效率。
参考文献:
[1] IBM.如何解决从Internet上来的邮件里的附件名字变为winmail.dat,IBM技术知识库,1897669D20000 2009
[2]王淑蓉 沈虹. 分析MIME邮件组成结构及构建邮件收发系统,现代电子技术,2004