Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMime
    Handle hoEmail
    Integer i
    Integer iNumRelatedItems
    Handle hoSbContentType
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

    // 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.
    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End

    Get ComLoadMimeFile Of hoMime "qa_data/eml/TMobileTextMsg.eml" To iSuccess
    // Show the MIME structure in text format (as opposed to XML format).
    Get ComGetStructure Of hoMime "text" To sTemp1
    Showln sTemp1

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

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    Get ComLoadEml Of hoEmail "qa_data/eml/TMobileTextMsg.eml" To iSuccess

    // We should see 4 related items.
    Get ComNumRelatedItems Of hoEmail To iTemp1
    Showln "Num Related Items = " iTemp1
    // There should be 0 attachments.  
    Get ComNumAttachments Of hoEmail To iTemp1
    Showln "Num Attachments = " iTemp1

    // Find the indices of the text/plain related part, and the text/html related part
    Move 0 To i
    Get ComNumRelatedItems Of hoEmail To iNumRelatedItems
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbContentType
    If (Not(IsComObjectCreated(hoSbContentType))) Begin
        Send CreateComObject of hoSbContentType
    End
    While (i < iNumRelatedItems)
        Get ComGetRelatedContentType Of hoEmail i To sTemp1
        Get ComAppend Of hoSbContentType sTemp1 To iSuccess
        Get ComGetAsString Of hoSbContentType To sTemp1
        Showln i ": " sTemp1
        Get ComContentsEqual Of hoSbContentType "text/plain" False To bTemp1
        If (bTemp1) Begin
            Showln "---- text/plain part:"
            Get ComGetRelatedString Of hoEmail i "utf-8" To sTemp1
            Showln sTemp1
        End

        Send ComClear To hoSbContentType
        Move (i + 1) To i
    Loop



End_Procedure