Sample code for 30+ languages & platforms
Delphi DLL

Create MIME Containing XML

See more MIME Examples

Calls SetBodyFromXml to load XML into the MIME body. Also sets the Content-Type header to "text/xml", and the Content-Transfer-Encoding to an appropriate transfer encoding based on the characters found in the XML.

Chilkat Delphi DLL Downloads

Delphi DLL
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;
mime: HCkMime;
xmlData: PWideChar;

begin
success := False;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

mime := CkMime_Create();

// Add a few header fields:
success := CkMime_AddHeaderField(mime,'Description','this is a test');
success := CkMime_AddHeaderField(mime,'MyId','123');

xmlData := '<something>123</something>';

// Set the mime body via SetBodyFromXml.  This also
// has the intended side-effect of adding the Content-Type
// and Content-Transfer-Encoding headers.
success := CkMime_SetBodyFromXml(mime,xmlData);

Memo1.Lines.Add(CkMime__getMime(mime));

// The MIME should look like this:

// Description: this is a test
// MyId: 123
// Content-Type: text/xml; 
// Content-Transfer-Encoding: 7bit
// 
// <something>123</something>

// Note: The Content-Transfer-Encoding may be changed.
// For example, to use "base64", do this:
CkMime_putEncoding(mime,'base64');

// Show the MIME again, this time using the base64 
// transfer encoding:
Memo1.Lines.Add(CkMime__getMime(mime));

// It should look like this:

// Description: this is a test
// MyId: 123
// Content-Type: text/xml; 
// Content-Transfer-Encoding: base64
// 
// PHNvbWV0aGluZz4xMjM8L3NvbWV0aGluZz4=

CkMime_Dispose(mime);

end;