Sample code for 30+ languages & platforms
DataFlex

Load .eml and Decrypt (smime.p7m)

Loads an encrypted email from a .eml file and decrypts using certificate w/ private key found in a .p12 (or .pfx) file.

The Content-Type and Content-Disposition email headers of the email to be decrypted look similar to this:

Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data;
	name="smime.p7m"
Content-Disposition: attachment; filename="smime.p7m"

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    // Add a PFX (or .p12) to be used for decryption
    Get ComAddPfxSourceFile Of hoEmail "myCert.p12" "passwordForP12" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Loading the .eml automatically decrypts.
    Get ComLoadEml Of hoEmail "encrypted.eml" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // The email now exists as it was prior to encryption.
    // Your app may access the email's subject, body, attachments,
    // etc. using the Chilkat Email API...

    // Save the decrypted email:
    Get ComSaveEml Of hoEmail "decrypted.eml" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Success."


End_Procedure