Если у вас действительно подписанное сообщение S / MIME, то вложение smime.p7m будет иметь либо значение Content-Type
, равное application/pkcs7-mime; smime-type=signed-data
, либо значение Content-Type
, равное application/pkcs7-signature
, и будет второй дочерней частью MIME контейнера multipart/signed
.
Для визуализации:
Вариант 1:
Content-Type: application/pkcs7-mime; smime-type="signed-data"; name="smime.p7m"
Content-Disposition: attachment; filename="smime.p7m"
Content-Transfer-Encoding: base64
Вариант 2:
Content-Type: multipart/signed; boundary="some-bounary-string"; protocol="application/pkcs7-signature"
--some-boundary-string
Content-Type: text/plain
This is the message content that was signed...
--some-boundary-string
Content-Type: application/pkcs7-signature; name="smime.p7m"
Content-Disposition: attachment; filename="smime.p7m"
Content-Transfer-Encoding: base64
...
--some-boundary-string--
Я не знаком с API-оболочкой Exchange MAPI, но должен быть способ получить значение Content-Type
. В зависимости от того, что это, вы можете проверить другие атрибуты, которые я упомянул выше, чтобы убедиться, что это действительно подписанное сообщение или просто вложение.
Примечание: они также могут быть application/x-pkcs7-mime
и application/x-pkcs7-signature
, но кроме начального x-
подтипа MIME логика та же.