Sample code for 30+ languages & platforms
Delphi DLL

Add File Attachments to an Email

Demonstrates how to add one or more file attachments to an email.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Email;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
email: HCkEmail;
contentType: PWideChar;

begin
success := False;

email := CkEmail_Create();

CkEmail_putSubject(email,'This is a test');
CkEmail_putBody(email,'This is a test');
CkEmail_putFrom(email,'support@chilkatsoft.com');
success := CkEmail_AddTo(email,'Chilkat Admin','admin@chilkatsoft.com');

// To add file attachments to an email, call AddFileAttachment
// once for each file to be attached.  The method returns
// the content-type of the attachment if successful, otherwise
// returns cknull

contentType := CkEmail__addFileAttachment(email,'something.pdf');
if (CkEmail_getLastMethodSuccess(email) <> True) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;

contentType := CkEmail__addFileAttachment(email,'something.xml');
if (CkEmail_getLastMethodSuccess(email) <> True) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;

contentType := CkEmail__addFileAttachment(email,'something.zip');
if (CkEmail_getLastMethodSuccess(email) <> True) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;
success := CkEmail_SaveEml(email,'email.eml');
if (success = False) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;

Memo1.Lines.Add('Saved EML!');

CkEmail_Dispose(email);

end;