![]() |
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) Process New Email by Scanning for SendersScan email and save application-selected emails to EML files with unique filenames. 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 vEmailHeader Handle hoEmailHeader Variant vFullEmail Handle hoFullEmail Integer i Integer iNumEmails String sUidStr Integer iUid String sFilename 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 // Fetch messages from the mailbox using a search criteria. // This example finds NEW emails: these are emails that have the RECENT flag set, but not the SEEN flag: 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 "NEW" iFetchUids vMessageSet To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // This example will download headers, and then download // the full email for those emails sent from a contact // in our database. // When downloading headers, each email object contains // (obviously) the headers, but the body will be missing. // Also, attachments will not be included. However, it is // possible to get information about the attachments // as well as the complete size of the email. Get Create (RefClass(cComChilkatEmailBundle)) To hoBundle If (Not(IsComObjectCreated(hoBundle))) Begin Send CreateComObject of hoBundle End Move True 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 email objects... Get Create (RefClass(cComChilkatEmail)) To hoEmailHeader If (Not(IsComObjectCreated(hoEmailHeader))) Begin Send CreateComObject of hoEmailHeader End Get Create (RefClass(cComChilkatEmail)) To hoFullEmail If (Not(IsComObjectCreated(hoFullEmail))) Begin Send CreateComObject of hoFullEmail End Move 0 To i Get ComMessageCount Of hoBundle To iNumEmails While (i < iNumEmails) Get pvComObject of hoEmailHeader to vEmailHeader Get ComEmailAt Of hoBundle i vEmailHeader To iSuccess // The sender's email address and name are available // in the From, FromAddress, and FromName properties. // If the sender is "Chilkat Support <support@chilkatsoft.com", // then the From property will hold the entire string. // the FromName property contains"Chilkat Support", // and the FromAddress property contains "support@chilkatsoft.com" Get ComFrom Of hoEmailHeader To sTemp1 Showln sTemp1 Get ComFromAddress Of hoEmailHeader To sTemp1 Showln sTemp1 Get ComFromName Of hoEmailHeader To sTemp1 Showln sTemp1 // Assume at this point your code checks to see if the sender // is one in your contacts database. If so, this is // the code you would write to download the entire // email and save it to a file. // The ckx-imap-uid header field is added when // headers are downloaded. This makes it possible // to get the UID from the email object. Get ComGetHeaderField Of hoEmailHeader "ckx-imap-uid" To sUidStr Move (sUidStr) To iUid Get pvComObject of hoFullEmail to vFullEmail Get ComFetchEmail Of hoImap False iUid True vFullEmail To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // You can use the GenerateFilename method to // generate a unique filename... Get ComGenerateFilename Of hoFullEmail To sFilename // SaveEml saves the entire email, including attachments. Get ComSaveEml Of hoFullEmail sFilename To iSuccess 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.