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