![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) POP3 Verify Signed (S/MIME) EmailDemonstrates how to download and verify digitally signed S/MIME email. Note: This example requires Chilkat v11.0.0 or greater.
IncludeFile "CkStringTable.pb" IncludeFile "CkCert.pb" IncludeFile "CkEmail.pb" IncludeFile "CkMailMan.pb" Procedure ChilkatExample() success.i = 0 ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. mailman.i = CkMailMan::ckCreate() If mailman.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Set the POP3 server's hostname CkMailMan::setCkMailHost(mailman, "pop.example.com") ; Set the POP3 login/password. CkMailMan::setCkPopUsername(mailman, "myLogin") CkMailMan::setCkPopPassword(mailman, "myPassword") stUidls.i = CkStringTable::ckCreate() If stUidls.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkMailMan::ckFetchUidls(mailman,stUidls) If success = 0 Debug CkMailMan::ckLastErrorText(mailman) CkMailMan::ckDispose(mailman) CkStringTable::ckDispose(stUidls) ProcedureReturn EndIf email.i = CkEmail::ckCreate() If email.i = 0 Debug "Failed to create object." ProcedureReturn EndIf cert.i = CkCert::ckCreate() If cert.i = 0 Debug "Failed to create object." ProcedureReturn EndIf count.i = CkStringTable::ckCount(stUidls) i.i = 0 While i < count ; Download the full email. success = CkMailMan::ckFetchByUidl(mailman,CkStringTable::ckStringAt(stUidls,i),0,0,email) If success = 0 Debug CkMailMan::ckLastErrorText(mailman) CkMailMan::ckDispose(mailman) CkStringTable::ckDispose(stUidls) CkEmail::ckDispose(email) CkCert::ckDispose(cert) ProcedureReturn EndIf Debug Str(i) Debug "From: " + CkEmail::ckFrom(email) Debug "Subject: " + CkEmail::ckSubject(email) ; The security layers of signed and/or encrypted emails ; are automatically "unwrapped" when loaded into ; a Chilkat email object. ; An application only needs to check to see if an email ; was received signed or encrypted, and then examine ; the success/failure. For example: If CkEmail::ckReceivedSigned(email) = 1 Debug "This email was signed." ; Check to see if the signatures were verified. If CkEmail::ckSignaturesValid(email) = 1 Debug "Digital signature(s) verified." Debug "Signer: " + CkEmail::ckSignedBy(email) success = CkEmail::ckLastSignerCert(email,0,cert) If success = 0 Debug CkEmail::ckLastErrorText(email) CkMailMan::ckDispose(mailman) CkStringTable::ckDispose(stUidls) CkEmail::ckDispose(email) CkCert::ckDispose(cert) ProcedureReturn EndIf Debug "Signing cert: " + CkCert::ckSubjectCN(cert) EndIf Else Debug "Digital signature verification failed." EndIf i = i + 1 Wend CkMailMan::ckPop3EndSession(mailman) CkMailMan::ckDispose(mailman) CkStringTable::ckDispose(stUidls) CkEmail::ckDispose(email) CkCert::ckDispose(cert) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.