Sample code for 30+ languages & platforms
Ruby

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 Ruby Downloads

Ruby
require 'chilkat'

success = false

# 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.
mime = Chilkat::CkMime.new()

success = mime.LoadMimeFile("qa_data/eml/TMobileTextMsg.eml")
# Show the MIME structure in text format (as opposed to XML format).
print mime.getStructure("text") + "\n";

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

email = Chilkat::CkEmail.new()

success = email.LoadEml("qa_data/eml/TMobileTextMsg.eml")

# We should see 4 related items.
print "Num Related Items = " + email.get_NumRelatedItems().to_s() + "\n";
# There should be 0 attachments.  
print "Num Attachments = " + email.get_NumAttachments().to_s() + "\n";

# Find the indices of the text/plain related part, and the text/html related part
i = 0
numRelatedItems = email.get_NumRelatedItems()
sbContentType = Chilkat::CkStringBuilder.new()
while i < numRelatedItems
    sbContentType.Append(email.getRelatedContentType(i))
    print i.to_s() + ": " + sbContentType.getAsString() + "\n";
    if (sbContentType.ContentsEqual("text/plain",false))
        print "---- text/plain part:" + "\n";
        print email.getRelatedString(i,"utf-8") + "\n";
    end

    sbContentType.Clear()
    i = i + 1
end