发送电子邮件时,为什么要指定比application / octet-stream更具体的MIME类型?

时间:2013-04-09 08:23:30

标签: email language-agnostic mime-types

例如,假设我的应用程序发送带有二进制附件的邮件(例如somedata.xlsx)。在编写邮件消息时(以编程方式),我可以

  1. 只需将附件的MIME类型设置为application/octet-stream

  2. 根据文件的实际内容设置“正确”MIME类型(例如application/vnd.openxmlformats-officedocument.spreadsheetml.sheet文件的somedata.xlsx

  3. 我们也假设

    • 我知道文件的实际内容(所以选项2是可行的),
    • 该文件始终是二进制文件(即人类不可读)和
    • 所有收件人都位于“企业Windows世界”中,其中文件扩展名是指定文件类型的事实标准。

    为什么我要经历使用不同MIME类型而不仅仅是application/octet-stream的麻烦?根据我的经验,我测试的所有电子邮件客户端都会做“正确”无论MIME类型是xlsx还是application/octet-stream,双击邮件附带的application/vnd.openxmlformats-officedocument.spreadsheetml.sheet文件时都会“¹”。

    这是一个很好的练习²还是会产生真正的实际差异?


    ¹,即在Windows系统上,查找注册表中的xlsx处理程序并启动它以打开文件。

    ²就个人而言,我认为“良好做法”是一个很好的理由。然而,为了科学的好奇心,我感兴趣的是它是否有实际意义。

1 个答案:

答案 0 :(得分:0)

这个答案完全是推测性的。

假设一个中间系统(即在服务器端实现的某些邮件过滤器)阻止访问/删除所有“安全”MIME类型以保护客户端系统。 application/octet-stream可能不应被视为安全,但真正的MIME类型可能是。在这种情况下,行为会有实际差异。