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) Process New Email by Scanning for SendersScan email and save application-selected emails to EML files with unique filenames.
Use ChilkatAx-win32.pkg Procedure Test Handle hoImap Boolean iSuccess Variant vMessageSet Handle hoMessageSet Boolean iFetchUids Variant vBundle Handle hoBundle Integer i Integer iNumEmails Variant vEmail Handle hoEmail String sUidStr Integer iUid Variant vFullEmail Handle hoFullEmail String sFilename String sTemp1 Boolean bTemp1 // 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 <> 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 // 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 ComSearch Of hoImap "NEW" iFetchUids To vMessageSet If (IsComObject(vMessageSet)) Begin Get Create (RefClass(cComChilkatMessageSet)) To hoMessageSet Set pvComObject Of hoMessageSet To vMessageSet End Get ComLastMethodSuccess Of hoImap To bTemp1 If (bTemp1 = 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 ComFetchHeaders Of hoImap vMessageSet To vBundle If (IsComObject(vBundle)) Begin Get Create (RefClass(cComChilkatEmailBundle)) To hoBundle Set pvComObject Of hoBundle To vBundle End Get ComLastMethodSuccess Of hoImap To bTemp1 If (bTemp1 = False) Begin Send Destroy of hoMessageSet Get ComLastErrorText Of hoImap To sTemp1 Showln sTemp1 Procedure_Return End // Loop over the email objects... Move 0 To i Get ComMessageCount Of hoBundle To iNumEmails While (i < iNumEmails) Get ComGetEmail Of hoBundle i To vEmail If (IsComObject(vEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoEmail Set pvComObject Of hoEmail To vEmail End // 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 hoEmail To sTemp1 Showln sTemp1 Get ComFromAddress Of hoEmail To sTemp1 Showln sTemp1 Get ComFromName Of hoEmail 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 hoEmail "ckx-imap-uid" To sUidStr Move (sUidStr) To iUid Get ComFetchSingle Of hoImap iUid True To vFullEmail If (IsComObject(vFullEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoFullEmail Set pvComObject Of hoFullEmail To vFullEmail End Get ComLastMethodSuccess Of hoImap To bTemp1 If (bTemp1 = True) Begin // You may 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 Send Destroy of hoFullEmail End Showln "--" Send Destroy of hoEmail Move (i + 1) To i Loop // Disconnect from the IMAP server. Get ComDisconnect Of hoImap To iSuccess Send Destroy of hoMessageSet Send Destroy of hoBundle End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.