Sample code for 30+ languages & platforms
SQL Server

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 SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 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.

    DECLARE @email int
    EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @email, 'LoadEml', @success OUT, 'qa_data/eml/received.eml'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @email
        RETURN
      END

    EXEC sp_OAGetProperty @email, 'ReceivedEncrypted', @iTmp0 OUT
    IF @iTmp0 = 1
      BEGIN

        PRINT 'This email was originally received encrypted.'
      END
    ELSE
      BEGIN

        PRINT '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.

    EXEC @hr = sp_OADestroy @email


END
GO