Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkMime.pb"
IncludeFile "CkEmail.pb"

Procedure ChilkatExample()

    success.i = 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.
    mime.i = CkMime::ckCreate()
    If mime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkMime::ckLoadMimeFile(mime,"qa_data/eml/TMobileTextMsg.eml")
    ; Show the MIME structure in text format (as opposed to XML format).
    Debug CkMime::ckGetStructure(mime,"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.

    email.i = CkEmail::ckCreate()
    If email.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkEmail::ckLoadEml(email,"qa_data/eml/TMobileTextMsg.eml")

    ; We should see 4 related items.
    Debug "Num Related Items = " + Str(CkEmail::ckNumRelatedItems(email))
    ; There should be 0 attachments.  
    Debug "Num Attachments = " + Str(CkEmail::ckNumAttachments(email))

    ; Find the indices of the text/plain related part, and the text/html related part
    i.i = 0
    numRelatedItems.i = CkEmail::ckNumRelatedItems(email)
    sbContentType.i = CkStringBuilder::ckCreate()
    If sbContentType.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    While i < numRelatedItems
        CkStringBuilder::ckAppend(sbContentType,CkEmail::ckGetRelatedContentType(email,i))
        Debug Str(i) + ": " + CkStringBuilder::ckGetAsString(sbContentType)
        If CkStringBuilder::ckContentsEqual(sbContentType,"text/plain",0)
            Debug "---- text/plain part:"
            Debug CkEmail::ckGetRelatedString(email,i,"utf-8")
        EndIf

        CkStringBuilder::ckClear(sbContentType)
        i = i + 1
    Wend


    CkMime::ckDispose(mime)
    CkEmail::ckDispose(email)
    CkStringBuilder::ckDispose(sbContentType)


    ProcedureReturn
EndProcedure