Sample code for 30+ languages & platforms
Swift

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

Swift

func chilkatTest() {
    var success: Bool = false

    // 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.
    let mime = CkoMime()!

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

    let email = CkoEmail()!

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

    // We should see 4 related items.
    print("Num Related Items = \(email.numRelatedItems.intValue)")
    // There should be 0 attachments.  
    print("Num Attachments = \(email.numAttachments.intValue)")

    // Find the indices of the text/plain related part, and the text/html related part
    var i: Int = 0
    var numRelatedItems: Int = email.numRelatedItems.intValue
    let sbContentType = CkoStringBuilder()!
    while i < numRelatedItems {
        sbContentType.append(value: email.getRelatedContentType(index: i))
        print("\(i): \(sbContentType.getAsString()!)")
        if sbContentType.contentsEqual(str: "text/plain", caseSensitive: false) {
            print("---- text/plain part:")
            print("\(email.getRelatedString(index: i, charset: "utf-8")!)")
        }

        sbContentType.clear()
        i = i + 1
    }


}