Проверка английских слов не только действительна, но и фактически задокументирована.
Обратитесь в орган:
2.1.3.1.3 Распознавание объекта сообщения, представляющего сообщение с четкой подписью
Если объект сообщения имеет класс сообщения (свойство PidTagMessageClass ([MS-OXCMSG] раздел 2.2.1.3)) значение «IPM.Note.SMIME.MultipartSigned» и содержит только один объект вложения, его СЛЕДУЕТ рассматривать как объект с четкой подписью. сообщение. Можно выполнить дополнительные шаги проверки, чтобы убедиться, что объект вложения помечен соответствующим типом носителя (например, свойство PidTagAttachMimeTag (раздел 2.680 [MS-OXPROPS]) имеет значение «multipart/signed») и представляет допустимый составной объект. /signed объект MIME, как указано в [RFC1847]. Если значение класса сообщения не "IPM.Note.SMIME.MultipartSigned", а заканчивается суффиксом ".SMIME.MultipartSigned", объект сообщения МОЖЕТ‹7>‹8> рассматриваться как сообщение с четкой подписью.
Если объект Message со значением класса сообщения "IPM.Note.SMIME.MultipartSigned" не имеет структуры, указанной в разделе 2.1.3.1, поведение не определено.
2.1.3.2.3 Распознавание объекта сообщения, представляющего S/MIME с непрозрачной подписью или шифрованием
Если объект сообщения имеет класс сообщения (свойство PidTagMessageClass ([MS-OXCMSG] раздел 2.2.1.3)) значение «IPM.Note.SMIME» и содержит только один объект вложения, его СЛЕДУЕТ рассматривать как сообщение с непрозрачной подписью или зашифрованное сообщение. Можно выполнить дополнительные шаги проверки, чтобы убедиться, что объект вложения помечен соответствующим типом носителя (например, свойство PidTagAttachMimeTag (раздел 2.680 [MS-OXPROPS]) имеет значение «application/pkcs7-mime» или «application/x- pkcs7-mime", или это "application/octet-stream" и имя файла, как указано в свойстве PidTagAttachFilename (раздел 2.671 [MS-OXPROPS]), и имеет расширение файла ".p7m") и представляет допустимый зашифрованный или сообщение с непрозрачной подписью, как указано в [RFC3852]. Если значение класса сообщения не "IPM.Note.SMIME", а заканчивается суффиксом ".SMIME", то объект "Сообщение" МОЖЕТ‹11> рассматриваться как сообщение с непрозрачной подписью или зашифрованное сообщение.
Значение класса сообщения "IPM.Note.SMIME" может быть неоднозначным.‹12>
Если объект Message имеет значение класса сообщения "IPM.Note.SMIME" и не имеет соответствующей структуры или содержимого, как указано в разделе 2.1.3.2, то поведение не определено.
ИЗМЕНИТЬ:
Чтобы быть более конкретным, да, вы ДОЛЖНЫ искать «шаблон в потоке файла».
В частности, если MSG является юникодом, вы должны просмотреть поток «__substg1.0_001A001F» и проверить шаблоны, упомянутые выше.
Файл MSG представляет собой файл структурированного хранилища OLE, который содержит потоки и хранилища. Чтобы получить доступ к потокам, используйте библиотеку OLE Storage, например OpenMCDF, если вы работаете с C#. Есть аналогичные для java, python и т.д.
23.04.2012