Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Process Large POP3 Mailbox

Demonstrates how to read email from a mailbox that may contain a large number of emails (on the order of thousands of emails or more).

Download Chilkat Perl Module

use chilkat;

#  The mailman object is used for receiving (POP3)
#  and sending (SMTP) email.
$mailman = new chilkat::CkMailMan();

#  Any string argument automatically begins the 30-day trial.
$success = $mailman->UnlockComponent("30-day trial");
if ($success != 1) {
    print "Component unlock failed" . "\n";
    exit;
}

#  Set the POP3 server's hostname
$mailman->put_MailHost("mail.chilkatsoft.com");

#  Set the POP3 login/password.
$mailman->put_PopUsername("myLogin");
$mailman->put_PopPassword("myPassword");

#  First, get the list of UIDLs for all emails in the mailbox.

$sa = $mailman->GetUidls();

$numEmails = $sa->get_Count();

#  Download the emails in chunks of 10 emails each.
$chunkBeginIdx = 0;
$chunkEndIdx = 9;
if ($chunkEndIdx >= $numEmails) {
    $chunkEndIdx = $numEmails - 1;
}

$saChunk = new chilkat::CkStringArray();
while (($chunkEndIdx < ($numEmails - 1))) {

    #  Build a chunk of 10 UIDLs.
    $saChunk->Clear();
    for ($i = $chunkBeginIdx; $i <= $chunkEndIdx; $i++) {
        $saChunk->Append($sa->GetString($i));
    }

    #  Display the UIDLs in this chunk...

    $chunkStr = $saChunk->saveToText();
    print $chunkStr . "\r\n";
    print "----" . "\r\n" . "\r\n";

    #  Download this chunk of email from the POP3 server.

    $bundle = $mailman->FetchMultiple($saChunk);
    if ($bundle eq null ) {
        print $mailman->lastErrorText() . "\n";
        exit;
    }

    #  Process the bundle...
    #  (your application's processing code goes here...)

    #  Get the next chunk...
    $chunkBeginIdx += 10;
    if ($chunkBeginIdx >= $numEmails) {
        last;
    }

    $chunkEndIdx += 10;
    if ($chunkEndIdx >= $numEmails) {
        $chunkEndIdx = $numEmails - 1;
    }

}


 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.