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

Get a Header Field of an Attachment

See more Email Object Examples

Demonstrates the Chilkat Email.GetAttachmentHeader method, which returns the value of a named header field of an attachment. The first argument is the zero-based attachment index and the second is the MIME header-field name. This example reads the Content-Disposition header of the first attachment.

Background: Each attachment is a MIME part with its own header block. Where GetAttachmentAttr extracts a single named parameter, GetAttachmentHeader returns the entire value of a header field — for example the full Content-Disposition: attachment; filename="notes.txt" line. That is useful for inspecting or debugging exactly how a part is described, including any custom X- headers a sender may have added.

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;
  disp: string;

begin
  //  Demonstrates the GetAttachmentHeader method, which returns the value of a header field
  //  (by name) of an attachment.  The first argument is the zero-based attachment index and the second is the
  //  MIME header-field name.

  email := TEmail.Create;
  email.Subject := 'Attachment header field';

  email.AddStringAttachment('notes.txt','Some notes.');

  //  Get the Content-Disposition header of the first attachment (index 0).
  disp := email.GetAttachmentHeader(0,'Content-Disposition');
  WriteLn('Attachment 0 Content-Disposition: ' + disp);


  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.