POPBiff V1.1 for OS/2 by Michele Marziani ========================================= Copyright: POPBiff V1.1 - Simple Unix-like Biff program for the POP3 TCP/IP protocol. Copyright (c) March-April 1995, Michele Marziani. Warranty: This software comes with absolutely no warranty, expressed or implied, including but not limited to fitness for a particular purpose. You should realize that I am in no way responsible for any loss or damage that may occur due to the use of this software. The program is provided on an "as is" basis. Use at your own risk. Distribution: This program is distributed as 'emailware'. If, after using this software for a reasonable time (15 days), you feel that it is software that is useful to you and that you will continue to use, you're kindly required to 'register' the software with me. It will cost you *NOTHING*. Just send me an e-mail at the address below, telling me your praise (!), your impressions, your suggestions or whatever. Please mention the fact you're registering explicitly. This will help me keep a list of 'registered' users who will receive notification of new releases and bug fixes when they become available. There are very few restrictions on the distribution of this software, as long as it is not altered in any way. The ZIP archive file from which the program came from must be distributed in its entirety and not altered in any way. This software can't be distributed with or as part of any commercial program. However, it may be freely distributed by commercial vendors, user groups, BBS operators or individuals. No fee or payment may be charged or accepted, other than a small distribution fee. Support: This software comes with absolutely no support. If you have a problem with the software, I'd very much appreciate receiving information about the problem and the circumstances under which it occurred. Just e-mail me at the address below. This will help me fix the problem (at least I'll try to) in a future release. Do not expect an immediate reply or a prompt bug fix, however. Please keep in mind I wrote POPBiff in my spare time. OS/2 programming is not my job, it's only my hobby... So, be patient! Purpose: POPBiff is a Unix xbiff analogue. Only it has been designed to work with a POP3 server i.e. it doesn't monitor a file on disk. Instead it periodically checks your POP3 mailbox. It will raise its flag and optionally beep on incoming mail. It will lower the flag if the mail is read. An optional secondary window can show the total count of new mail messages and their total size. Current features: * compatibility with IBM TCP/IP 1.2.1, 2.0 and Warp IAK * usual flag down/flag up stuff (a la Unix xbiff) * display of new message count and total size * optional beep in response to new mail * mail checking every N minutes (N ranging from 1 to 120) * saving of settings (host, user, password) to an INI file * password encryption when saving to an INI file * saving of window positions/size/color * ability to turn off error messages for SLIP/PPP connections * multithread design Features planned for future releases: * optional display of message headers * launching of your favorite e-mail reader * playing of a .WAV file in response to new mail * no mail/new mail icons configurable via drag & drop * optional reading of password from tcpos2.ini for Warp IAK users. Requirements: This software requires IBM TCP/IP 1.2.1 or 2.0 or Warp IAK with the REXX Sockets (RxSock) interface. This was a separate package distributed as EWS - 'Employee Written Software' - until the August 1994 CSD for IBM TCP/IP. Then it has been included with the corrective service disks. Since both IBM TCP/IP 1.2.1 and Warp IAK do not include the RxSock interface, I'm hereby including two copies of RxSock.DLL, one for the 16 bit TCP/IP stack (1.2.1) and the other for usage with Warp IAK. Installation: Please follow these steps for manually installing POPBiff. - Unzip POPBif11.ZIP in a temporary directory. I'd like to suggest using Info-ZIP's UnZip version 5.12 or later since it can preserve OS/2 extended attributes. - Move POPBiff.EXE and POPBiff.ICO to a directory where you keep your executable files, e.g. \OS2\APPS or \TCPIP\BIN or whatever. It doesn't need to be a directory in your path, though, unless you wish to run POPBiff from any OS/2 command line prompt. - Move POPBiff.DLL to a directory listed in LIBPATH, e.g. \OS2\DLL or \TCPIP\DLL. The LIBPATH variable is defined in the OS/2 CONFIG.SYS file. Note that you must shutdown your system and reboot OS/2 before any changes to the LIBPATH will take effect. - If you are using IBM TCP/IP 2.0 with the August '94 CSD or later already applied, you can safely delete both RXSOCK.DLL and RXSOCK16.DLL. If your have either TCP/IP 2.0 without the CSD or Warp Internet Access Kit (IAK) delete RXSOCK16.DLL and move RXSOCK.DLL to the \TCPIP\DLL directory. Finally, if you have TCP/IP 1.2.1 delete RXSOCK.DLL, rename RXSOCK16.DLL as RXSOCK.DLL and move it to the \TCPIP\DLL subdirectory. - [Optional] Since POPBiff creates an OS/2 INI file (for storing its settings) in the same directory as its EXE file, this directory needs to reside on a writable disk. If you can't comply with this request, e.g. when POPBiff.EXE resides on a network server disk or on a CD-ROM, you can override the default path for the INI file by putting a SET POPBIFF=D:\PATH\WHATEVER statement in your CONFIG.SYS file. This will allow you to specify the drive and directory of your choice for the purpose of storing the POPBiff.INI file. - [Optional] You could create a Workplace Shell (WPS) object by dragging a Program template from the Templates folder and dropping it on the WPS. An icon can be assigned to the POPBiff executable using the General page of the program Settings notebook. You can use the supplied POPBiff.ICO or any other icon of your choice. - [Optional] You could specify '/n' (without quotes) as a program parameter. This will help SLIP/PPP users who wish to leave POPBiff active when hanging up. This switch simply makes POPBiff bypass error messages such as 'Host unreachable', 'Failed at resolve', etc. There is NO need to modify the \TCPIP\ETC\SERVICES file since POPBiff addresses the POP3 TCP port (110) directly. Usage: POPBiff asks for configuration information the first time you start the program. If need be, you can easily change the configuration later. As a minimum you need to specify a POP3 server host name, your POP3 server username and your password. As regards the password you have two options, either an "Enter password" field or a "Read from plain text file" field. If you choose to specify your password in the entry field under the "Enter password" radio button you won't see your password as you type it. Instead, a series of asterisks will be shown. Furthermore, your password will be encrypted before saving it to POPBiff.INI for obvious security reasons. Keep in mind that if you later move your executable file to a different hard disk location you need to re-enter your password. Choosing the "Read from plain text file" option will allow you to have a single system wide location for storing your POP3 password. This could be useful for users of mail clients such as souper or popclient who might have customized their Rexx scripts in order to read their password from the same text file. Beware that it's an intrinsically unsecure option, of course. The other two options in the POPBiff setup dialog will allow you to specify the time interval between two consecutive mail checks and whether you want a beep when the new mail counter increases. Time intervals can range between 1 and 120 minutes. The default is to have POPBiff check your mail every 2 minutes and beep when there is more incoming mail. After a click on the "Save" pushbutton POPBiff will show its main window consisting of a single flag down bitmap and the title bar. Then it will try to contact your POP3 server for checking new mail. This task is always done in a secondary thread in order to avoid interfering with the user interface main thread. You can move the main Biff window over your WPS. If you wish you can drag a color from an OS/2 Color Palette and drop it on the Biff window so as to change its background color. These settings can be later saved to the POPBiff.INI file. If there is new mail POPBiff will raise its flag. It will lower the flag if the mail is read. POPBiff keeps a counter of all new mail messages and it will beep (if you chose this option) when new mail arrives. A double click on the flag (up or down) bitmap will open a secondary status window which will show you the new mail counter and the mail message total size in bytes. There is also a menu under the title bar of this status window. The File menu only has an "Exit program" item with a fairly obvious meaning. The Help menu only has an About menu item which opens a dialog box with info on the author and the development environment used for writing POPBiff. The Options menu has two items, "Settings" and "Save Position/Size/Color". The former will reopen the POPBiff Setup dialog thus allowing a change of the configuration information. The latter is for saving various settings to the POPBiff.INI file. Both the main POPBiff window position/background color and the POPBiff status window position/size are saved to POPBiff.INI for later re-use. You can leave POPBiff either by double clicking on the system menu of the main window or via the File/Exit program menu item of the status window. Known bugs and caveats: Keep in mind that POPBiff is written in REXX and I had to cope with the limitations of the development environment I used and its tools. For example I couldn't get rid of the title bar in the main window without also preventing the user from moving the window itself. This is a standard PM behaviour to which POPBiff adheres. I know there are some tricks, allowed to C programmers, which can overcome these limitations. At present they can't be implemented in REXX easily, though. So don't blame me too much, please. A known bug is the following. If new mail arrives while you're still moving the main window around, you'll hear a beep but POPBiff won't raise its flag. This is due to the built-in REXX event dispatcher which is still servicing an event while it should start servicing a new notify event. Sorry people, I can't do anything to fix this. So, again, don't blame me too much. Both reading from and saving to the INI file is a bit slow. This is an intrinsic 'feature' of the SysIni Rexx utility function. Finally I'd like to warn you that POPBiff has been tested only with a VAX/VMS Multinet 3.0 POP3 server. I can't tell you its performances while interacting with different POP3 servers. We don't have them. POPBiff has been tested with the following configurations only: OS/2 2.11 with TCP/IP 2.0, and OS/2 Warp 3.0 with either TCP/IP 2.0 or Warp IAK. It has been tested neither with OS/2 2.0 nor with TCP/IP 1.2.1 but it should work, though. Credits: POPBiff has been written using the DrDialog/DrRexx development environment created by David C. Morrill. Version 3.27 was used. Rexx routines for interacting with a POP3 server were 'borrowed' from MADPOP.CMD, an "Ultra-simple REXX-based POP3 Client for OS/2 2.X, Copyright 1994, Michael Alan Dorman". Author: Michele Marziani Universita' di Ferrara E-mail: marziani@vaxfe.fe.infn.it Dipartimento di Fisica Telephone: +39 532 781823 44100 Ferrara - ITALY Fax: +39 532 781810