Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

Quick Start
Python Unicode
Python Byte Array
Python Certs
Python Email
Python Encryption
Python FTP
HTML-to-XML
Python HTTP
Python IMAP
Python MHT
Python MIME
Python RSA
Python S/MIME
Python Signatures
Python Socket
Python Spider
Python Tar
Python Upload
Python XML
Python XMP
Python Zip

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

Unreleased...
Bzip2
LZW
Bz2
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 Python Library

import sys
import chilkat

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

#  Any string argument automatically begins the 30-day trial.
success = mailman.UnlockComponent("30-day trial")
if (success != True):
    print "Component unlock failed"
    sys.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 = chilkat.CkStringArray()
while (chunkEndIdx < (numEmails - 1)) :

    #  Build a chunk of 10 UIDLs.
    saChunk.Clear()
    for i in range(chunkBeginIdx,(chunkEndIdx)-1):
        saChunk.Append(sa.GetString(i))

    #  Display the UIDLs in this chunk...

    chunkStr = saChunk.saveToText()
    print chunkStr
    print "----" + "\n"

    #  Download this chunk of email from the POP3 server.

    bundle = mailman.FetchMultiple(saChunk)
    if (bundle == None ):
        print mailman.lastErrorText()
        sys.exit()

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

    #  Get the next chunk...
    chunkBeginIdx += 10
    if (chunkBeginIdx >= numEmails):
        break

    chunkEndIdx += 10
    if (chunkEndIdx >= numEmails):
        chunkEndIdx = numEmails - 1


 

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

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