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