在 Windows Vista 上运行的 Thunderbird 通常将 Microsoft Word 文档作为 mime 类型发送application/msword
,据我所知,这是正确的。但是,现在它突然决定将 Word 文档作为 mime 类型发送text/richtext
,这会产生一个大问题,因为收件人客户端可能会将消息解释为可内联显示 - 这实际上只会在屏幕上产生垃圾,因为它无法处理 Word 文档的直接显示。至少 Thunderbird 本身作为收件人会这样做,但我想其他客户端也可能这样做。
据我所知,Thunderbird 从操作系统中获取附件的 MIME 类型,而不是自行确定。这表明 Vista 分配 MIME 类型的方式可能存在问题。但是,我无法找到在 Vista 上调整 MIME 类型确定方式的方法 - 只有文件类型设置似乎与哪个程序打开它们有关。但是,这似乎是合理的,因为注册表中HKEY_CLASSES_ROOT\.doc
确实包含正确的 MIME 类型 - 事实上,该字符串text/richtext
在注册表中无处可寻。
还值得一提的是,其他文件类型仍然可以获得其正确的 MIME 类型。
如何强制 Thunderbirdapplication/msword
对 Microsoft Word 文档附件使用正确的 MIME 类型(发送电子邮件时)?
或者:如何确定在 Windows Vista 上为不同文件类型分配了哪些 MIME 类型?
或者:我该如何进一步解决这个问题?(例如,确定问题是否在于 Vista 为 Thunderbird 提供了错误的 mime 类型,还是 Thunderbird 不接受 vista 提供的内容?)
以下是失败的附件标头的示例:
Content-Type: text/richtext; name="Foo Bar.doc"
Content-Description: Foo Bar.doc
Content-Disposition: attachment;
filename="Foo Bar.doc"; size=85056;
creation-date="Thu, 17 Sep 2009 11:14:20 GMT";
modification-date="Thu, 17 Sep 2009 11:14:20 GMT"
Content-Transfer-Encoding: base64
这个问题现在有了解决办法。问题的直接原因是mimeTypes.rdf
。问题是由文件中的以下部分引起的(可以通过添加来重复):
<RDF:Seq RDF:about="urn:mimetypes:root">
<RDF:li RDF:resource="urn:mimetype:text/richtext"/>
</RDF:Seq>
<RDF:Description RDF:about="urn:mimetype:text/richtext"
NC:value="text/richtext"
NC:editable="true"
NC:fileExtensions="doc"
NC:description="Microsoft Office Word 97 - 2003">
<NC:handlerProp RDF:resource="urn:mimetype:handler:text/richtext"/>
</RDF:Description>
答案1
有趣的问题。首先值得注意的是text/richtext
是与电子邮件相关的 mime 类型,已被text/enriched
并且完全不相关application/rtf
,请参阅维基百科丰富文本:
富文本是电子邮件的一种格式化文本格式,由 IETF 于RFC 1896并与 text/enriched MIME 类型相关联。
[...]此MIME 类型
的前身被称为text/enriched
text/richtext
RFC 1341和RFC 1521. 不应将其与富文本格式(MIME 类型text/rtf
或application/rtf
)这是由 Microsoft 设计的完全不同的规范。
我能找到的唯一线索是通过 Firefox 瞄准 Horde/IMP,但似乎解决了同样的问题,请参阅Word附件文件问题:
您可能收到了一些富文本格式的文档。您可能使用 Microsoft Word 打开了它,这导致在浏览器设置中添加了一个名为“text/richtext”的 mime 类型,其支持应用程序为 MS-word。随后,当您附加任何 Word 文档时,浏览器会将任何附加的 Word 文档识别为“text/richtext”类型,而不是“application/msword”。
由于 Firefox 和 Thunderbird 共享大量代码,这也可能适用于 Thunderbird。
如何强制 Thunderbird 对 Microsoft Word 文档附件使用正确的应用程序/msword mime 类型(发送电子邮件时)?
显然,这种情况发生的原因尚未得到最终解决,但是,发帖人提供的临时解决方案也应该适用,因为 ThunderbirdmimeTypes.rdf
也在使用。然而,前采取激烈措施,简单地从 Thunderbird 用户配置文件中删除此文件并重新启动 Thunderbird(这可能会恢复默认文件),我会尝试进一步调查此事,以避免丢失以下故意更改Download Actions
:
- 首先,您应该查看 Thunderbird 设置:
在下面,Tools->Options->Attachments->Download Actions
您将找到存储在中的每个文件扩展名的用户配置的 mime 类型相关操作mimeTypes.rdf
(即,我猜只是那些与默认设置不同的操作)。原则上,有关 Word 文档的更改设置应该会在那里体现出来(尽管考虑到具体情况,它也可能是一种隐含的特殊性,甚至是一个错误)。 - 如果这没有产生结果,您仍然可以深入研究
mimeTypes.rdf
并尝试找出哪个特定设置是错误的(如果有)。
mimetypes.rdf
当然,是否值得避免简单地删除类似的内容取决于您的情况。
答案2
我认为 Thunderbird 应该只使用 Windows MIME 类型关联。是否有可能某些反社会程序篡改了 .doc 的关联?
我不确定是否可以在 Vista 的 UI 中看到 MIME 类型关联,但该信息应该仍存在于注册表中。检查HKEY_CLASSES_ROOT\.doc
regedit 中的键,看看右侧的“内容类型”值是什么。
答案3
我支持 Ilari 的观点,这不是 Windows 注册表问题,因为我在 Linux 上也遇到过这种情况(Xubuntu 9.10;Thunderbird 2.0.0.23)。这里,同样,必须删除 mimeTypes.rdf 中将 .doc 链接到 text/richtext 的行,然后一切正常。
答案4
甚至 Thunderbird 17.0.2 也存在问题mimetypes.rdf
。就我的情况而言,它无法启动正确的应用程序textmaker.exe
来处理我的*.tmd
附件。一位名叫 hooks 的人在 softmaker 论坛上提出了一个非常有效的解决方法。
此解决方法在 Windows 7 Ultimate 和 Vista Home 上完美运行。
解决方法附带此插件。
安装它、配置它、使用它!