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