Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA
S/MIME
Socket
Spider
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
FileAccess
Bzip2
LZW
Icon

 

 

 

 

 

 

 

 

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 C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C++ Libraries for VC++ 6.0 / Win32

#include <CkMailMan.h>
#include <CkStringArray.h>
#include <CkString.h>
#include <CkEmailBundle.h>

void ChilkatSample(void)
    {
    //  The mailman object is used for receiving (POP3)
    //  and sending (SMTP) email.
    CkMailMan mailman;

    //  Any string argument automatically begins the 30-day trial.
    bool success;
    success = mailman.UnlockComponent("30-day trial");
    if (success != true) {
        printf("Component unlock failed\n");
        return;
    }

    //  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.
    CkStringArray *sa = 0;
    sa = mailman.GetUidls();
    int i;
    int numEmails;
    numEmails = sa->get_Count();

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

    CkStringArray saChunk;
    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...
        CkString chunkStr;
        chunkStr = saChunk.saveToText();
        printf("%s\n",(const char *)chunkStr);
        printf("----\n\n");

        //  Download this chunk of email from the POP3 server.
        CkEmailBundle *bundle = 0;
        bundle = mailman.FetchMultiple(saChunk);
        if (bundle == 0 ) {
            printf("%s\n",mailman.lastErrorText());
            return;
        }

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

        delete bundle;

        //  Get the next chunk...
        chunkBeginIdx += 10;
        if (chunkBeginIdx >= numEmails) {
            break;
        }

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

    }

    delete sa;
    }

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

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

Mail Component · .NET Mail Component · XML Parser