Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Get Contents of a T-Mobile Text Message (as Email)How to get the contents of an email that originated as a T-Mobile SMS text.
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 mime: HCkMime; success: Boolean; email: HCkEmail; i: Integer; numRelatedItems: Integer; sbContentType: HCkStringBuilder; begin // 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; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.