Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
Socket / SSL
SFTP
SMTP
Spider
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 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-2010 Chilkat Software, Inc. All Rights Reserved.