Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 为什么在发送电子邮件时要指定比应用程序/八位字节流更具体的MIME类型?_Email_Language Agnostic_Mime Types - Fatal编程技术网

Email 为什么在发送电子邮件时要指定比应用程序/八位字节流更具体的MIME类型?

Email 为什么在发送电子邮件时要指定比应用程序/八位字节流更具体的MIME类型?,email,language-agnostic,mime-types,Email,Language Agnostic,Mime Types,例如,假设我的应用程序发送一封带有二进制附件的邮件(例如,somedata.xlsx)。当以编程方式制作邮件消息时,我可以 只需将附件的MIME类型设置为application/octet-stream或 根据文件的实际内容设置“正确”的MIME类型(例如,上述somedata.xlsx文件的application/vnd.openxmlformats officedocument.spreadsheetml.sheet) 我们也假设 我知道文件的实际内容(因此选项2是可行的) 文件始终为二进

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

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

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

  • 我们也假设

    • 我知道文件的实际内容(因此选项2是可行的)
    • 文件始终为二进制文件(即人类无法读取),并且
    • 所有收件人都位于“公司Windows世界”,其中文件扩展名是指定文件类型的事实标准
    为什么我要经历使用不同MIME类型的麻烦,而不是每次都使用
    应用程序/八位字节流?
    -ing?
    根据我的经验,我测试的所有电子邮件客户端在双击邮件附加的
    xlsx
    文件时都会做“正确的事情”,无论MIME类型是
    application/octet-stream
    还是
    application/vnd.openxmlformats of icedocument.spreadsheetml.sheet

    这仅仅是一种良好的做法,还是真的产生了实际的影响?


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

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

    这个答案纯粹是推测性的

    假设一个中间系统(即,在服务器端实现的一些邮件过滤器)阻止对除“安全”MIME类型之外的所有MIME类型的访问,以保护客户端系统<代码>应用程序/八位字节流可能不应该被认为是安全的,但真正的MIME类型可能是安全的。在这种情况下,行为会有实际的差异