Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

End a POP3 Session (Commit Deletions)

See more POP3 Examples

Demonstrates the Chilkat MailMan.Pop3EndSession method, which ends the current POP3 session by sending the QUIT command. Ending the session normally commits any messages that were marked for deletion during the session. This example begins a session and then ends it.

Background: POP3 deletion is deferred: DELE commands only mark messages during the session, and the server permanently removes them when the client sends QUIT to end the session cleanly. Pop3EndSession is that commit point. If a session is dropped without QUIT (see Pop3EndSessionNoQuit), the server rolls back the pending deletions and the messages remain.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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.MailMan;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  mailman: TMailMan;

begin
  success := False;

  //  Demonstrates the MailMan.Pop3EndSession method, which ends the current POP3 session by
  //  sending the QUIT command.  Ending the session normally commits any messages that were
  //  marked for deletion during the session.

  mailman := TMailMan.Create;

  //  Configure the POP3 server connection.
  mailman.MailHost := 'pop.example.com';
  mailman.MailPort := 995;
  mailman.PopSsl := True;
  mailman.PopUsername := 'user@example.com';
  mailman.PopPassword := 'myPassword';

  //  Explicitly begin a POP3 session.

  success := mailman.Pop3BeginSession();
  if (success = False) then
    begin
      WriteLn(mailman.LastErrorText);
      Exit;
    end;

  //  ... perform mailbox operations here, such as fetching or marking messages for deletion ...

  //  End the POP3 session (sends QUIT), committing any pending deletions.
  success := mailman.Pop3EndSession();
  if (success = False) then
    begin
      WriteLn(mailman.LastErrorText);
      Exit;
    end;

  WriteLn('POP3 session ended.');


  mailman.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.