Delphi DLL
Delphi DLL
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 DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Mime, StringBuilder, Email;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
mime: HCkMime;
email: HCkEmail;
i: Integer;
numRelatedItems: Integer;
sbContentType: HCkStringBuilder;
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 := CkMime_Create();
success := CkMime_LoadMimeFile(mime,'qa_data/eml/TMobileTextMsg.eml');
// Show the MIME structure in text format (as opposed to XML format).
Memo1.Lines.Add(CkMime__getStructure(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 := CkEmail_Create();
success := CkEmail_LoadEml(email,'qa_data/eml/TMobileTextMsg.eml');
// We should see 4 related items.
Memo1.Lines.Add('Num Related Items = ' + IntToStr(CkEmail_getNumRelatedItems(email)));
// There should be 0 attachments.
Memo1.Lines.Add('Num Attachments = ' + IntToStr(CkEmail_getNumAttachments(email)));
// Find the indices of the text/plain related part, and the text/html related part
i := 0;
numRelatedItems := CkEmail_getNumRelatedItems(email);
sbContentType := CkStringBuilder_Create();
while i < numRelatedItems do
begin
CkStringBuilder_Append(sbContentType,CkEmail__getRelatedContentType(email,i));
Memo1.Lines.Add(IntToStr(i) + ': ' + CkStringBuilder__getAsString(sbContentType));
if (CkStringBuilder_ContentsEqual(sbContentType,'text/plain',False)) then
begin
Memo1.Lines.Add('---- text/plain part:');
Memo1.Lines.Add(CkEmail__getRelatedString(email,i,'utf-8'));
end;
CkStringBuilder_Clear(sbContentType);
i := i + 1;
end;
CkMime_Dispose(mime);
CkEmail_Dispose(email);
CkStringBuilder_Dispose(sbContentType);
end;