Sample code for 30+ languages & platforms
Tcl

Parsing a Multipart/Digest Email

See more Email Object Examples

This example demonstrates how to parse a multipart/digest email. An email parsed by this sample could have a MIME structure as follows:
multipart/mixed
    text/plain
    text/plain
    multipart/digest
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
    text/plain

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set emlPath "qa_data/eml/multipart_digest.eml"

set email [new_CkEmail]

# For this example, we'll load the email from a .eml.
# The email could alternatively be loaded as a result of downloading from an IMAP or POP3 server..

set success [CkEmail_LoadEml $email $emlPath]
if {$success == 0} then {
    puts [CkEmail_lastErrorText $email]
    delete_CkEmail $email
    exit
}

set numDigests [CkEmail_get_NumDigests $email]
puts "num digests = $numDigests"

set eDigest [new_CkEmail]

set i 0
while {$i < $numDigests} {
    CkEmail_GetDigestEmail $email $i $eDigest
    puts "$i:[CkEmail_fromAddress $eDigest], [CkEmail_subject $eDigest]"
    set m [CkEmail_getHeaderField $eDigest "Message"]
    if {[CkEmail_get_LastMethodSuccess $eDigest] == 1} then {
        puts "    Message = $m"
    }

    set i [expr $i + 1]
}

delete_CkEmail $email
delete_CkEmail $eDigest