Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

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

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

Unreleased...
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 Ruby Library

require 'chilkat'

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

#  Any string argument automatically begins the 30-day trial.
success = mailman.UnlockComponent("30-day trial")
if (success != true)
    print "Component unlock failed" + "\n"
    exit
end

#  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
end

saChunk = Chilkat::CkStringArray.new()
while (chunkEndIdx < (numEmails - 1))

    #  Build a chunk of 10 UIDLs.
    saChunk.Clear()
    for i in chunkBeginIdx .. chunkEndIdx
        saChunk.Append(sa.GetString(i))
    end

    #  Display the UIDLs in this chunk...

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

    #  Download this chunk of email from the POP3 server.

    bundle = mailman.FetchMultiple(saChunk)
    if (bundle == nil )
        print mailman.lastErrorText() + "\n"
        exit
    end

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

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

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

end


 

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

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