Sample code for 30+ languages & platforms
Delphi ActiveX

Transition from MailMan.TransferMultipleMime to MailMan.FetchMimeBd

Provides instructions for replacing deprecated TransferMultipleMime method calls with FetchMimeBd.

Chilkat Delphi ActiveX Downloads

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
mailman: TChilkatMailMan;
saUidls: TCkStringArray;
stUidls: TChilkatStringTable;
sa: ICkStringArray;
bdMime: TChilkatBinData;
numUidls: Integer;
i: Integer;

begin
success := 0;

mailman := TChilkatMailMan.Create(Self);

// ...
// ...

saUidls := TCkStringArray.Create(Self);
saUidls.Append('aaa');
saUidls.Append('bbb');
saUidls.Append('ccc');

stUidls := TChilkatStringTable.Create(Self);
stUidls.Append('aaa');
stUidls.Append('bbb');
stUidls.Append('ccc');

// ------------------------------------------------------------------------
// The TransferMultipleMime method is deprecated:

sa := mailman.TransferMultipleMime(saUidls.ControlInterface);
if (mailman.LastMethodSuccess = 0) then
  begin
    Memo1.Lines.Add(mailman.LastErrorText);
    Exit;
  end;

// ...
// ...

// ------------------------------------------------------------------------
// Do the equivalent using FetchMimeBd.

mailman.ImmediateDelete := 0;

success := 0;
bdMime := TChilkatBinData.Create(Self);
numUidls := stUidls.Count;
i := 0;
while i < numUidls do
  begin
    success := mailman.FetchMimeBd(stUidls.StringAt(i),bdMime.ControlInterface);
    // ...

    // Mark the email for deletion.
    success := mailman.DeleteByUidl(stUidls.StringAt(i));
    // ...

    i := i + 1;
  end;

// emails marked for deletion will be deleted at this time
success := mailman.Pop3EndSession();
end;