Sample code for 30+ languages & platforms
Delphi ActiveX

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 Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
mime: TChilkatMime;
email: TChilkatEmail;
i: Integer;
numRelatedItems: Integer;
sbContentType: TChilkatStringBuilder;

begin
success := 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 := TChilkatMime.Create(Self);

success := mime.LoadMimeFile('qa_data/eml/TMobileTextMsg.eml');
// Show the MIME structure in text format (as opposed to XML format).
Memo1.Lines.Add(mime.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.

email := TChilkatEmail.Create(Self);

success := email.LoadEml('qa_data/eml/TMobileTextMsg.eml');

// We should see 4 related items.
Memo1.Lines.Add('Num Related Items = ' + IntToStr(email.NumRelatedItems));
// There should be 0 attachments.  
Memo1.Lines.Add('Num Attachments = ' + IntToStr(email.NumAttachments));

// Find the indices of the text/plain related part, and the text/html related part
i := 0;
numRelatedItems := email.NumRelatedItems;
sbContentType := TChilkatStringBuilder.Create(Self);
while i < numRelatedItems do
  begin
    sbContentType.Append(email.GetRelatedContentType(i));
    Memo1.Lines.Add(IntToStr(i) + ': ' + sbContentType.GetAsString());
    if (sbContentType.ContentsEqual('text/plain',0)) then
      begin
        Memo1.Lines.Add('---- text/plain part:');
        Memo1.Lines.Add(email.GetRelatedString(i,'utf-8'));
      end;

    sbContentType.Clear();
    i := i + 1;
  end;
end;