Sample code for 30+ languages & platforms
Tcl

Get Contents of a T-Mobile Text Message (as Email)

See more Email Object Examples

How to get the contents of an email that originated as a T-Mobile SMS text.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# First, for the purpose of understanding the structure of the MIME,
# let's load the MIME into a Chilkat MIME object and examine the MIME structure.
set mime [new_CkMime]

set success [CkMime_LoadMimeFile $mime "qa_data/eml/TMobileTextMsg.eml"]
# Show the MIME structure in text format (as opposed to XML format).
puts [CkMime_getStructure $mime text]

# The MIME structure for our test email looks like this:
# multipart/related
#     text/html
#     text/plain
#     image/gif
#     image/gif
#     image/gif

# The HTML part is not considered a "related item" because the related items
# are defined as being related to the HTML part.  Therefore, we should always
# expect to find a text/html part under a multipart/related.  The HTML parts
# is simply the HTML body, and the other parts are the related items.
# If the text/plain part was to be considered as an alternative body,
# then a properly structured email would include a multipart/alternative structure.

set email [new_CkEmail]

set success [CkEmail_LoadEml $email "qa_data/eml/TMobileTextMsg.eml"]

# We should see 4 related items.
puts "Num Related Items = [CkEmail_get_NumRelatedItems $email]"
# There should be 0 attachments.  
puts "Num Attachments = [CkEmail_get_NumAttachments $email]"

# Find the indices of the text/plain related part, and the text/html related part
set i 0
set numRelatedItems [CkEmail_get_NumRelatedItems $email]
set sbContentType [new_CkStringBuilder]

while {$i < $numRelatedItems} {
    CkStringBuilder_Append $sbContentType [CkEmail_getRelatedContentType $email $i]
    puts "$i: [CkStringBuilder_getAsString $sbContentType]"
    if {D]CkStringBuilder_ContentsEqual $sbContentType "text/plain" 0[/L} then {
        puts "---- text/plain part:"
        puts [CkEmail_getRelatedString $email $i utf-8]
    }

    CkStringBuilder_Clear $sbContentType
    set i [expr $i + 1]
}

delete_CkMime $mime
delete_CkEmail $email
delete_CkStringBuilder $sbContentType