如何通过文件扩展名获取电子邮件附件MIME类型?

时间:2015-03-14 18:51:12

标签: c++ windows winapi

我正在尝试编写一个使用Mandrill APIs发送带附件的电子邮件的课程。为此,我需要为base-64编码的附件内容提供MIME type of the attachment。问题是如何获得它,假设使用附件的文件扩展名?

PS。我希望有一些比switch/case长期更好的东西。但如果这是我唯一的选择,我在哪里可以获得最详尽的此类关联列表?

2 个答案:

答案 0 :(得分:1)

您可以在以下任一位置查看注册表:

  1. HKEY_CLASSES_ROOT\<file extension>\并查看其是否有"Content Type"值。

  2. HKEY_CLASSES_ROOT\MIME\Database\Content Type\,枚举每个子项,直到找到"Extension"值包含文件扩展名的子项。

  3. 还有FindMimeFromData() function

    如果您找不到匹配的内容类型,则可以随时使用application/octet-stream

答案 1 :(得分:0)

除了在不同的答案中建议的内容之外,这里是一个硬编码的文件扩展名到MIME类型的关联列表,我从this Ruby project's JSON列表转换为C-struct。

糟糕,不能在这里发布。它太长了。而是Here's the file