![]() |
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) IMAP using SOCKS5, SOCKS4 ProxyDemonstrates how to connect to an IMAP server through a SOCKS5 or SOCKS4 proxy. Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoImap Boolean iFetchUids Variant vMessageSet Handle hoMessageSet Variant vBundle Handle hoBundle Boolean iHeadersOnly Variant vEmail Handle hoEmail Integer i Integer iNumEmails String sTemp1 Move False To iSuccess // This example assumes 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 // To use a SOCKS4 or SOCKS5 proxy, simply set the following // properties prior to connecting with the IMAP server: // The SOCKS hostname may be a domain name or // IP address: Set ComSocksHostname Of hoImap To "www.mysocksproxyserver.com" Set ComSocksPort Of hoImap To 1080 Set ComSocksUsername Of hoImap To "myProxyLogin" Set ComSocksPassword Of hoImap To "myProxyPassword" // Set the SOCKS version to 4 or 5 based on the version // of the SOCKS proxy server: Set ComSocksVersion Of hoImap To 5 // Note: SOCKS4 servers only support usernames without passwords. // SOCKS5 servers support full login/password authentication. // Connect to an IMAP server through the SOCKS proxy. // 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 = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Login Get ComLogin Of hoImap "myLogin" "myPassword" To iSuccess If (iSuccess = False) 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 = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Get the message IDs of all the emails in the mailbox // We can choose to fetch UIDs or sequence numbers. Move True To iFetchUids Get Create (RefClass(cComChilkatMessageSet)) To hoMessageSet If (Not(IsComObjectCreated(hoMessageSet))) Begin Send CreateComObject of hoMessageSet End Get pvComObject of hoMessageSet to vMessageSet Get ComQueryMbx Of hoImap "ALL" iFetchUids vMessageSet To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Fetch the emails into a bundle object: Get Create (RefClass(cComChilkatEmailBundle)) To hoBundle If (Not(IsComObjectCreated(hoBundle))) Begin Send CreateComObject of hoBundle End Move False To iHeadersOnly Get pvComObject of hoMessageSet to vMessageSet Get pvComObject of hoBundle to vBundle Get ComFetchMsgSet Of hoImap iHeadersOnly vMessageSet vBundle To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Loop over the bundle and display the FROM and SUBJECT of each. Get Create (RefClass(cComChilkatEmail)) To hoEmail If (Not(IsComObjectCreated(hoEmail))) Begin Send CreateComObject of hoEmail End Move 0 To i Get ComMessageCount Of hoBundle To iNumEmails While (i < iNumEmails) Get pvComObject of hoEmail to vEmail Get ComEmailAt Of hoBundle i vEmail To iSuccess Get ComFrom Of hoEmail To sTemp1 Showln sTemp1 Get ComSubject Of hoEmail To sTemp1 Showln sTemp1 Showln "--" Move (i + 1) To i Loop // Disconnect from the IMAP server. Get ComDisconnect Of hoImap To iSuccess End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.