Sample code for 30+ languages & platforms
DataFlex

Check if an Email Was Received Encrypted

See more Email Object Examples

Demonstrates the read-only Chilkat Email.ReceivedEncrypted property, which is true if the email was originally received with encryption. This records how the message arrived and remains useful even after successful automatic decryption, when the visible body is already the decrypted content. This example loads an email and reports whether it was received encrypted.

Background: When Chilkat loads an encrypted (S/MIME) email and has the recipient's private key available, it decrypts the content automatically — so the body you read is already in the clear. That convenience creates a question: was this message originally protected in transit? ReceivedEncrypted answers it, letting you distinguish a message that was genuinely encrypted end-to-end from one that was sent as plain text. Pair it with Decrypted to confirm decryption actually succeeded.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    //  Demonstrates the read-only Email.ReceivedEncrypted property, which is true if
    //  this email was originally received with encryption.  It remains meaningful even
    //  after Chilkat automatically decrypts the message.

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

    Get ComLoadEml Of hoEmail "qa_data/eml/received.eml" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComReceivedEncrypted Of hoEmail To bTemp1
    If (bTemp1 = True) Begin
        Showln "This email was originally received encrypted."
    End
    Else Begin
        Showln "This email was not received encrypted."
    End

    //  Note: Paths such as "qa_data/..." are relative local filesystem paths,
    //  relative to the current working directory of the running application.


End_Procedure