#include <inetmail.h>
Inheritance diagram for PPOP3:
Public Types | |
USER | |
PASS | |
QUIT | |
RSET | |
NOOP | |
STATcmd | |
LIST | |
RETR | |
DELE | |
APOP | |
TOP | |
UIDL | |
AUTH | |
NumCommands | |
enum | Commands { USER, PASS, QUIT, RSET, NOOP, STATcmd, LIST, RETR, DELE, APOP, TOP, UIDL, AUTH, NumCommands } |
Protected Member Functions | |
PPOP3 () | |
virtual PINDEX | ParseResponse (const PString &line) |
Static Protected Attributes | |
static PString | okResponse |
static PString | errResponse |
When acting as a client, the procedure is to make the connection to a remote server, then to retrieve a message using the following procedure:
PPOP3Client mail("popserver");
if (mail.IsOpen()) {
if (mail.LogIn("Me", "password")) {
if (mail.GetMessageCount() > 0) {
PUnsignedArray sizes = mail.GetMessageSizes();
for (PINDEX i = 0; i < sizes.GetSize(); i++) {
if (mail.BeginMessage(i+1))
mail.Read(myMessage, sizes[i]);
else
PError << "Error getting mail message." << endl;
}
}
else
PError << "No mail messages." << endl;
}
else
PError << "Mail log in failed." << endl;
}
else
PError << "Mail conection failed." << endl;
When acting as a server, a descendant class would be created to override at least the HandleOpenMailbox(), HandleSendMessage() and HandleDeleteMessage() functions. Other functions may be overridden for further enhancement to the sockets capabilities, but these will give a basic POP3 server functionality.
The server socket thread would continuously call the ProcessMessage() function until it returns PFalse. This will then call the appropriate virtual function on parsing the POP3 protocol.
enum PPOP3::Commands |
PPOP3::PPOP3 | ( | ) | [protected] |
virtual PINDEX PPOP3::ParseResponse | ( | const PString & | line | ) | [protected, virtual] |
Parse a response line string into a response code and any extra info on the line. Results are placed into the member variables lastResponseCode
and lastResponseInfo
.
The default bahaviour looks for a space or a '-' and splits the code and info either side of that character, then returns PFalse.
line | Input response line to be parsed |
Reimplemented from PInternetProtocol.
PString PPOP3::errResponse [static, protected] |
PString PPOP3::okResponse [static, protected] |