Sample code for 30+ languages & platforms
Delphi DLL

Save Email Attachments to Filesystem

Saves email attachments to a directory.

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;
i: Integer;

begin
success := False;

email := CkEmail_Create();

// Load an email object containing attachments.
// This .eml can be downloaded from:
// http://www.example-code.com/testData/HtmlEmail.eml

success := CkEmail_LoadEml(email,'HtmlEmail.eml');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;

// If OverwriteExisting is turned on, files with the same
// name are overwritten.  If turned off, new/unique filenames
// are automatically generated.  The filenames actually saved
// are accessible via the GetAttachmentFilename method.
CkEmail_putOverwriteExisting(email,True);

// Save all attachments to the "myAttachments" subdirectory
// found under the calling process's current working directory.
// This directory is automatically created if it does not already
// exist.
success := CkEmail_SaveAllAttachments(email,'myAttachments');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkEmail__lastErrorText(email));
    Exit;
  end;

// List the attachment filenames:

for i := 0 to CkEmail_getNumAttachments(email) - 1 do
  begin
    Memo1.Lines.Add(CkEmail__getAttachmentFilename(email,i));
  end;

CkEmail_Dispose(email);

end;