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 3,4,5...) 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.