Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oMime
LOCAL oEmail
LOCAL i
LOCAL nNumRelatedItems
LOCAL oSbContentType

nSuccess := 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.
oMime := CreateObject("Chilkat.Mime")

nSuccess := oMime:LoadMimeFile("qa_data/eml/TMobileTextMsg.eml")
//  Show the MIME structure in text format (as opposed to XML format).
? oMime:GetStructure("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.

oEmail := CreateObject("Chilkat.Email")

nSuccess := oEmail:LoadEml("qa_data/eml/TMobileTextMsg.eml")

//  We should see 4 related items.
? "Num Related Items = " + Str(oEmail:NumRelatedItems)
//  There should be 0 attachments.  
? "Num Attachments = " + Str(oEmail:NumAttachments)

//  Find the indices of the text/plain related part, and the text/html related part
i := 0
nNumRelatedItems := oEmail:NumRelatedItems
oSbContentType := CreateObject("Chilkat.StringBuilder")
DO WHILE i < nNumRelatedItems
    oSbContentType:Append(oEmail:GetRelatedContentType(i))
    ? Str(i) + ": " + oSbContentType:GetAsString()
    IF (oSbContentType:ContentsEqual("text/plain", 0))
        ? "---- text/plain part:"
        ? oEmail:GetRelatedString(i, "utf-8")
    ENDIF

    oSbContentType:Clear()
    i := i + 1
ENDDO

oMime:destroy()
oEmail:destroy()
oSbContentType:destroy()