Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Get a Header Field by Name

See more Email Object Examples

Demonstrates the Chilkat Email.GetHeaderField method, which returns the value of a header field by name. Header-field names are case-insensitive, so X-Priority and x-priority refer to the same field. This example reads several headers by name.

Background: Looking up a header by name is the quickest way to read a known field like Subject or a custom X- header. One caveat: some header names (such as Received) can legitimately appear more than once. When a field may repeat and you need every occurrence, enumerate by index with GetHeaderFieldName and GetHeaderFieldValue instead of looking up by name.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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 GetHeaderField method, which returns the value of a header field by
  //  name.  Header-field names are case-insensitive.

  email := TEmail.Create;
  email.Subject := 'Quarterly report';
  email.From := 'alice@example.com';
  email.AddHeaderField('X-Priority','1');

  //  Get header field values by name.
  WriteLn('Subject = ' + email.GetHeaderField('Subject'));
  WriteLn('From = ' + email.GetHeaderField('From'));
  WriteLn('X-Priority = ' + email.GetHeaderField('x-priority'));


  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.