Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkEmail.pb"

Procedure ChilkatExample()

    success.i = 0

    ;  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.

    email.i = CkEmail::ckCreate()
    If email.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkEmail::ckLoadEml(email,"qa_data/eml/received.eml")
    If success = 0
        Debug CkEmail::ckLastErrorText(email)
        CkEmail::ckDispose(email)
        ProcedureReturn
    EndIf

    If CkEmail::ckReceivedEncrypted(email) = 1
        Debug "This email was originally received encrypted."
    Else
        Debug "This email was not received encrypted."
    EndIf

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


    CkEmail::ckDispose(email)


    ProcedureReturn
EndProcedure