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
(Tcl) Using Client Certificate w/ IMAP SSLDemonstrates how to use a client-side certificate with an IMAP SSL connection. The SetSslClientCert method is called to specify a certificate to be used for the SSL connection.
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set imap [new_CkImap] # To use a secure SSL connection, set SSL and the port: CkImap_put_Ssl $imap 1 # The typical port for IMAP SSL is 993 CkImap_put_Port $imap 993 # Load a certificate from a PFX file and use it. # Note: Other methods are available to load pre-installed # certificates from registry-based certificate stores. # Create an instance of a certificate store object, load a PFX file, # locate the certificate we need, and use it for signing. # (a PFX file may contain more than one certificate.) set certStore [new_CkCertStore] # The 1st argument is the filename, the 2nd arg is the # PFX file's password: set success [CkCertStore_LoadPfxFile $certStore "myCertWithPrivateKey.pfx" "secret"] if {$success != 1} then { puts [CkCertStore_lastErrorText $certStore] delete_CkImap $imap delete_CkCertStore $certStore exit } # Find the certificate by the subject common name: # cert is a CkCert set cert [CkCertStore_FindCertBySubjectCN $certStore "Chilkat Software, Inc."] if {[CkCertStore_get_LastMethodSuccess $certStore] == 0} then { puts [CkCertStore_lastErrorText $certStore] delete_CkImap $imap delete_CkCertStore $certStore exit } # If a PFX file is known to contain a single certificate, # you may load it directly into a Chilkat certificate object. # This snippet of source code shows how: set cert2 [new_CkCert] # The 1st argument is the filename, the 2nd arg is the # PFX file's password: set success [CkCert_LoadPfxFile $cert2 "myClientCert.pfx" "secret"] if {$success != 1} then { puts [CkCert_lastErrorText $cert] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # Use the cert: set success [CkImap_SetSslClientCert $imap $cert] # Connect to an IMAP server. set success [CkImap_Connect $imap "imap.someMailServer.com"] if {$success != 1} then { puts [CkImap_lastErrorText $imap] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # Login set success [CkImap_Login $imap "myLogin" "myPassword"] if {$success != 1} then { puts [CkImap_lastErrorText $imap] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # Select an IMAP mailbox set success [CkImap_SelectMailbox $imap "Inbox"] if {$success != 1} then { puts [CkImap_lastErrorText $imap] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # messageSet is a CkMessageSet # We can choose to fetch UIDs or sequence numbers. set fetchUids 1 # Get the message IDs of all the emails in the mailbox set messageSet [CkImap_Search $imap "ALL" $fetchUids] if {[CkImap_get_LastMethodSuccess $imap] == 0} then { puts [CkImap_lastErrorText $imap] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # Fetch the emails into a bundle object: # bundle is a CkEmailBundle set bundle [CkImap_FetchBundle $imap $messageSet] if {[CkImap_get_LastMethodSuccess $imap] == 0} then { delete_CkMessageSet $messageSet puts [CkImap_lastErrorText $imap] delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 exit } # Loop over the bundle and display the FROM and SUBJECT of each. set i 0 set numEmails [CkEmailBundle_get_MessageCount $bundle] while {$i < $numEmails} { # email is a CkEmail set email [CkEmailBundle_GetEmail $bundle $i] puts [CkEmail_from $email] puts [CkEmail_subject $email] puts "--" delete_CkEmail $email set i [expr $i + 1] } # Disconnect from the IMAP server. set success [CkImap_Disconnect $imap] delete_CkMessageSet $messageSet delete_CkEmailBundle $bundle delete_CkImap $imap delete_CkCertStore $certStore delete_CkCert $cert2 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.