2

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

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

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

我们也假设

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

为什么我要经历使用不同 MIME 类型而不是application/octet-stream-ing everyting 的麻烦?根据我的经验,xlsx无论 MIME 类型是application/octet-stream还是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.

这只是一种好的做法²还是会产生真正的实际差异?


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

² 就我个人而言,我认为“良好实践”是一个很好的理由。但是,出于科学好奇心,我对它是否会产生实际影响感兴趣。

4

1 回答 1

0

这个答案纯粹是推测性的。

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

于 2013-04-09T15:35:35.973 回答