Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Get an Attachment as a Text String
See more Email Object Examples
Demonstrates the Chilkat Email.GetAttachmentString method, which returns the Nth attachment's data as text. The first argument is the zero-based attachment index and the second is the charset used to interpret the attachment bytes. This example reads a text attachment as utf-8.
Background: Attachments are stored as bytes, so turning one back into a string requires knowing its charset — the rule for mapping bytes to characters. Supplying the correct charset (often
utf-8) yields readable text; the wrong one produces garbled characters. This method is meant for text attachments such as .txt, .csv, or .xml; binary attachments should be handled as raw data instead.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;
content: string;
begin
// Demonstrates the GetAttachmentString method, which returns the Nth attachment's data as
// text. The first argument is the zero-based attachment index and the second is the charset used to interpret
// the attachment bytes.
email := TEmail.Create;
email.Subject := 'Attachment as text';
email.AddStringAttachment('notes.txt','These are the notes stored in the attachment.');
// Get the first attachment (index 0) as text, interpreting the bytes as utf-8.
content := email.GetAttachmentString(0,'utf-8');
WriteLn('Attachment 0 text: ' + content);
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.