如何通过文件扩展名获取电子邮件附件的 MIME 类型?
How to get email attachment MIME type by file extension?
我正在尝试编写一个 class,它将使用 Mandrill APIs 发送带有附件的电子邮件。为此,我需要为 base-64 编码的附件内容提供 MIME type of the attachment
。问题是如何得到它,假设使用附件的文件扩展名?
PS。我希望有比长期 switch/case
情况更好的事情。但如果那是我唯一的选择,我在哪里可以获得此类关联的最详尽列表?
您可以在注册表中查看:
HKEY_CLASSES_ROOT\<file extension>\
看看它是否有 "Content Type"
值。
HKEY_CLASSES_ROOT\MIME\Database\Content Type\
,枚举每个子项,直到找到一个 "Extension"
值包含文件扩展名的子项。
还有一个FindMimeFromData() function.
如果找不到匹配的内容类型,您可以随时使用 application/octet-stream
。
除了另一个答案中的建议,这里是我从 this Ruby project's JSON 列表转换为 C 的文件扩展名到 MIME 类型关联的硬编码列表-结构。
糟糕,不能 post 放在这里。它太长了。 Here's the file 相反。
我正在尝试编写一个 class,它将使用 Mandrill APIs 发送带有附件的电子邮件。为此,我需要为 base-64 编码的附件内容提供 MIME type of the attachment
。问题是如何得到它,假设使用附件的文件扩展名?
PS。我希望有比长期 switch/case
情况更好的事情。但如果那是我唯一的选择,我在哪里可以获得此类关联的最详尽列表?
您可以在注册表中查看:
HKEY_CLASSES_ROOT\<file extension>\
看看它是否有"Content Type"
值。HKEY_CLASSES_ROOT\MIME\Database\Content Type\
,枚举每个子项,直到找到一个"Extension"
值包含文件扩展名的子项。
还有一个FindMimeFromData() function.
如果找不到匹配的内容类型,您可以随时使用 application/octet-stream
。
除了另一个答案中的建议,这里是我从 this Ruby project's JSON 列表转换为 C 的文件扩展名到 MIME 类型关联的硬编码列表-结构。
糟糕,不能 post 放在这里。它太长了。 Here's the file 相反。