Sample code for 30+ languages & platforms
Lazarus Pascal

Get the Filename of an Attachment

See more Email Object Examples

Demonstrates the Chilkat Email.GetAttachmentFilename method, which retrieves an attachment's filename as stored in the MIME. The index is zero-based. This example adds an attachment and reads its filename.

Background: An attachment's filename comes from the sender's message and is not guaranteed to be safe or unique — it may include path separators or characters that are awkward on the local filesystem, and two attachments can share a name. When saving attachments to disk, treat this value as untrusted input: sanitize it and guard against collisions (see the OverwriteExisting property, which can auto-generate unique names).

Chilkat Lazarus Pascal Downloads

Lazarus Pascal
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;
  fname: string;

begin
  //  Demonstrates the GetAttachmentFilename method, which retrieves an attachment's filename
  //  (as stored in the MIME).  The index is zero-based.

  email := TEmail.Create;
  email.Subject := 'Attachment filename';

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

  //  Get the filename of the first attachment (index 0).
  fname := email.GetAttachmentFilename(0);
  WriteLn('Attachment 0 filename: ' + fname);


  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.