Thank you for your interest in the Simple POP Client class. This class was built after discovering how horrendously difficult the POP class that is included with Borland C++Builder is to implement. The focus is on simple mail usage in an easy to follow manner. Installation ============ Using the SPOPClient class is a three step process. Step 1: Add SPOPClient to your project: A. Purchase and unzip the SPOPClient files into a directory. (i.e. $(BCBROOT)/Addons/SPOPClient). B. Add the SPOPClient.cpp file to your project (Project->Add To Project) C. Add a #include "SPOPClient.h" to the CPP file that will be using SPOPClient Step 2: Add Support routines to your project: A. Download and unzip the BCBMD5 and Base64 classes from my website (both are free) B. Unzip them into a directory (I use $(BCBROOT)/Addons/MyUtils) C. Follow the steps above to add BCBMD5.c, MD5.c, Base64.c to your project Step 3: Add the appropriate function calls to your program. The basic steps are: A. Login (get a count of mail waiting) B. Retrieve a mail message (either semi-interpreted or raw) C. Logout. What SPOPClient Is ================== There should be nothing complex about getting mail. The POP RFC is quite simple and clear. I found the folks selling a POP/SMTP client for $1000(USD) on the net amusing. SPOPClient will allow you to retrieve email from a standard POP server, and implements some of the non-required commands as well. It is very small, very easy to use, and all code will be included in your executable. What SPOPClient Is Not ====================== SPOPClient is not a VCL component, it does not need to be created with "new", it does not generate any events, and it does not install into the pallette. It does not implement the "list" command, as AnsiString and TStringList do their own memory management. It is also not expensive. The Public Interface ==================== SPOPClient exposes a minimum set of methods to retrieve mail. It does no memory management (i.e. any object pointers, such as TSTringList objects, must be created and deleted in your program). All of the methods return a boolean value, where true indicates success and false indicates failure. In the event of a failure, you can read ErrorMsg for an error string. There are two ways to retrieve mail - semi-interpreted and raw. In Semi-interpreted mode, you pass in AnsiString objects for the From, Date, and Subject fields from the header, and the body of the message is in a TStringList. In raw mode, you simply provide a TStrings pointer (such as a TStringList) and the entire header and body are returned for your own parsing. This works for both the GetMailMessage and the Top methods. SPOPClient supports the following "core" methods: Login(AnsiString Host, AnsiString User, AnsiString Pass, int &MessageCount) GetMailMessage(int MsgNum, AnsiString &From, AnsiString &Date, AnsiString &Subject, TStrings *Body) GetMailMessage(int MsgNum, TStrings *Message) Delete(int MsgNum) Logout(void) SPOPClient also supports the following "optional" methods - these may not be implemented on all servers: LoginMD5(AnsiString Host, AnsiString User, AnsiString Pass, int &MessageCount) Top(int MsgNum, int LineCount, AnsiString &From, AnsiString &Date, AnsiString &Subject, TStrings *Body) Top(int MsgNum, int LineCount, TStrings *Message) SPOPClient has one user-accessible read-only property: AnsiString ErrorMsg The Details =========== SPOPClient uses a TTcpClient session to control the session with the pop server. All communications are done in blocking mode, and the port is preset to 110.