Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Get a Header Attribute of an Attachment
See more Email Object Examples
Demonstrates the Chilkat Email.GetAttachmentAttr method, which returns a header-field attribute value from a header field of the Nth attachment. The first argument is the zero-based attachment index, the second names a header field, and the third names an attribute within it. This example reads the filename attribute of the attachment's Content-Disposition header.
Background: A MIME header can have named parameters after its main value, such as
Content-Type: text/plain; charset="utf-8"; name="notes.txt". Here charset and name are attributes. GetAttachmentAttr pulls out one named attribute from a chosen header of a specific attachment, sparing you from parsing the raw header string and dealing with quoting or ordering.Chilkat Pascal (Lazarus/Delphi) Downloads
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 GetAttachmentAttr method, which returns a header-field attribute value
// from a header field of the Nth attachment. The first argument is the zero-based attachment
// index, the second is the header field name, and the third is the attribute name.
email := TEmail.Create;
email.Subject := 'Attachment header attribute';
email.AddStringAttachment('notes.txt','Some notes.');
// Get the "filename" attribute of the attachment's Content-Disposition header (index 0).
fname := email.GetAttachmentAttr(0,'Content-Disposition','filename');
WriteLn('Attachment filename attribute: ' + 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.