Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Define a Mail-Merge Replacement Pattern
See more Email Object Examples
Demonstrates the Chilkat Email.SetReplacePattern method, which defines a mail-merge replacement pair. The first argument is the pattern to find and the second is the replacement text. When the email is sent, the patterns are replaced in the bodies and header fields. This example defines two pairs and prints the count.
Background: This is Chilkat's built-in mail merge. You compose one message with placeholder tokens (like
FIRST_NAME or CITY), register each token and its value with SetReplacePattern, and the substitutions are applied at send time — personalizing a bulk mailing without building a separate message for every recipient. Read the pairs back with GetReplacePattern and GetReplaceString.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 SetReplacePattern method, which defines a mail-merge replacement pair.
// The first argument is the pattern to find and the second is the replacement text. When the email is sent,
// the patterns are replaced in the bodies and header fields.
email := TEmail.Create;
email.Subject := 'Hello FIRST_NAME';
email.Body := 'Dear FIRST_NAME, welcome to CITY.';
// Define two mail-merge replacement pairs.
email.SetReplacePattern('FIRST_NAME','John');
email.SetReplacePattern('CITY','Denver');
WriteLn('NumReplacePatterns = ' + email.NumReplacePatterns);
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.