Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) IMAP Download and Verify Signed (S/MIME) EmailDemonstrates how to download and verify digitally signed S/MIME email.
Use ChilkatAx-win32.pkg Procedure Test Handle hoImap Boolean iSuccess Boolean iFetchUids Variant vMessageSet Handle hoMessageSet Integer i String sUid Variant vEmail Handle hoEmail Variant vCert Handle hoCert String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatImap)) To hoImap If (Not(IsComObjectCreated(hoImap))) Begin Send CreateComObject of hoImap End // Connect to an IMAP server. // Use TLS Set ComSsl Of hoImap To True Set ComPort Of hoImap To 993 Get ComConnect Of hoImap "imap.someMailServer.com" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End Get ComLogin Of hoImap "myLogin" "myPassword" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Select an IMAP mailbox Get ComSelectMailbox Of hoImap "Inbox" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // We can choose to fetch UIDs or sequence numbers. Move True To iFetchUids // Get the message IDs of all the emails in the mailbox Get ComSearch Of hoImap "ALL" iFetchUids To vMessageSet If (IsComObject(vMessageSet)) Begin Get Create (RefClass(cComChilkatMessageSet)) To hoMessageSet Set pvComObject Of hoMessageSet To vMessageSet End Get ComLastMethodSuccess Of hoImap To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Scan for emails with attachments, and save the attachments // to a sub-directory. Move 0 To i While (i < (ComCount(hoMessageSet))) Get ComGetId Of hoMessageSet i To sUid Showln "uid: " sUid Get ComFetchSingle Of hoImap sUid True To vEmail If (IsComObject(vEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoEmail Set pvComObject Of hoEmail To vEmail End // 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: Get ComReceivedSigned Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "This email was signed." // Check to see if the signatures were verified. Get ComSignaturesValid Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "Digital signature(s) verified." Get ComSignedBy Of hoEmail To sTemp1 Showln "Signer: " sTemp1 // The certificate used for signing may be obtained // by calling email.GetSignedByCert. Get ComGetSignedByCert Of hoEmail To vCert If (IsComObject(vCert)) Begin Get Create (RefClass(cComChilkatCert)) To hoCert Set pvComObject Of hoCert To vCert End Get ComLastMethodSuccess Of hoEmail To bTemp1 If (bTemp1 <> True) Begin Showln "Failed to get signing certificate object." End Else Begin Get ComSubjectCN Of hoCert To sTemp1 Showln "Signing cert: " sTemp1 Send Destroy of hoCert End End Else Begin Showln "Digital signature verification failed." End End Send Destroy of hoEmail Move (i + 1) To i Loop // Disconnect from the IMAP server. Get ComDisconnect Of hoImap To iSuccess Send Destroy of hoMessageSet End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.