Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMime
LOCAL loEmail
LOCAL i
LOCAL lnNumRelatedItems
LOCAL loSbContentType

lnSuccess = 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.
loMime = CreateObject('Chilkat.Mime')

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

loEmail = CreateObject('Chilkat.Email')

lnSuccess = loEmail.LoadEml("qa_data/eml/TMobileTextMsg.eml")

* We should see 4 related items.
? "Num Related Items = " + STR(loEmail.NumRelatedItems)
* There should be 0 attachments.  
? "Num Attachments = " + STR(loEmail.NumAttachments)

* Find the indices of the text/plain related part, and the text/html related part
i = 0
lnNumRelatedItems = loEmail.NumRelatedItems
loSbContentType = CreateObject('Chilkat.StringBuilder')
DO WHILE i < lnNumRelatedItems
    loSbContentType.Append(loEmail.GetRelatedContentType(i))
    ? STR(i) + ": " + loSbContentType.GetAsString()
    IF (loSbContentType.ContentsEqual("text/plain",0)) THEN
        ? "---- text/plain part:"
        ? loEmail.GetRelatedString(i,"utf-8")
    ENDIF

    loSbContentType.Clear()
    i = i + 1
ENDDO

RELEASE loMime
RELEASE loEmail
RELEASE loSbContentType