Sample code for 30+ languages & platforms
Dart

End a POP3 Session Without Committing Deletions

See more POP3 Examples

Demonstrates the Chilkat MailMan.Pop3EndSessionNoQuit method, which closes the POP3 connection without sending the QUIT command. Pending deletion marks are not committed — messages marked with DELE during the session remain in the mailbox. This example marks a message for deletion and then abandons the session so the deletion does not take effect.

Background: POP3's deferred-deletion model effectively gives you a transaction: marks made with DELE are only applied when the session ends with QUIT. Ending without QUIT is therefore a rollback — useful if an error occurs mid-processing and you'd rather leave the mailbox untouched than risk deleting messages you failed to handle. Use Pop3EndSession when you do want the deletions committed.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // Demonstrates the MailMan.Pop3EndSessionNoQuit method, which closes the POP3 connection
  // WITHOUT sending the QUIT command.  Pending deletion marks are not committed -- messages
  // marked with DELE during the session remain in the mailbox.

  final mailman = CkMailMan();

  // Configure the POP3 server connection.
  mailman.mailHost = 'pop.example.com';
  mailman.mailPort = 995;
  mailman.popSsl = true;
  mailman.popUsername = 'user@example.com';
  mailman.popPassword = 'myPassword';

  try {
    mailman.pop3BeginSession();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Mark a message for deletion...
  try {
    mailman.deleteByMsgnum(1);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // ...but end the session without QUIT, so the deletion is NOT committed and the message
  // remains in the mailbox.
  try {
    mailman.pop3EndSessionNoQuit();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Session closed without committing the pending deletion.');
}