Sample code for 30+ languages & platforms
Lua

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

Lua
local chilkat = require("chilkat")

-- 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.
local mime = chilkat.Mime.new()

local success = mime:load_mime_file("qa_data/eml/TMobileTextMsg.eml")
-- Show the MIME structure in text format (as opposed to XML format).
print(mime:get_structure("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.

local email = chilkat.Email.new()

success = email:load_eml("qa_data/eml/TMobileTextMsg.eml")

-- We should see 4 related items.
print("Num Related Items = " .. email.num_related_items)
-- There should be 0 attachments.
print("Num Attachments = " .. email.num_attachments)

-- Find the indices of the text/plain related part, and the text/html related part
local i = 0
local numRelatedItems = email.num_related_items
local sbContentType = chilkat.StringBuilder.new()
while i < numRelatedItems do
    sbContentType:append(email:get_related_content_type(i))
    print(i .. ": " .. sbContentType:get_as_string())
    if sbContentType:contents_equal("text/plain", false) then
        print("---- text/plain part:")
        print(email:get_related_string(i, "utf-8"))
    end

    sbContentType:clear()
    i = i + 1
end