![]() |
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
(AutoIt) Download an IMAP Message SetDemonstrates how to read a set of IMAP emails. Note: This example requires Chilkat v11.0.0 or greater.
Local $bSuccess = False ; 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 $bSuccess = $oImap.Connect("imap.example.com") If ($bSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Authenticate $bSuccess = $oImap.Login("email_account_login","email_account_password") If ($bSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Select an IMAP mailbox $bSuccess = $oImap.SelectMailbox("Inbox") If ($bSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Search for messages with the word "test" in the subject. Local $bFetchUids = True $oMessageSet = ObjCreate("Chilkat.MessageSet") $bSuccess = $oImap.QueryMbx("Subject test",$bFetchUids,$oMessageSet) If ($bSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Download the messages in a single call to FetchMsgSet. ; ; 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 FetchMsgSet. ; 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 FetchMsgSet: ConsoleWrite("Number of messages = " & $oMessageSet.Count & @CRLF) $oBundle = ObjCreate("Chilkat.EmailBundle") Local $bHeadersOnly = False $bSuccess = $oImap.FetchMsgSet($bHeadersOnly,$oMessageSet,$oBundle) If ($bSuccess = False) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Display the Subject and From of each email. $oEmail = ObjCreate("Chilkat.Email") Local $i = 0 Local $iNumEmails = $oBundle.MessageCount While $i < $iNumEmails $oBundle.EmailAt($i,$oEmail) ConsoleWrite($oEmail.GetHeaderField("Date") & @CRLF) ConsoleWrite($oEmail.Subject & @CRLF) ConsoleWrite($oEmail.From & @CRLF) ConsoleWrite("--" & @CRLF) $i = $i + 1 Wend |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.