Thunderbird 在 Windows Vista 上使用错误的附件 MIME 类型

Thunderbird 在 Windows Vista 上使用错误的附件 MIME 类型

在 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/enrichedtext/richtextRFC 1341RFC 1521. 不应将其与富文本格式(MIME 类型text/rtfapplication/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\.docregedit 中的键,看看右侧的“内容类型”值是什么。

答案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 上完美运行。

解决方法附带此插件

安装它、配置它、使用它!

相关内容