Sample code for 30+ languages & platforms
Delphi DLL

Create MIME Containing HTML

See more MIME Examples

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

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;
htmlDoc: 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');

htmlDoc := '<html><body>Test</body></html>';

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

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

// The MIME should look like this:

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

// 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/html; 
// Content-Transfer-Encoding: base64
// 
// PGh0bWw+PGJvZHk+VGVzdDwvYm9keT48L2h0bWw+

CkMime_Dispose(mime);

end;