Get attachment from multipart/signed attachments
SandraCHC opened this issue · 2 comments
When a message is signed, I receive a smime.p7m file as an attachment. When I display the content, I see several file attachments with the file name and the Base64 content.
I receive my file attachments with
$attachments = $graphServiceClient->users()->byUserId($address)->messages()->byMessageId($messageId)->attachments()->get()->wait();
foreach ($attachments->getValue() as $attachment) {
$data = \base64_decode($attachment->getBackingStore()->get('contentBytes'));
...
}
But how do I read the file attachments if they are in a smime.p7m? Is there a function for this?
I have found this issue (#980), but I don't understand how I can implement this with PHP.
Hi @SandraCHC
PHP provides openssl_pkcs7_decrypt
to decrypt S/MIME content. However, you'll need the certificate and private key that were used when signing the message.
You may need to collaborate with your tenant admin to retrieve the configured certificates. Microsoft Graph doesn't control this functionality but here are some potentially useful links to download the certificates & decrypt the messages:
- https://learn.microsoft.com/en-us/exchange/security-and-compliance/smime-exo/smime-exo
- https://learn.microsoft.com/en-us/exchange/security-and-compliance/smime-exo/configure-smime-exo
- https://learn.microsoft.com/en-us/powershell/module/exchange/get-exchangecertificate?view=exchange-ps
Microsoft Q&A would also be a good place to ask this to get more domain experts on this.
This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment.