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

Add Header Field to MIME Sub-Header in Email

See more Email Object Examples

Demonstrates how to add a header field to one of the attachment sub-headers in an email.

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
  success: Boolean;
  email: TEmail;

begin
  success := False;

  //  This example requires the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  email := TEmail.Create;

  email.Subject := 'test';
  email.AddTo('Chilkat','support@chilkatsoft.com');
  email.From := 'Matt <matt@example.com>';
  email.Body := 'This is a simple plain-text body.';

  success := email.AddFileAttachment2('qa_data/1.HPM','application/x-hprimnet');
  if (success = False) then
    begin
      WriteLn(email.LastErrorText);
      Exit;
    end;

  //  Add a "ContentDescription: HPM/3.0" in the attachment's sub-header.
  //  The 1st attachment is at index 0.
  email.AddAttachmentHeader(0,'Content-Description','HPM/3.0');

  //  Show the email MIME:
  WriteLn(email.GetMime());

  //  This is the output:

  //  MIME-Version: 1.0
  //  Date: Wed, 16 Jan 2019 10:05:18 -0600
  //  Message-ID: <93B88835586270B7BE5202F84E171F29C10BA935@CHILKATSLICE>
  //  Content-Type: multipart/mixed; boundary="------------000502000000020502010608"
  //  X-Priority: 3 (Normal)
  //  Subject: test
  //  To: Chilkat <support@chilkatsoft.com>
  //  From: Matt <matt@example.com>
  //  
  //  --------------000502000000020502010608
  //  Content-Type: text/plain; charset=us-ascii; format=flowed
  //  Content-Transfer-Encoding: 7bit
  //  
  //  This is a simple plain-text body.
  //  --------------000502000000020502010608
  //  Content-Type: application/x-hprimnet; name="1.HPM"
  //  Content-Transfer-Encoding: base64
  //  Content-Disposition: attachment; filename="1.HPM"
  //  Content-Description: HPM/3.0
  //  
  //  FILE_DATA_IS_HERE...
  //  
  //  --------------000502000000020502010608--


  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.