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
(DataFlex) POP3 Read S/MIME Encrypted EmailRead S/MIME encrypted email.
Use ChilkatAx-win32.pkg Procedure Test Handle hoMailman Boolean iSuccess Variant vBundle Handle hoBundle Integer i Variant vEmail Handle hoEmail String sTemp1 Boolean bTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // The mailman object is used for receiving (POP3) // and sending (SMTP) email. Get Create (RefClass(cComChilkatMailMan)) To hoMailman If (Not(IsComObjectCreated(hoMailman))) Begin Send CreateComObject of hoMailman End // Set the POP3 server's hostname Set ComMailHost Of hoMailman To "pop.someMailServer.com" // Set the POP3 login/password. Set ComPopUsername Of hoMailman To "myLogin" Set ComPopPassword Of hoMailman To "myPassword" // If running on Microsoft Windows, the Chilkat mailman // will automatically search the registry-based certificate stores // for matching certificates and private keys required for // decryption. However, on Linux, MAX OS X, and other // operating systems, no such thing exists. Therefore, you'll // need to specify one or more PFX (.p12 / .pfx) files as // sources for locating the certs required for decyrption. Get ComAddPfxSourceFile Of hoMailman "/pfxFiles/certs_and_keys_1.pfx" "pfxPassword1" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Procedure_Return End Get ComAddPfxSourceFile Of hoMailman "/pfxFiles/certs_and_keys_2.pfx" "pfxPassword2" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Procedure_Return End // ... // Note: On MS Windows, it is not required to provide PFX sources // if the needed certs and private keys are already installed // on the system (in the registry-based certificate stores). // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. Get ComCopyMail Of hoMailman To vBundle If (IsComObject(vBundle)) Begin Get Create (RefClass(cComChilkatEmailBundle)) To hoBundle Set pvComObject Of hoBundle To vBundle End Get ComLastMethodSuccess Of hoMailman To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Procedure_Return End // S/MIME security envelopes are automatically "unwrapped" // when a message is retrieved from the server. Signed emails are automatically verified, and // encrypted emails are automatically decrypted, restoring the email to the original state before // signing and/or encrypting. Information about the signing and encrypting certificates can be // retrieved from the Email object (methods: GetSignedByCert, GetEncryptedByCert; // properties: SignedBy, EncryptedBy, SignaturesValid, Decrypted, ReceivedSigned, // ReceivedEncrypted). // Loop over the bundle, Move 0 To i While (i < (ComMessageCount(hoBundle))) Get ComGetEmail Of hoBundle i To vEmail If (IsComObject(vEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoEmail Set pvComObject Of hoEmail To vEmail End Get ComFrom Of hoEmail To sTemp1 Showln sTemp1 Get ComSubject Of hoEmail To sTemp1 Showln sTemp1 // At this point, if the email was signed and/or encrypted, it is already "unwrapped", i.e. // the email is already decrypted and in a state as if it were never signed or encrypted. // You may check to see if the email was received encrypted or signed, and if so, // whether it was successfully unwrapped and who signed or encrypted it: Get ComReceivedEncrypted Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "This email was encrypted when received." Get ComDecrypted Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "This email was successfully decrypted. It was encrypted by:" Get ComEncryptedBy Of hoEmail To sTemp1 Showln sTemp1 End Else Begin Showln "This email was not decrypted." End End Get ComReceivedSigned Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "This email was signed when received." Get ComSignaturesValid Of hoEmail To bTemp1 If (bTemp1 = True) Begin Showln "The signature was verified. It was signed by:" Get ComSignedBy Of hoEmail To sTemp1 Showln sTemp1 End Else Begin Showln "The signature verification failed." End End // The email's body, HTML body, attachments, etc. // are decrypted and available just like any non-encrypted email. Showln "--" Send Destroy of hoEmail Move (i + 1) To i Loop Send Destroy of hoBundle End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.