Gets whether the email is encrypted by digital certificate.
[Visual Basic 6.0] Public Property Get IsEncrypted() As Boolean
[Visual C++] public: get_IsEncrypted(VARIANT_BOOL* pVal);
Property Value
Example
[Visual Basic 6.0, VBScript, Visual C++, Delphi] The following example demonstrates how to verify signed email and decrypt encrypted email with EAGetMail POP3 & IMAP4 Component. To get the full samples of EAGetMail, please refer to Samples section.
[Visual Basic 6.0]
Const CRYPT_MACHINE_KEYSET = 32
Const CRYPT_USER_KEYSET = 4096
Const CERT_SYSTEM_STORE_CURRENT_USER = 65536
Const CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072
Sub VerifyAndDecryptEmail()
On Error Resume Next
    Dim oMail As New EAGetMailObjLib.Mail
    oMail.LicenseCode = "TryIt"
    oMail.LoadFile "c:\test.eml", False
    If Err.Number <> 0 Then
        MsgBox Err.Description
        Exit Sub
    End If
    If (oMail.IsEncrypted) Then
            ' this email is encrypted, we decrypt it by user default certificate.
            ' you can also use specified certificate like this
            ' Dim oCert As New EAGetMailObjLib.Certificate
            ' oCert.LoadFromFile "c:\test.pfx", "pfxpassword", CRYPT_USER_KEYSET 
            ' Set oMail = oMail.Decrypt(oCert)
            Set oMail = oMail.Decrypt(Nothing)
            If Err.Number <> 0 Then
                MsgBox Err.Description
                Exit Sub
            End If
    End If
    If (oMail.IsSigned) Then
            'this email is digital signed.
            Dim oCert As EAGetMailObjLib.Certificate
            Set oCert = oMail.VerifySignature()
        
            If Err.Number <> 0 Then
                MsgBox Err.Description
                Exit Sub
            End If
            MsgBox "This email contains a valid digital signature."
            'you can add the certificate to your certificate storage like this
            'oCert.AddToStore CERT_SYSTEM_STORE_CURRENT_USER,"addressbook"
            'then you can use send the encrypted email back to this sender.        
    End If
End Sub
[VBScript]
Const CRYPT_MACHINE_KEYSET = 32
Const CRYPT_USER_KEYSET = 4096
Const CERT_SYSTEM_STORE_CURRENT_USER = 65536
Const CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072
            
On Error Resume Next
Dim oMail
Set oMail = CreateObject("EAGetMailObj.Mail")
oMail.LicenseCode = "TryIt"
oMail.LoadFile "c:\test.eml", False
If Err.Number <> 0 Then
    MsgBox Err.Description
    Exit Sub
End If
        
If (oMail.IsEncrypted) Then
        ' this email is encrypted, we decrypt it by user default certificate.
        ' you can also use specified certificate like this
        ' Dim oCert
        ' Set oCert = CreateObject("EAGetMailObj.Certificate")
        ' oCert.LoadFromFile "c:\test.pfx", "pfxpassword", CRYPT_USER_KEYSET 
        ' Set oMail = oMail.Decrypt(oCert)
        Set oMail = oMail.Decrypt(Nothing)
        If Err.Number <> 0 Then
            MsgBox Err.Description
            Exit Sub
        End If
End If
If (oMail.IsSigned) Then
        'this email is digital signed.
        Dim oCert
        Set oCert = oMail.VerifySignature()
       
        If Err.Number <> 0 Then
            MsgBox Err.Description
            Exit Sub
        End If
        MsgBox "This email contains a valid digital signature."
        'you can add the certificate to your certificate storage like this
        'oCert.AddToStore CERT_SYSTEM_STORE_CURRENT_USER,"addressbook"
        'then you can use send the encrypted email back to this sender.        
End If
[Visual C++]
#include "stdafx.h"
#include <windows.h>
#include "eagetmailobj.tlh"
using namespace EAGetMailObjLib;
vod VerifyAndDecryptEmail()
{
    ::CoInitialize(NULL);
    try
    {
        IMailPtr oMail = NULL;
        oMail.CreateInstance(__uuidof(EAGetMailObjLib::Mail));
        oMail->LicenseCode = _T("TryIt");
        oMail->LoadFile(_T("d:\\test.eml"), VARIANT_FALSE);
    
        if(oMail->IsEncrypted == VARIANT_TRUE)
        {
            //this email is encrypted, we decrypt it by user default certificate.
            // you can also use specified certificate like this
            //ICertificatePtr oCert;
            //oCert.CreateInstance(__uuidof(EAGetMailObjLib::Certificate));
            //oCert->LoadFromFile(_T("c:\\test.pfx"), _T("pfxpassword"),  CRYPT_USER_KEYSET);
            //oMail = oMail->Decrypt(oCert);
            
            oMail = oMail->Decrypt(NULL);
        }
    
        if(oMail->IsSigned == VARIANT_TRUE)
        {
            ICertificatePtr oCert = oMail->VerifySignature();
            MessageBox(NULL, _T("This email contains a valid digital signature."), NULL, MB_OK);
            //you can add the certificate to your certificate storage like this
            //oCert->AddToStore(CERT_SYSTEM_STORE_CURRENT_USER, _T("addressbook"));
            // then you can use send the encrypted email back to this sender.
    
        }
    }
    catch(_com_error &ep)
    {
        MessageBox(NULL, (TCHAR*)ep.Description(), NULL, MB_OK);
    }
    ::CoUninitialize();
}
[Delphi]
const
    CRYPT_MACHINE_KEYSET = 32;
    CRYPT_USER_KEYSET = 4096;
    CERT_SYSTEM_STORE_CURRENT_USER = 65536;
    CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072;
procedure VerifyAndDecryptEmail();
Var
    oMail: TMail;
    oCert: TCertificate;
    oSignerCert: ICertificate;
begin
    oMail := TMail.Create(Application);
    oMail.LicenseCode := 'TryIt';
    oMail.LoadFile('d:\test.eml', false);
    if oMail.IsEncrypted then
        try
            // this email is encrypted, decrypt it by default user certificate
            oMail.ConnectTo(oMail.Decrypt(nil));
            // You can also use specified certificate like this
            // oCert := TCertificate.Create(Application);
            // oCert.LoadFromFile('c:\test.pfx', 'pfxpassword', CRYPT_USER_KEYSET);
            // oMail.Load(oMail.Decrypt(oCert.DefaultInterface).Content);
        except
            on ep: exception do
                ShowMessage('Decrypt Error: ' + ep.Message);
        end;
    if oMail.IsSigned then
        try
            // this email is digital signed, verify signature
            oSignerCert := oMail.VerifySignature();
            ShowMessage('This email contains a valid digital signature.');
            // You can add the certificate to your certificate storage like this
            // oSignerCert.AddToStore(CERT_SYSTEM_STORE_CURRENT_USER,
            // 'addressbook');
            // Then you can use send the encrypted email back to this sender.
        except
            on ep: Exception do
                ShowMessage('Verify signature Error: ' + ep.Message);
        end;
end;
    Remarks
See Also
        Mail.IsSigned Property
        Mail.VerifySignature Method
        Mail.Decrypt Method
    
Online Tutorials
        Verify Digital Signature and Decrypt Email in VB6 - Tutorial
        Verify Digital Signature and Decrypt Email in Delphi - Tutorial
        Verify Digital Signature and Decrypt Email in VC++ - Tutorial