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) Append Part to MIMEDemonstrates the AppendPart method for adding sub-parts to MIME.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Mime; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; ptMime: HCkMime; topLevelMime: HCkMime; ptMime2: HCkMime; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Create a text/plain part. ptMime := CkMime_Create(); CkMime_SetBodyFromPlainText(ptMime,'This is the plain text body'); Memo1.Lines.Add(CkMime__getMime(ptMime)); Memo1.Lines.Add('****'); // The ptMime contains: // --------------------------------------- // Content-Type: text/plain // Content-Transfer-Encoding: 7bit // // This is the plain text body // --------------------------------------- // Start with an empty MIME object... topLevelMime := CkMime_Create(); // Initialize it to a multipart Content-Type. We'll use multipart/mixed. CkMime_NewMultipartMixed(topLevelMime); // Append the ptMime as a child. CkMime_AppendPart(topLevelMime,ptMime); Memo1.Lines.Add(CkMime__getMime(topLevelMime)); Memo1.Lines.Add('****'); // The topLevelMime contains: // -------------------------- // Content-Type: multipart/mixed; boundary="------------010907090104040508040404" // // --------------010907090104040508040404 // Content-Type: text/plain // Content-Transfer-Encoding: 7bit // // This is the plain text body // --------------010907090104040508040404-- // // IMPORTANT: A copy of the MIME passed in AppendPart is appended. // Therefore, in this case, changing ptMime does not change the text/plain sub-part in topLevelMime. // For example: CkMime_SetBody(ptMime,'this is the new plain text body.'); // topLevelMime is unchanged. Memo1.Lines.Add(CkMime__getMime(topLevelMime)); Memo1.Lines.Add('****'); // To change the content in topLevelMime, we must get the text/plain part. // For example: ptMime2 := CkMime_GetPart(topLevelMime,0); CkMime_SetBody(ptMime2,'this is the new plain text body.'); CkMime_Dispose(ptMime2); // Now topLevelMime is changed. Memo1.Lines.Add(CkMime__getMime(topLevelMime)); CkMime_Dispose(ptMime); CkMime_Dispose(topLevelMime); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.