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
(Perl) Process Large POP3 MailboxDemonstrates how to read email from a mailbox that may contain a large number of emails.
use chilkat(); # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $mailman = chilkat::CkMailMan->new(); $mailman->put_MailHost("pop.example.com"); $mailman->put_PopUsername("myLogin"); $mailman->put_PopPassword("myPassword"); $mailman->put_MailPort(995); $mailman->put_PopSsl(1); # Get the list of UIDLs for all emails in the mailbox. # sa is a StringArray $sa = $mailman->GetUidls(); if ($mailman->get_LastMethodSuccess() == 0) { print $mailman->lastErrorText() . "\r\n"; exit; } $numEmails = $sa->get_Count(); if ($numEmails == 0) { print "Mailbox is empty" . "\r\n"; exit; } $chunkSize = 6; # Download the emails in chunks of 6 emails each. $chunkBeginIdx = 0; $chunkEndIdx = $chunkSize - 1; if ($chunkEndIdx >= $numEmails) { $chunkEndIdx = $numEmails - 1; } $saChunk = chilkat::CkStringArray->new(); while (($chunkBeginIdx < $numEmails)) { print $chunkBeginIdx . " to " . $chunkEndIdx . "\r\n"; # 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(); print $chunkStr . "\r\n"; # Download this chunk of email from the POP3 server. # bundle is a EmailBundle $bundle = $mailman->FetchMultiple($saChunk); if ($mailman->get_LastMethodSuccess() == 0) { print $mailman->lastErrorText() . "\r\n"; exit; } print "Downloaded " . $bundle->get_MessageCount() . " emails." . "\r\n"; print "----" . "\r\n"; # Process the bundle... # (your application's processing code goes here...) # Get the next chunk... $chunkBeginIdx = $chunkBeginIdx + $chunkSize; $chunkEndIdx = $chunkEndIdx + $chunkSize; if ($chunkEndIdx >= $numEmails) { $chunkEndIdx = $numEmails - 1; } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.