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
(AutoIt) Download IMAP Message Set using FetchBundleDemonstrates how to read IMAP emails using the FetchBundle method.
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oImap = ObjCreate("Chilkat.Imap") ; Connect using TLS. $oImap.Ssl = True $oImap.Port = 993 Local $bSuccess = $oImap.Connect("imap.example.com") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Authenticate $bSuccess = $oImap.Login("email_account_login","email_account_password") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Select an IMAP mailbox $bSuccess = $oImap.SelectMailbox("Inbox") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Search for messages with the word "test" in the subject. Local $bFetchUids = True Local $oMessageSet = $oImap.Search("Subject test",$bFetchUids) If ($oImap.LastMethodSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Download the messages in a single call to FetchBundle. ; ; This only makes sense if the number of emails to be downloaded is not too large. ; For example, you wouldn't want to download 10000 emails in a single call to FetchBundle. ; Why? For two reasons: (1) It could potentially cause an out-of-memory condition, and ; (2) it would take an extremely large amount of time. The longer the amount of time, ; the greater the likelihood of some kind of external networking or server problem occuring, ; and if it happens, then you would need to re-download everything from the beginning again. ; For large numbers of emails, it's better to loop over the emails in the message set ; and download/process one at a time as shown here: Download IMAP Messages One at a Time ; Downloading one message at a time makes it possible to resume the downloads rather than restart the entire operation all over again. ; If the message set is reasonable in size, you can download all at once using FetchBundle: ConsoleWrite("Number of messages = " & $oMessageSet.Count & @CRLF) Local $oBundle = $oImap.FetchBundle($oMessageSet) If ($oImap.LastMethodSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Display the Subject and From of each email. Local $i = 0 Local $iNumEmails = $oBundle.MessageCount While $i < $iNumEmails Local $oEmail = $oBundle.GetEmail($i) ConsoleWrite($oEmail.GetHeaderField("Date") & @CRLF) ConsoleWrite($oEmail.Subject & @CRLF) ConsoleWrite($oEmail.From & @CRLF) ConsoleWrite("--" & @CRLF) $i = $i + 1 Wend |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.