Sample code for 30+ languages & platforms
Tcl

Download POP3 Email to MIME

Download the email from a POP3 mailbox directly into MIME, without parsing into email objects.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# The mailman object is used for receiving (POP3) 
# and sending (SMTP) email.
set mailman [new_CkMailMan]

# Set the POP3 server's hostname
CkMailMan_put_MailHost $mailman "pop.example.com"

# Set the POP3 login/password.
CkMailMan_put_PopUsername $mailman "myLogin"
CkMailMan_put_PopPassword $mailman "myPassword"

# First, get the complete set of UIDLs for the email in the POP3 mailbox:
set stUidls [new_CkStringTable]

set success [CkMailMan_FetchUidls $mailman $stUidls]
if {$success == 0} then {
    puts [CkMailMan_lastErrorText $mailman]
    delete_CkMailMan $mailman
    delete_CkStringTable $stUidls
    exit
}

# Download each email as MIME.
# If desired, the MIME can be loaded into an email object.
set bdMime [new_CkBinData]

set email [new_CkEmail]

set count [CkStringTable_get_Count $stUidls]
set i 0
while {$i < $count} {
    set success [CkMailMan_FetchMimeBd $mailman [CkStringTable_stringAt $stUidls $i] $bdMime]
    if {$success == 0} then {
        puts [CkMailMan_lastErrorText $mailman]
        delete_CkMailMan $mailman
        delete_CkStringTable $stUidls
        delete_CkBinData $bdMime
        delete_CkEmail $email
        exit
    }

    CkEmail_SetFromMimeBd $email $bdMime
    puts "From: [CkEmail_from $email]"
    puts "Subject: [CkEmail_subject $email]"

    set i [expr $i + 1]
}

delete_CkMailMan $mailman
delete_CkStringTable $stUidls
delete_CkBinData $bdMime
delete_CkEmail $email