有没有办法通过内容验证我上传的文件是 .msg 文件?

Is there a way to validate by content that the file I am uploading is a .msg file?

我需要验证我正在上传的文件是一个 .msg 文件。我想按内容来做。因为它是 Microsoft 文件,所以 header 将与 .doc.xls (D0 CF 11 E0 A1 B1 1A E1) 相同。区分 Microsoft 格式的唯一方法是通过 subheader.

我目前已尝试针对子程序进行验证header :

[512 (0x200) byte offset]
52 00 6F 00 6F 00 74 00
20 00 45 00 6E 00 74 00
72 00 79 00)

它适用于示例文件,但是当我保存 Outlook 邮件 (.msg) 并尝试验证时,它没有那个子 header(上面那个)。我目前有 Outlook 2010。有人知道为什么它不包含 subheader 吗?或者我应该使用什么替代方法?

MSG file format描述的很深入

MSG 文件(就像旧的 DOC 和 XLS 格式一样)是一种 OLE 存储文件。您可以检查“__properties_version1.0”流是否存在 - 使用 SSView

等查看器查看 MSG 文件