![]() |
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) Delete Email Individually (One at a time) from an IMAP MailboxDownloads email from an IMAP mailbox and deletes emails individually (one by one). 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 // 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 = 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 // 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 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 // To mark a complete set of emails for deletion, call SetFlags: Get pvComObject of hoMessageSet to vMessageSet Get ComSetFlags Of hoImap vMessageSet "Deleted" 1 To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Messages can also be marked for deletion individually: // Loop over the bundle and mark each message for deletion. 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 // To delete this email, set the "Deleted" flag to 1. // The email is not actually deleted until Expunge or // ExpungeAndClose is called. Get pvComObject of hoEmail to vEmail Get ComSetMailFlag Of hoImap vEmail "Deleted" 1 To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End Showln "--" Move (i + 1) To i Loop Get ComExpungeAndClose Of hoImap To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Disconnect from the IMAP server. Get ComDisconnect Of hoImap To iSuccess End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.