Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Add an HTML Alternative Body to an Email
See more Email Object Examples
Demonstrates the Chilkat Email.AddHtmlAlternativeBody method, which adds an HTML alternative body. Combined with a plain-text body, it produces a multipart/alternative email that offers both representations of the same content. This example sets a plain-text body, adds an HTML alternative, and prints the resulting alternative count.
Background: A well-formed HTML email usually ships two versions of the body: a rich HTML version and a plain-text fallback, wrapped in a
multipart/alternative container. The receiving client displays whichever it prefers — modern clients show the HTML, while text-only clients (or spam filters and accessibility tools) use the plain text. Providing both improves deliverability and ensures every recipient can read the message.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Email;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
email: TEmail;
begin
// Demonstrates the AddHtmlAlternativeBody method, which adds an HTML alternative body to
// the email. Combined with a plain-text body, this produces a multipart/alternative
// email that offers both representations.
email := TEmail.Create;
email.Subject := 'Plain-text and HTML alternatives';
// Start with a plain-text body.
email.SetTextBody('This is the plain-text version of the message.','text/plain');
// Add an HTML alternative, creating a multipart/alternative email.
email.AddHtmlAlternativeBody('<html><body><b>This is the HTML version.</b></body></html>');
WriteLn('NumAlternatives = ' + email.NumAlternatives);
email.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.