Qore Pop3Client Module Reference 2.0
|
This class provides the interface to POP3 servers. More...
#include <Pop3Client.qm.dox.h>
Public Member Methods | |
clearStats () | |
Clears performance statistics. | |
nothing | clearWarningQueue () |
Removes any warning Queue object from the Socket. | |
connect () | |
Connect to the server with the connection parameters set in the constructor() | |
constructor (string url, *hash< auto > opts) | |
Creates the Pop3Client object. | |
del (list< auto > l) | |
Sends a "DELE" command to delete one or more messages on the server. | |
del (softstring msg) | |
Sends a "DELE" command to delete a single message on the server. | |
destructor () | |
disconnects if connected and destroys the object | |
disconnect () | |
disconnect from the server | |
forceDisconnect () | |
force disconnect of socket without error | |
date | getConnectTimeoutDate () |
returns the connect timeout as a relative time value | |
int | getConnectTimeoutMs () |
returns the connect timeout as an integer giving milliseconds | |
date | getIoTimeoutDate () |
returns the i/o timeout as a relative time value | |
int | getIoTimeoutMs () |
returns the i/o timeout as an integer giving milliseconds | |
*hash< auto > | getMail () |
returns a hash of mail messages keyed by message ID or NOTHING if no messages are available on the server | |
MailMessage::Message | getMessage (string id) |
Retrieves a particular mail message by its ID. | |
string | getTarget () |
Returns the connection target string. | |
hash< auto > | getUsageInfo () |
Returns performance statistics for the socket. | |
bool | isConnected () |
return connection status | |
*hash< auto > | list () |
Returns a hash with message information from the "LIST" command. | |
bool | logPassword () |
returns the log password flag | |
logPassword (bool pwd) | |
log password | |
noop () | |
send a "NOOP" command to the POP3 server | |
bool | noquit () |
Return the "noquit" flag; if this flag is True, then no "QUIT" command is sent to the POP3 server when disconnecting, which can ensure that no changes are committed to the server (for example with gmail) | |
noquit (bool noquit) | |
Sets the "noquit" flag. | |
reset () | |
Send a "RSET" command to the POP3 server which will unmark messages marked for deletion. | |
setConnectTimeout (timeout to) | |
sets the connect timeout | |
setEventQueue () | |
Removes any Queue object, prohibiting the collection of socket events. | |
setEventQueue (Qore::Thread::Queue queue, auto arg, *bool with_data) | |
Sets a Queue object to receive socket events. | |
setIoTimeout (timeout to) | |
sets the I/o timeout | |
nothing | setWarningQueue (int warning_ms, int warning_bs, Queue queue, auto arg, timeout min_ms=1s) |
Sets a Queue object to receive socket warnings. | |
bool | starttls () |
returns the "starttls" flag (RFC 2595) | |
starttls (bool starttls) | |
sets the flag for using the "STLS" command after connecting | |
hash< auto > | stat () |
Returns a hash with status information from the "STAT" command. | |
bool | tls () |
returns the TLS/SSL flag | |
tls (bool tls) | |
sets the TLS/SSL flag | |
Public Attributes | |
const | CtrlA = chr(1) |
For SASL XOAUTH2 logins. | |
const | POP3Port = 110 |
default POP3 port | |
const | POP3SPort = 995 |
default POP3S port | |
const | Protocols = ... |
accepted protocols | |
This class provides the interface to POP3 servers.
This class uses a Mutex lock in each Pop3Client object to ensure thread serialization to the underlying socket and its internal configuration, so it is safe to access in a multithreaded context.
Connection to and authentication with the POP3 server is made implicitly by calling a Pop3Client method that requires a connection; it is not necessary to call Pop3Client::connect() explicitly.
This class supports automatic recognition and use of APOP authentication (RFC-1939 p15) if an RFC822-compliant msg-id is included in the last part of the login string sent by the POP3 server when connecting.
Encrypted connections to POP3 servers are also supported in the following ways:
"pop3s"
protocol (URI scheme) in the URL, or set the TLS/SSL flag manually by calling Pop3Client::tls(bool)."STLS"
command, set the "starttls"
flag by calling Pop3Client::starttls(bool)This class will not mark messages for deletion automatically; to mark messages for deletion, call the Pop3Client::del() method with the message ID to delete or a list of message IDs. Note that some POP3 servers (for example gmail), will mark the messages as read anyway and make them unavailable on the next request after disconnecting even if the messages were not marked for deletion manually. To avoid this, set the "noquit"
flag by calling Pop3Client::noquit(bool). This will suppress the "QUIT"
message when disconnecting which should keep any compiant POP3 server from committing any changes related to the current POP3 session.
Pop3Client::Pop3Client::clearStats | ( | ) |
Clears performance statistics.
nothing Pop3Client::Pop3Client::clearWarningQueue | ( | ) |
Removes any warning Queue object from the Socket.
Pop3Client::Pop3Client::connect | ( | ) |
Connect to the server with the connection parameters set in the constructor()
POP3-SERVER-ERROR | the POP3 server responded with an error message |
Pop3Client::Pop3Client::constructor | ( | string | url, |
*hash< auto > | opts | ||
) |
Creates the Pop3Client object.
url | the URL of the POP3 server including at least the username, password, and a target host or port on the local system (enclose the address or hostname in square brackets like "[ipv6.host.com]" to connect using the IPv6 protocol or use square brackets to delineate an IPv6 address from the port number as in ex: "[fe80::21c:42ff:fe00:8]:110" ); accepted protocols (URI schemes) are as follows:
"pop.gmail.com" ) then "pop3" is assumed; if no port is given, then either POP3Port (for "pop3" ) or POP3SPort (for "pop3s" ) is as the default port number depending on the protocol. |
opts | options for the object; supported options:
|
PARSE-URL-ERROR | the URL given could not be parsed |
POP3-URL-ERROR | the protocol given was unknown, no target, username or password in URL |
Pop3Client::Pop3Client::del | ( | list< auto > | l | ) |
Sends a "DELE"
command to delete one or more messages on the server.
l | the list of message numbers to delete |
Pop3Client::Pop3Client::del | ( | softstring | msg | ) |
Sends a "DELE"
command to delete a single message on the server.
msg | the message number to delete |
POP3-SERVER-ERROR | the POP3 server responded with an error message |
Pop3Client::Pop3Client::destructor | ( | ) |
disconnects if connected and destroys the object
if any exceptions occur during the disconnection, they are sent to the debug log closure/call reference
Pop3Client::Pop3Client::disconnect | ( | ) |
disconnect from the server
Pop3Client::Pop3Client::forceDisconnect | ( | ) |
force disconnect of socket without error
date Pop3Client::Pop3Client::getConnectTimeoutDate | ( | ) |
returns the connect timeout as a relative time value
int Pop3Client::Pop3Client::getConnectTimeoutMs | ( | ) |
returns the connect timeout as an integer giving milliseconds
date Pop3Client::Pop3Client::getIoTimeoutDate | ( | ) |
returns the i/o timeout as a relative time value
int Pop3Client::Pop3Client::getIoTimeoutMs | ( | ) |
returns the i/o timeout as an integer giving milliseconds
*hash< auto > Pop3Client::Pop3Client::getMail | ( | ) |
returns a hash of mail messages keyed by message ID or NOTHING if no messages are available on the server
size:
the original raw message size in bytesmsg:
a MailMessage::Message object representing the message and any attachmentsPOP3-SERVER-ERROR | the POP3 server responded with an error message |
MailMessage::Message Pop3Client::Pop3Client::getMessage | ( | string | id | ) |
Retrieves a particular mail message by its ID.
id | The message ID to retrieve |
POP3-SERVER-ERROR | the POP3 server responded with an error message |
string Pop3Client::Pop3Client::getTarget | ( | ) |
Returns the connection target string.
hash< auto > Pop3Client::Pop3Client::getUsageInfo | ( | ) |
Returns performance statistics for the socket.
"bytes_sent"
: an integer giving the total amount of bytes sent"bytes_recv"
: an integer giving the total amount of bytes received"us_sent"
: an integer giving the total number of microseconds spent sending data"us_recv"
: an integer giving the total number of microseconds spent receiving data"arg"
: (only if warning values have been set with Pop3Client::setWarningQueue()) the optional argument for warning hashes"timeout"
: (only if warning values have been set with Pop3Client::setWarningQueue()) the warning timeout in microseconds"min_throughput"
: (only if warning values have been set with Pop3Client::setWarningQueue()) the minimum warning throughput in bytes/secbool Pop3Client::Pop3Client::isConnected | ( | ) |
return connection status
*hash< auto > Pop3Client::Pop3Client::list | ( | ) |
Returns a hash with message information from the "LIST"
command.
if the object is not already connected, then a connection is made and authenticated to place the connection in the "TRANSACTION"
state before executing the POP3 command
"LIST"
command, where each hash key is a unique message ID, and the value of each key is a hash with a single key: "size"
, giving the size of the message in bytesPOP3-SERVER-ERROR | the POP3 server responded with an error message |
bool Pop3Client::Pop3Client::logPassword | ( | ) |
returns the log password flag
Pop3Client::Pop3Client::logPassword | ( | bool | pwd | ) |
log password
pwd | if True then the password is logged with a DEBUG level if any logger is set |
Pop3Client::Pop3Client::noop | ( | ) |
send a "NOOP"
command to the POP3 server
POP3-SERVER-ERROR | the POP3 server responded with an error message |
bool Pop3Client::Pop3Client::noquit | ( | ) |
Return the "noquit"
flag; if this flag is True, then no "QUIT"
command is sent to the POP3 server when disconnecting, which can ensure that no changes are committed to the server (for example with gmail)
The "noquit"
flag is always False unless explicitly set to True
"noquit"
flag; if this flag is True, then no "QUIT"
command is sent to the POP3 server when disconnecting, which can ensure that no changes are committed to the server (for example with gmail)Pop3Client::Pop3Client::noquit | ( | bool | noquit | ) |
Sets the "noquit"
flag.
noquit | if True then no "QUIT" command is sent when disconnecting from the POP3 server; this can ensure that no changes are committed to the server (for example with gmail) |
Pop3Client::Pop3Client::reset | ( | ) |
Send a "RSET"
command to the POP3 server which will unmark messages marked for deletion.
POP3-SERVER-ERROR | the POP3 server responded with an error message |
Pop3Client::Pop3Client::setConnectTimeout | ( | timeout | to | ) |
sets the connect timeout
Pop3Client::Pop3Client::setEventQueue | ( | ) |
Removes any Queue object, prohibiting the collection of socket events.
Pop3Client::Pop3Client::setEventQueue | ( | Qore::Thread::Queue | queue, |
auto | arg, | ||
*bool | with_data | ||
) |
Sets a Queue object to receive socket events.
queue | the Queue object to receive socket events; note thatthe Queue passed cannot have any maximum size set or a QUEUE-ERROR will be thrown |
arg | an argument that will be included in each event hash in the arg key |
with_data | if True, then the actual raw data transferred / received is also included in the events |
QUEUE-ERROR | the Queue passed has a maximum size set |
Pop3Client::Pop3Client::setIoTimeout | ( | timeout | to | ) |
sets the I/o timeout
nothing Pop3Client::Pop3Client::setWarningQueue | ( | int | warning_ms, |
int | warning_bs, | ||
Queue | queue, | ||
auto | arg, | ||
timeout | min_ms = 1s |
||
) |
Sets a Queue object to receive socket warnings.
warning_ms | the threshold in milliseconds for individual socket actions (send, receive, connect), if exceeded, a socket warning is placed on the warning queue with the following keys:
|
warning_bs | value in bytes per second; if any call has performance below this threshold, a socket warning is placed on the warning queue with the following keys:
|
queue | the Queue object to receive warning events |
arg | an optional argument to be placed in the "arg" key in each warning hash (could be used to identify the socket for example) |
min_ms | the minimum transfer time with a resolution of milliseconds for a transfer to be eligible for triggering a warning; transfers that take less than this period of time are not eligible for raising a warning |
QUEUE-ERROR | the Queue passed has a maximum size set |
SOCKET-SETWARNINGQUEUE-ERROR | at least one of warning_ms and warning_bs must be > 0 |
bool Pop3Client::Pop3Client::starttls | ( | ) |
returns the "starttls"
flag (RFC 2595)
Pop3Client::Pop3Client::starttls | ( | bool | starttls | ) |
sets the flag for using the "STLS"
command after connecting
starttls | if True then issue the "STLS" command after making an unencrypted connection; if this flag is set then the client will negotiate a TLS/SSL connection with the server after making an unencrypted connection |
STLS
command is only executed with insecure connectionsSTLS
command hash< auto > Pop3Client::Pop3Client::stat | ( | ) |
Returns a hash with status information from the "STAT"
command.
If the object is not already connected, then a connection is made and authenticated to place the connection in the "TRANSACTION"
state before executing the POP3 command
"STAT"
command with the following keys:num:
the number of messages availablesize:
the size of data available in bytesPOP3-SERVER-ERROR | the POP3 server responded with an error message |
bool Pop3Client::Pop3Client::tls | ( | ) |
returns the TLS/SSL flag
Pop3Client::Pop3Client::tls | ( | bool | tls | ) |
sets the TLS/SSL flag
tls | if True then use TLS/SSL; if the TLS/SSL flag is set then the client will negotiate a TLS/SSL connection with the server after connecting |