Outlook正文图片变成了附件

Microsoft Outlook 和 Foxmail 是电脑上使用最广泛的两款邮件客户端工具,但他俩有时并不对付,这里以 Outlook2007 和 Foxmail7.x 为例来解说一种异常情况,同时理清有关邮件内容的几个基本概念。

用 Outlook 写一封邮件,邮件正文里插有一副图片,然后同时发给两个收件人。两个收件人都用 Foxmail 收下这封邮件,其中一个人收到的图片在正文显示,符合预期;另外一个人收到的图片却成了附件,要再点一次附件才能看到图片,不符合预期。经过分析邮件的源码,发现 Content-Type域的值不同,如下图所示:

Content-Type

一封邮件的组成部份包括信封,邮件头,邮件体等几部份,邮件头里面的Content-Type域的类型决定了邮件体的类型,常见类型有:text,image,application,multipart。multipart是MIME邮件的精华,前面三种基本是打酱油的,很少出现,因为现代的邮件很少简单到只有一段文字或一个图片。

multipart意为组合内容,邮件体由多段组成,可以包含不同的形式的内容。它又细分为三种类型:

multipart/mixed:混合组合,其内容可以是文体,声音和附件,最重要的区别是有附件。

multipart/related:内嵌(关联)资源,正文中插有图片或者表格。

multipart/alternative:纯文件与超文本共存。

前面举的图片变附档的例子,就是因为另一个人收到的邮件其邮件头的Content-Type定义成了multipart/mixed。尽管这样,如果收件人用Outlook收邮件,图片还是会在正文里正常显示。如此古怪的情形,很容易让身处两地的收件人和发件人产生误会,双方无法理解对方看到的是什么,应该打微软屁股。

同一封邮件,为什么两个人收到的结果会不一样呢?为了兼容性,首先要设好Outlook的邮件格式,设置路径:工具—选项—邮件格式—使用这个格式撰写邮件,选“HTML”。

其次,联系人(收件人)的语言要与操作系统一致,如果您的联系人清单是从其它系统导入的,这个问题就可能会出现。设置路径:找到并编辑该联系人—拼字检查—设定语言—选择与操作系统匹配的语种—确定。

还有,如果是在原邮件的基础上回复收件人,或者通过联系人缓存快速输入联系人,则对方收到的邮件,仍有可能正文图片变附件。

如何删除有问题的联系人的缓存呢?有两条途径:

一、单独删除某条缓存:在收件人框里输入该联系人的首字母,Outlook会列出清单,选中要删除的人按【Delete】键即可。

二、删除全部的联系人缓存:首先找到文件夹选项—查看—高级设置,取消勾选“隐藏受保护的操作系统文件”,默认是勾了的。然后删除或改名我的目录下的缓存文件:%APPDATA%\Microsoft\Outlook\OL2007.NK2,不同版本请酌情考虑。处理完后记得勾上“隐藏受保护的操作系统文件”。

如果,万一,不好彩,您收到的邮件Content-Type: application/ms-tnef,附件成了winmail.dat,发件人还是您的海外客户,只有一个办法,安装【Winmail Opener】。

愿电子邮件界出来一个秦始皇,统一规则……

发表评论