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) Move Selected Emails to another Mailbox FolderDownloads emails one by one in a selected mailbox, decides which emails are to be moved, and then moves the set of messages to another mailbox folder.
Use ChilkatAx-win32.pkg Procedure Test Handle hoImap Boolean iSuccess Integer iNumEmails Variant vMset Handle hoMset Integer i Variant vEmail Handle hoEmail String sDestFolder String sTemp1 Integer iTemp1 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 // Login 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 // Normally, when an email is downloaded, its "Seen" flag is automatically set. // We don't want our program to be interfering with the "Seen" flags. // To do this, set the PeekMode to True. Set ComPeekMode Of hoImap To True // After selecting the mailbox, the NumMessages property // will contain the number of emails in the mailbox. // When sequence numbers (not UIDs) are used to reference emails, // they range from 1 to N, where N is the number of messages in the mailbox. // This example will download the headers by sequence numbers. Get ComNumMessages Of hoImap To iNumEmails Get Create (RefClass(cComChilkatMessageSet)) To hoMset If (Not(IsComObjectCreated(hoMset))) Begin Send CreateComObject of hoMset End // Indicate that mset contains sequence numbers, not UIDs. Set ComHasUids Of hoMset To False // Fetch each email and decide for each if it is to be moved // to a particular other mailbox. If so, we'll add the sequence number to // the mset, and then move all emails in the mset to the other mailbox. Move 0 To i While (i < iNumEmails) // Fetch the email by sequence number. Get ComFetchSingle Of hoImap (i + 1) False To vEmail If (IsComObject(vEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoEmail Set pvComObject Of hoEmail To vEmail End Get ComLastMethodSuccess Of hoImap To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // If it is decided to move the email, add the sequence number to mset, like this: Send ComInsertId To hoMset (i + 1) Send Destroy of hoEmail Loop // If there are emails in mset to be moved, then do it.. Get ComCount Of hoMset To iTemp1 If (iTemp1 > 0) Begin Move "Inbox/SomeOtherFolder" To sDestFolder // Assuming your IMAP server supports the feature that allows for messages to be moved to another folder... Get pvComObject of hoMset to vMset Get ComMoveMessages Of hoImap vMset sDestFolder To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End End // Disconnect from the IMAP server. Get ComDisconnect Of hoImap To iSuccess End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.