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
(Go) Process Large POP3 MailboxDemonstrates how to read email from a mailbox that may contain a large number of emails.
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. mailman := chilkat.NewMailMan() mailman.SetMailHost("pop.example.com") mailman.SetPopUsername("myLogin") mailman.SetPopPassword("myPassword") mailman.SetMailPort(995) mailman.SetPopSsl(true) // Get the list of UIDLs for all emails in the mailbox. sa := mailman.GetUidls() if mailman.LastMethodSuccess() == false { fmt.Println(mailman.LastErrorText()) mailman.DisposeMailMan() return } var i int numEmails := sa.Count() if numEmails == 0 { fmt.Println("Mailbox is empty") mailman.DisposeMailMan() return } chunkSize := 6 // Download the emails in chunks of 6 emails each. chunkBeginIdx := 0 chunkEndIdx := chunkSize - 1 if chunkEndIdx >= numEmails { chunkEndIdx = numEmails - 1 } saChunk := chilkat.NewStringArray() for (chunkBeginIdx < numEmails) { fmt.Println(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... chunkStr := saChunk.SaveToText() fmt.Println(*chunkStr) // Download this chunk of email from the POP3 server. bundle := mailman.FetchMultiple(saChunk) if mailman.LastMethodSuccess() == false { fmt.Println(mailman.LastErrorText()) mailman.DisposeMailMan() saChunk.DisposeStringArray() return } fmt.Println("Downloaded ", bundle.MessageCount(), " emails.") fmt.Println("----") // Process the bundle... // (your application's processing code goes here...) bundle.DisposeEmailBundle() // Get the next chunk... chunkBeginIdx = chunkBeginIdx + chunkSize chunkEndIdx = chunkEndIdx + chunkSize if chunkEndIdx >= numEmails { chunkEndIdx = numEmails - 1 } } sa.DisposeStringArray() mailman.DisposeMailMan() saChunk.DisposeStringArray() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.