![]() |
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
(Swift) Download an IMAP Message SetDemonstrates how to read a set of IMAP emails. Note: This example requires Chilkat v11.0.0 or greater.
func chilkatTest() { var success: Bool = false // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let imap = CkoImap()! // Connect using TLS. imap.ssl = true imap.port = 993 success = imap.connect("imap.example.com") if success == false { print("\(imap.lastErrorText!)") return } // Authenticate success = imap.login("email_account_login", password: "email_account_password") if success == false { print("\(imap.lastErrorText!)") return } // Select an IMAP mailbox success = imap.selectMailbox("Inbox") if success == false { print("\(imap.lastErrorText!)") return } // Search for messages with the word "test" in the subject. var fetchUids: Bool = true let messageSet = CkoMessageSet()! success = imap.queryMbx("Subject test", bUid: fetchUids, msgSet: messageSet) if success == false { print("\(imap.lastErrorText!)") return } // 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: print("Number of messages = \(messageSet.count.intValue)") let bundle = CkoEmailBundle()! var headersOnly: Bool = false success = imap.fetchMsgSet(headersOnly, msgSet: messageSet, bundle: bundle) if success == false { print("\(imap.lastErrorText!)") return } // Display the Subject and From of each email. let email = CkoEmail()! var i: Int = 0 var numEmails: Int = bundle.messageCount.intValue while i < numEmails { bundle.email(at: i, email: email) print("\(email.getHeaderField("Date")!)") print("\(email.subject!)") print("\(email.from!)") print("--") i = i + 1 } } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.