Pop3Client Module

# Pop3Client Module Introduction

The Pop3Client module provides the Pop3Client class for retrieving emails from a POP3 server, with or without TLS/SSL encryption.

To use this module, use `"%requires Pop3Client"` in your code. See examples/pop3.q for an example program using this module.

All the public symbols in the module are defined in the Pop3Client namespace.

The main classes are:

- Pop3Client: provides an interface to a POP3 server for retrieving emails
- Pop3Connection: provides a connection object to a POP3 server (based on the ConnectionProvider module)

Example:
  #!/usr/bin/env qore
  %new-style
  %strict-args
  %require-types
  %enable-all-warnings
  %requires Pop3Client
  sub log(string msg) {
  printf("%y: %s\n", now_ms(), vsprintf(msg, argv));
  }
  string url = "pop3s://username:pass@pop.gmail.com";
  Pop3Client pop3(url, \log(), \log());
  # do not send a QUIT so changes will not be committed
  pop3.noquit(True);
  *hash h = pop3.getMail();
  printf("Mailbox Summary:\n");
  map printf("%s: From: %s (size: %d bytes, attachments: %d)\n", $1.key, $1.value.msg.getFrom(), $1.value.size, $1.getvalue.msg.getAttachments().size()), h.pairIterator();
  if (!h)
  printf("no messages\n");

Note
  based on http://tools.ietf.org/html/rfc1939 (POP3)

# Pop3Client Module Release Notes

## Pop3Client 1.5

- added the Pop3Connection class to support the ConnectionProvider module
- updated for complex types

## Pop3Client 1.4

- converted to %new-style

## Pop3Client 1.3

- added socket instrumention support from Qore 0.8.9

## Pop3Client 1.2

- uncommented the "connected" debug message

## Pop3Client 1.1

- added the logPassword() methods and masked password by default in the debug log

## Pop3Client 1.0

- initial release