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
(Swift 2) Process Large POP3 MailboxDemonstrates how to read email from a mailbox that may contain a large number of emails.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let mailman = CkoMailMan() mailman.MailHost = "pop.example.com" mailman.PopUsername = "myLogin" mailman.PopPassword = "myPassword" mailman.MailPort = 995 mailman.PopSsl = true // Get the list of UIDLs for all emails in the mailbox. var sa: CkoStringArray? = mailman.GetUidls() if mailman.LastMethodSuccess == false { print("\(mailman.LastErrorText)") return } var i: Int var numEmails: Int = sa!.Count.intValue if numEmails == 0 { print("Mailbox is empty") return } var chunkSize: Int = 6 // Download the emails in chunks of 6 emails each. var chunkBeginIdx: Int = 0 var chunkEndIdx: Int = chunkSize - 1 if chunkEndIdx >= numEmails { chunkEndIdx = numEmails - 1 } let saChunk = CkoStringArray() while (chunkBeginIdx < numEmails) { print("\(chunkBeginIdx) to \(chunkEndIdx)") // Build a chunk of UIDLs. saChunk.Clear() for i = chunkBeginIdx; i <= chunkEndIdx; i++ { saChunk.Append(sa!.GetString(i)) } // Log the UIDLs in this chunk... var chunkStr: String? = saChunk.SaveToText() print("\(chunkStr!)") // Download this chunk of email from the POP3 server. var bundle: CkoEmailBundle? = mailman.FetchMultiple(saChunk) if mailman.LastMethodSuccess == false { print("\(mailman.LastErrorText)") return } print("Downloaded \(bundle!.MessageCount.intValue) emails.") print("----") // Process the bundle... // (your application's processing code goes here...) bundle = nil // Get the next chunk... chunkBeginIdx = chunkBeginIdx + chunkSize chunkEndIdx = chunkEndIdx + chunkSize if chunkEndIdx >= numEmails { chunkEndIdx = numEmails - 1 } } sa = nil } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.