Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
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 Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Mime,
Chilkat.StringBuilder,
Chilkat.Email;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
mime: TMime;
email: TEmail;
i: Integer;
numRelatedItems: Integer;
sbContentType: TStringBuilder;
begin
success := 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.
mime := TMime.Create;
success := mime.LoadMimeFile('qa_data/eml/TMobileTextMsg.eml');
// Show the MIME structure in text format (as opposed to XML format).
WriteLn(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 := TEmail.Create;
success := email.LoadEml('qa_data/eml/TMobileTextMsg.eml');
// We should see 4 related items.
WriteLn('Num Related Items = ' + email.NumRelatedItems);
// There should be 0 attachments.
WriteLn('Num Attachments = ' + email.NumAttachments);
// Find the indices of the text/plain related part, and the text/html related part
i := 0;
numRelatedItems := email.NumRelatedItems;
sbContentType := TStringBuilder.Create;
while i < numRelatedItems do
begin
sbContentType.Append(email.GetRelatedContentType(i));
WriteLn(i + ': ' + sbContentType.GetAsString());
if (sbContentType.ContentsEqual('text/plain',False)) then
begin
WriteLn('---- text/plain part:');
WriteLn(email.GetRelatedString(i,'utf-8'));
end;
sbContentType.Clear();
i := i + 1;
end;
mime.Free;
email.Free;
sbContentType.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.