SMTPOP.EXE Version 1.2 (November 1997) A substitute for SMTPOP.EXE Version 1.1 and PMPOP.EXE Designed to work with Pegasus Mail for DOS 3.2 and above FREEWARE SMTPOP is freeware. No strings attached, although a small email stating wether it worked for you or not, would be appreciated. There are no warranties expressed or implied, for any purpose whatsoever. You must determine the suitability of this software for your particular purpose, and assume all responsibility derived from the use (or inability to use) this program. You may share it with as many people as you like, provided this file is included as-is with the software. Although this software is freeware, I retain the rights to it and to further modify it in the future. You may not disassemble or reverse the compilation process of this software. CREDITS SMTPOP was developed using the TCP/IP libraries by Erick Engelke. It was compiled using Borland C/C++ compiler as a large memory model. Pegasus Mail for DOS was developed by David L. Harris. PMPOP.EXE was developed by David L. Harris DOSPPPD was developed by Antonio Lopez UMSLIP was developed by the University of Minnesota DIFFERENCES FROM SMTPOP 1.1 This version is a maintenance upgrade from the second version, 1.1. Aside from a few minor adjustments, two things are important in this new release: 1. It will now read the PMAIL.INI file and obtain the 'from' user name from there. This was done after much thought, since I had no way of knowing if the format will remain unchanged as Mr. Harris upgrades Pegasus Mail for DOS. 2. The function that downloads mail from the POP3 server had to be re-written, both to accomplish a more reliable download because of a 'bug' in WATTCP, and also to increase the speed a little bit further. 3. It will no longer create empty files even if run from a different directory from where it is installed. It the environment variable SMTPOP is not set, it will simply refuse to continue. A summary of SMTPOP's features and capabilities follows: It is very fast. It's speed can be appreciated by people who live in countries where local calls are metered. It has a maintenance mode (invoked by using the -m parameter) to add, modify, delete or list the accounts that will be serviced by SMTPOP. There is really no practical limit to the number of servers or accounts/server it can handle. You can use it for one account, or you can use it in a multiuser system to process several hundred accounts. Every account has all of the necessary information to deal with the type of action SMTPOP will perform: Send, Receive or Both. There is even an option to Ignore that account (ie.: when on vacation, leave of absence, etc.). You can process one ISP at a time, or you can process all of your ISP's in one connection, by including the switch -a at the command line. SMTPOP builds a query for every ISP and handles only those accounts that belong to that ISP. That means you can enter your accounts in any order you desire, and modify or delete them at will. SMTPOP is also very fast at this. Although I would not expect you to verify this, SMTPOP can query a 500,000 records file in less than 1 second. ENVIRONMENT VARIABLE SMTPOP creates it's account file the first time it is run. In order for it to find this same file every time it is run, you must set an environment variable in your AUTOEXEC.BAT file like this: SET SMTPOP=C:\SMTPOP12 This assumes that SMTPOP resides in drive C at directory \SMTPOP12. For your information, the files created by SMTPOP are called USERS.DBF and USERS.CDX and are compatible with FoxPro 2.6 (c). Although this will change in version 2.0 (now in development), a utility will be included to covert to the new format. The reason for the change being that I want SMTPOP to use less conventional memory. REQUIREMENTS SMTPOP requires a packet driver similar to UMSLIP or DOSPPPD, and will not run if one is not present. It is assumed that you know how to load a suitable driver, and to establish a connection with your ISP. For optimal performance, I would recommend DOSPPPD from Toni Lopez. If you have problems setting DOSPPPD, I have also developed a SETUP program for DOSPPPD. The process can be automated using a batch file. SMTPOP will return a non-zero error level if something goes wrong. OVERVIEW Once you extract the file SMTPOP12.ZIP, you will have SMTPOP12.EXE. Place it in a directory that's included in your path (C:\SMTPOP12 is a good place). It will locate the mail files in the directory included in the maintenance mode. Syntax is very simple: SMTPOP12 -a | -m | -b server.domain -a Process all accounts in one connection -m Go into maintenance mode -b server.domain Process only the accounts that reside in this server One of these switches MUST be included in the command line. MAINTENANCE MODE When invoked with the -m switch, SMTPOP will go into maintenance mode and show a screen with the following fields: Server: Enter the name of your server. This is the string to the right of the '@' sign. User ID: Enter your user name. This is the string to the left of the '@' sign. Password: The password used to login to your ISP. Action: Enter R to receive mail only, S to send mail only, B to do both, or I to ignore this account. Delete Mail?: Enter 'y' if you want SMTPOP to delete the messages from your ISP's disk once they are downloaded. Enter 'n' if you want to leave them there, although most ISP's will not be very happy if you leave mail behind. Drive: The drive letter where your mail resides. Mail Dir.: The directory where SMTPOP will find your outgoing messages, and place your incoming mail. Start this field with a '\'. Full Name: The name of the owner of the account. This is for information purposes only. After this information has been entered, press 'S' to save it to disk. If you enter a server name and a userID that were previously saved to disk, SMTPOP will allow you to make changes to that information, including deleting from the file. You can also list to screen those accounts that belong to a specific server, or all of the accounts. The option to print a hard copy is not implemented in this release. RUNNING SMTPOP After you have added at least one record to the user's file, you can then proceed to run SMTPOP. Remember: a packet driver must have been loaded, and a connection established with your ISP. SMTPOP can be run in two modes: Single server, or all servers. If you want to process one or all of the accounts for one server in particular, you would enter: SMTPOP12 -b server.domain SMTPOP will process all of the accounts that belong to that server, performing the action included in the 'Action' field. If you want to process all of the servers in which you have valid accounts, you would enter: SMTPOP12 -a Please note that you can check all your servers without having to dial into everyone separately. SMTPOP is able to resolve the address and connect to that server without any further intervention from you. This provides a degree of flexibility not found in any other package of a similar nature. Once connected, SMTPOP will provide a continuous feedback of the progress of the session, including the dialog with the ISP's server, number of messages, total bytes to transfer, etc. Please take note that it was not designed to be run from within PMAIL. It is best suitable to run it as a batch process to handle your outgoing and incoming mail in one bundle. We have found it to be a lot faster than PMPOP, although I can not guarantee it will do the same for you. If you find it useful, let me know. CONFIGURING WATTCP.CFG SMTPOP needs to be properly configured in order to operate at its best. This is done through a configuration file called WATTCP.CFG which should be located in the same directory as SMTPOP12.EXE. I have included a sample file that looks like this: -------------------WATTCP.CFG # WATTCP.CFG is a simple text file which provides the WATTCP TCP/IP stack # with the basic information it needs to connect to your TCP/IP network. # A sample WATTCP.CFG file might look like this: my_ip=bootp # PPP Connection IP Address netmask=255.255.255.0 # PPP/SLIP Netmask for the Interface nameserver=0.0.0.0 # PPP/SLIP Nameserver nameserver=0.0.0.0 # Alternate nameserver nameserver=0.0.0.0 # Alternate nameserver nameserver=0.0.0.0 # Alternate nameserver gateway=0.0.0.0 # PPP/SLIP IP routing gateway domainslist="" # List of Domain Names sockdelay=90 # Increase delay from default of 30 seconds contime=60 retrans=4 mtu=512 rwin=1024 mss=512 TXBUFSIZE=8192 RXBUFSIZE=8192 -------------------------------- You should contact your ISP and obtain the information related to the nameservers and the gateway. DO NOT leave the values that are shown here. That WILL NOT work and only lead to frustration. If you have any comments, suggestions, or just need further assistance, please contact me via email. Regards. Alfredo Cole ACyC acyc@geocities.com Tegucigalpa, Honduras Phone: +(504) 265902 Fax: +(504) 267672 http://www.acyc.com