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
(PHP Extension) Process Large POP3 MailboxDemonstrates how to read email from a mailbox that may contain a large number of emails.
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. $mailman = new CkMailMan(); $mailman->put_MailHost('pop.example.com'); $mailman->put_PopUsername('myLogin'); $mailman->put_PopPassword('myPassword'); $mailman->put_MailPort(995); $mailman->put_PopSsl(true); // Get the list of UIDLs for all emails in the mailbox. // sa is a CkStringArray $sa = $mailman->GetUidls(); if ($mailman->get_LastMethodSuccess() == false) { print $mailman->lastErrorText() . "\n"; exit; } $numEmails = $sa->get_Count(); if ($numEmails == 0) { print 'Mailbox is empty' . "\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 = new CkStringArray(); while (($chunkBeginIdx < $numEmails)) { print $chunkBeginIdx . ' to ' . $chunkEndIdx . "\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 . "\n"; // Download this chunk of email from the POP3 server. // bundle is a CkEmailBundle $bundle = $mailman->FetchMultiple($saChunk); if ($mailman->get_LastMethodSuccess() == false) { print $mailman->lastErrorText() . "\n"; exit; } print 'Downloaded ' . $bundle->get_MessageCount() . ' emails.' . "\n"; print '----' . "\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.