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

Remove All Attachments from an Email

See more Email Object Examples

Demonstrates the Chilkat Email.DropAttachments method, which removes all ordinary attachments from the in-memory message. Related items (inline images, style sheets) and attached message/rfc822 emails are not affected. This example adds two attachments, drops them, and prints the count before and after.

Background: Chilkat distinguishes three kinds of enclosed content: ordinary attachments (files meant to be saved), related items (resources that support the HTML display), and nested attached messages. DropAttachments targets only the first category — useful, for example, when forwarding or re-sending a message body without carrying its original file attachments along.

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 DropAttachments method, which removes all ordinary attachments from
  //  the email.  Related items and attached messages are not affected.

  email := TEmail.Create;
  email.Subject := 'Drop attachments example';

  email.AddStringAttachment('a.txt','first attachment');
  email.AddStringAttachment('b.txt','second attachment');
  WriteLn('NumAttachments before = ' + email.NumAttachments);

  //  Remove all attachments.
  email.DropAttachments();

  WriteLn('NumAttachments after = ' + email.NumAttachments);


  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.