ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º º º º º º º º º º º º º º º º º º º º º º º THE MAINMAIL SYSTEM º º º º Version 3 º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º Copyright (c) 1990-1993, The Main Shop º º By: Anthony Summy º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º Copyright (c) 1990-1993, The Main Shop º º º º º º º º ALL RIGHTS RESERVED º º º º º º Anthony Summy º º P.O. Box 4284, Orange, CA 92613 º º (714)288-1411 º º º º º º º º Portions Copyright 1984-1989, FairCom Corporation º º Portions Copyright 1988-1993, GAP Development Company º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ The Main Shop, Markmail For GAP, and The MainMail System are trademarks of The Main Shop and Anthony Summy. No right or interest to such trademarks is granted herein. You agree that no right or claim shall be asserted by you, and you shall not use these trademarks except as provided by the terms of this contract. The MainMail System Software is copyrighted by The Main Shop and Anthony Summy. - GAP is a trademark of GAP Development Co. - PXZIP/PKUNZIP are trademarks of PKWARE inc. - DSZ is a trademark of Omen Technologies, Inc. - PCRELAY and POSTLINK are trademarks of Kip Compton. - NOVELL is a trademark of Novell, Inc. - C-TREE is a trademark of FairCom corporation. - RELAYNET is a trademark of the RIME Network. - INTELEC is a trademark of The Intelec Network. - HS/Link is a trademark of Samuel Smith. The MainMail System Software and this documentation are copyrighted material. No copies of this documentation may be made without the expressed written consent of The Main Shop. CONTENTS INTRODUCTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 What You Get . . . . . . . . . . . . . . . . . . . . . . . . . . 5 GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Your MainMail Package. . . . . . . . . . . . . . . . . . . . . . 6 Files Created By MainMail. . . . . . . . . . . . . . . . . . . . 7 Additional Files Needed. . . . . . . . . . . . . . . . . . . . . 7 INSTALLATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Quick Start Installation . . . . . . . . . . . . . . . . . . . . 8 Optional GAP Directory Configuration . . . . . . . . . . . . . . 10 DOOR OPERATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 General Operation. . . . . . . . . . . . . . . . . . . . . . . . 11 Command Line Parameters. . . . . . . . . . . . . . . . . . . . . 11 Setting Up Networks. . . . . . . . . . . . . . . . . . . . . . . 11 Multi-Node Operation . . . . . . . . . . . . . . . . . . . . . . 12 Local Operation. . . . . . . . . . . . . . . . . . . . . . . . . 12 Unattended Operation . . . . . . . . . . . . . . . . . . . . . . 12 Echo Network Operations. . . . . . . . . . . . . . . . . . . . . 13 Desqview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Memory Requirments . . . . . . . . . . . . . . . . . . . . . . . 13 PreExtracting Mail . . . . . . . . . . . . . . . . . . . . . . . 14 CONFIGURATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 The MMSETUP Program. . . . . . . . . . . . . . . . . . . . . . . 15 Running MMSETUP. . . . . . . . . . . . . . . . . . . . . . . . . 15 The General Configuration Screen . . . . . . . . . . . . . . . . 16 Setting Message Limits By Baud Rate. . . . . . . . . . . . . . . 18 Configuring Compression Methods. . . . . . . . . . . . . . . . . 19 Configuring File Transfer Protocols. . . . . . . . . . . . . . . 20 Configuring Networks . . . . . . . . . . . . . . . . . . . . . . 21 Configuring Forums . . . . . . . . . . . . . . . . . . . . . . . 22 The User File Editor . . . . . . . . . . . . . . . . . . . . . . 24 APPENDIXES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 LICENSE AGREEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . 33 SATISFACTION GUARANTEE. . . . . . . . . . . . . . . . . . . . . . . . 34 INTRODUCTION Description ----------- The MainMail System is an off-line mail door for GAP 6.x BBS systems. The MainMail System allows your users to log onto your GAP BBS system, collect all new messages from their selected forums, all new bulletins, and a list of new files into a packet to download. Then off-line, users can use any one of dozens of "QWK" compatible readers to read and reply to their messages. Logging on to your system again, they use The MainMail System to upload their replies. In addition, The MainMail System can be used as a 'hub' for QWK network mail systems using your GAP BBS as their network hub. Using the 'net status' feature of The MainMail System, a user will be entitled to 'network' style packets through The MainMail System door. Features -------- 1. The MainMail System is fast! The MainMail System will collect and compress a mail packet five to ten times faster than UTI driven mail doors. 2. The MainMail System has BIG capabilities in a small package. The MainMail System is written totally in C with communication routines written totally in assembly. The MainMail System's highly buffered COM routines support up to 115,200 bps effortlessly. 3. The MainMail System reads DIRECTLY from, and writes DIRECTLY to the GAP ISAM data files and the GAP configuration instead of requiring a UTI driver or other interface utility. 4. The MainMail System's file I/O routines are highly buffered so disk accesses are kept to a minimum. All of the above features are what give The MainMail System its speed. The MainMail System gives your users valuable features: - Auto logoff or return to bbs after downloading or uploading. - Sysop can PreExtract messages for any user(s). - Quick forum selection and pointer update from the same menu. - Item configuration off-line using messages to MainMail. - One step pointer backdating to recover previous messages. - Attached files to messages when using supported readers. - Bi-directional file transfers. - Offline session support for use in an event. - Network support for mail tossers using MainMail as a hub. - 'Priority' forums allow users to select forums to extract first. - Sysop can 'Force' or 'Auto-Select' any forum(s). - Up to 20 file transfer protocols, including bi-directional. - Up to 20 compression methods. - Sysop may 'group' forums by network. - Sysop 'chat' feature for online user help. - Full support for GAP's special 'AnsiCmd' replaceable parameters. - Full on-line help system. - Logging of all activities to the GAP caller logs. - User may configure MANY items to suit his/her preferences. - List of new files uploaded to your BBS. - New bulletins updated since the last mail run. - Plus more.... Support ------- Support is foremost in my mind! That is why the support numbers are here in the front of the manual. I will strive to correct any problems as soon as possible, usually within 24 hours. Feel free to contact me for any reason. Anthony Summy PO Box 4284 Orange, CA 92613 (714) 288-1411 (Evenings & Weekends) The Main Shop BBS Home of The MainMail System Sysops: Tony Summy & Frank Hagan (714) 288-1320 (HST 16,800 or v.32bis) In addition, we host a support forums on the Relaynet International Message Exchange (RIME) network, national channel number 231, and the Intelec(tm) network. The author monitors and moderates these forums from the home of MainMail, The Main Shop and is always available there. What You Get ------------ Purchasers of The MainMail System are entitled to one (1) year of unlimited support from The Main Shop, either by voice or from our BBS in the MainMail Support forum #1. After the first year, support can be renewed in one year increments for a nominal charge. See the bulletin area on The Main Shop BBS for details. In addition to the support described above, purchasers of The MainMail System are entitled to free and unlimited upgrades of the software for the first year, or as long as your support is current. Updates can be obtained from The Main Shop BBS in the MainMail Support forum, forum #1. Your support must be current in order to obtain updates. At present, we do not charge any additional fees for upgrades, either minor or major. We do, however, reserve the right to change this policy at any time. GETTING STARTED There are a few thing you must know prior to installing The MainMail System. First and foremost, there are two versions of The MainMail System, and you MUST have the correct version of the door or you will permanently and irreparably damage your GAP data files. If you are running the single node version of GAP, you MUST use the single node version of The MainMail System. If you are running the multi-node version of GAP, you MUST use the multi-node version of The MainMail System. DO NOT RUN THE INCORRECT VERSION OR PERMANENT DAMAGE TO YOUR GAP ISAM DATA FILES WILL RESULT!! Your MainMail Package --------------------- 1. MM3MULT.ZIP contains the multi-user executable files. 2. MM3SING.ZIP contains the single-user executable files. 3. MM3PACK.ZIP contains the user file pack utility. 4. MM3HELP.ZIP contains the HELP files. 5. MM3GEN.ZIP contains the sample menu and news files. 6. MM3DOC.ZIP - ASCII Text documentation. 7. MM2TO3.ZIP - For upgrading previous versions. (Not in the DEMO) 8. REGISTER.FRM - Registration form. (Only in the DEMO) 9. MMSYS.DAT - Your encrypted registration KEY file. MM3MULT.ZIP or MM3SING.ZIP contain: ----------------------------------- 1. MM-GAP.EXE - The MainMail Door program itself. 2. MMSETUP.EXE - The MainMail Setup Program. MM3PACK.ZIP contains: --------------------- 1. MMPACK.EXE - The MainMail user file packing and rebuilding utility. MM3GEN.ZIP contains: -------------------- 1. MM-NEWS - This news file will be displayed to all users as they enter the door. 2. MM-NUSER - This new user file will be displayed the first time a user opens the door. Use this file to instruct new users how to select forums, compression methods, and file transfer protocols. 3. MM-MENU - This main menu is displayed at all times unless the user has chosen "expert" mode. Note: All of the 'Gen Directory' files are OPTIONAL. If they are not present, MainMail will function normally. MM3HELP.ZIP containes: ---------------------- 1. All MainMail help files. Files Created By MainMail ------------------------- 1. MMUSER.DAT and MMUSER.IDX - MainMail maintains these files to keep track of your user's various accumulators, last QWK dates, selected protocol, and compression methods. MainMail creates these files when you run MMSETUP for the first time. 2. MMDAT.CNF - The MainMail System configuration is kept in this file. Information such as the protocols and compression formats you have set up, paths and names of your MainMail menu and news files, etc. On multi-node systems, only one MMDAT.CNF file is needed for all nodes if all nodes are configured with identical paths. The MainMail Setup program, MMSETUP, creates this file. Additional Files Needed ----------------------- In addition to the files included in your MainMail package, you will need some external programs for The MainMail System to work properly. You will need at least one archiving program, and at least one file transfer protocol. You can use any one you like, but we have found PKZIP from Pkware to be the most reliable archiving program, and DSZ from Omen Technologies, Inc. and HSLINK from Samuel Smith to be about the most common and most reliable file transfer protocols. 1. DSZ.COM(or EXE) or HSLINK.EXE - File transfer protocol programs. Must be in the path. While The MainMail System WILL work properly if these programs are not registered versions, we advocate and encourage registration of ALL shareware products you elect to use. If you use either of these programs, PLEASE register them. 2. PKZIP and PKUNZIP - Compression programs. Must be in the path. You may use any protocol(s) or compression method(s) you wish. The above products are the most commonly used, and are included only as suggestions. INSTALLATION Quick Start Installation ------------------------ 1. Create a directory structure similar to the one shown here: ÀÄ MAINMAIL ÃÄ GEN ÃÄ HELP ÀÄ DUPE This 'tree' can be off of the root of any drive, or below any sub directory. The choice is totally up to you. 2. Unzip your MainMail archive, or copy your MainMail disk into the MAINMAIL directory. 3. Unzip GEN.ZIP into the GEN directory. 4. Unzip HELP.ZIP into the HELP directory. When finished, the following files should be present in each of the respective directories: MAINMAIL -------- MM-GAP.EXE MMSETUP.EXE MMPACK.EXE MMSYS.DAT GEN --- MM-MENU MM-NEWS (optional) MM-NUSER (optional) HELP ---- All 'MMHLP-x' files. DUPE ---- Currently empty. This directory will be used to store the CRC files created by MainMail for duplicate message checking. 5. Add the following line to your AUTOEXEC.BAT file: SET GAPCNF= The above environment variable is used by MainMail to find your GAP default directory. You should have a 'SET GAPCNF=d:\path' statement in EACH node's autoexec.bat file if you are running on a network, or in EACH node's window startup batch file if you are running Desqview. Each node's environment variable should 'point' to the correct GAP default directory for THAT NODE! Once this environment variable is added to autoexec.bat, reboot the machine so that the change takes affect. 6. Change to the MAINMAIL directory. 7. Run MMSETUP. 8. See the CONFIGURATION section of this manual for detailed instructions on running MMSETUP and configuring The MainMail System. THE MAINMAIL DOOR WILL NOT RUN UNTIL IT IS CONFIGURED! 9. Create a MAINMAIL.BAT file. The batch file must change to the MAINMAIL directory and run the door. Example MAINMAIL.BAT file ------------------------- @ECHO OFF D: CD\MAINMAIL MM-GAP 10. Edit your DOORS.DAT file and your DOORM(g) menus to reflect the addition of The MainMail System to your board. Example DOORS.DAT File ---------------------- MAINMAIL 50 C:\GAP\DOORS\MAINMAIL.BAT Optional GAP Directory Configuration ------------------------------------ As an option, you may intermix your MainMail files in with your GAP files, and MainMail will not require its own directory. We have found this to be an easy way to run MainMail, because there are no special batch files or config files needed to run MainMail. To configure MainMail this way, do the following.... Reminder, THIS IS OPTIONAL! You can set up MainMail this way IF YOU WISH. Operationally, it is identical to the method described above. 1. Place all MainMail EXEs into your path. A good choice would be the same place you placed your GAP EXEs. 2. Place MM-MENU, MM-NEWS, and MM-NUSER into your GAP\GEN directory. 3. Place all MainMail HELP files into the GAP\HELP directory. 4. Place MMUSER.DAT, MMUSER.IDX and MMDAT.CNF (if they exist) and MMSYS.DAT into your GAP\MAIN directory. 5. Edit your door batch file so that it does NOT change to the MainMail directory before running the door. (All it needs to do is run the door. Nothing more.) 6. Change to your GAP default directory and run MMSETUP. This will create MMUSER.DAT, MMUSER.IDX and MMDAT.CNF in the current directory if they do not already exist in the GAP\MAIN directory. NOTE: If you have already run MMSETUP, and have copied the files mentioned in step 6 to your GAP\MAIN directory, MainMail will automatically find them there. 7. In the CONFIGURATION/GENERAL screen, change any paths to reflect their new locations. (See the section on CONFIGURING MAINMAIL later in this manual). 8. When finished with MMSETUP, move the three files mentioned in step 6 into your GAP\MAIN directory. All MainMail programs will now find them there. DOOR OPERATION General Operation ----------------- When a user enters the MainMail door for the first time, MainMail will create a record for that user, show the user the MM-NUSER screen, and automatically select any 'forced' or 'autoselect' forums for all mail. The user may then choose the '[S]elect Forums' option to flag any additional forums to include in their download(s). The user may then select [D]ownload or [U]pload and transfer the QWK or REP respectively. If [D]ownload is selected, MainMail will first scan any 'forced' or 'priority' forums, then scan the non-priority forums, collecting any new messages and compressing them into a QWK file for download. If [U]pload is selected, MainMail will immediately begin to accept the upload of the REP file for insertion into the bbs message base(s). Command Line Parameters ----------------------- -D Start local download -U Start local upload -P Start preextraction -N: User name for local operations (required with any of the above) -D and -U will start a local download or upload respectively. These two cannot be used together. If both are used, -U takes precedence. A local download will be placed in the 'Local Downloads' directory specified in MMSETUP under CONFIG/GENERAL, and if the file already exists, it will be overwritten. A local upload will be looked for in the 'Local Uploads' directory specified in MMSETUP under CONFIG/GENERAL. -P starts a preextraction. (See section on PreExtraction). All of the above parameters require the use of the -N: parameter. When using -N:, enter the user's name (first and last) that the local operation is to be performed on. If the local user is the sysop, use 'SYSOP' instead of the name. Setting Up Networks ------------------- MainMail allows you to 'group' your forums by network. To do so, first you must set up your networks, then place your forums into their proper network, both using MMSETUP. When set up properly, your users will be shown a menu of networks when they choose the [S]elect option from the main menu, and if a network is chosen, they will be shown all forums on their chosen network. Start by adding all networks that you carry. Use your imagination. You can actually group non-network forums into a pseudo network, and your users will never know the difference. When you get all of your networks created using the NETWORK EDITOR in MMSETUP, then place your forums into their proper networks using the FORUM EDITOR in MMSETUP. That's all there is to it. (See the chapter on CONFIGURING MAINMAIL for details). Multi-Node Operation -------------------- There are two versions of The MainMail System, a multi-node version, and a single-node version. It is VERY IMPORTANT that you have obtained the correct version of The MainMail System. If you have the wrong version, MainMail will corrupt your GAP ISAM files, or at the very least, produce 'Share Violations'. DO NOT USE THE WRONG VERSION! Multi-Node operation is totally automatic. MainMail knows which node it is currently operating on by reading your GAP configuration files. Local Operation --------------- The MainMail System is fully functional in local mode. If a user or the Sysop logs onto the BBS at the console, MainMail will treat the user just as if s/he were logged on from remote. MainMail will create a packet and ask for the directory to place the packet. The default will be the path pointed to in the MainMail configuration for that node. (See the CONFIGURATION section of this manual). Unattended Operation -------------------- In addition, the sysop may run MainMail using a totally unattended batch process. When run unattended, MainMail will place an auto-downloaded QWK packet in the local download directory configured in MMSETUP. Similarly, MainMail will look for an auto-uploaded REP in the local upload directory configured in MMSETUP. (See the chapter on CONFIGURING MAINMAIL for details). To invoke MainMail to run unattended, change to your MainMail directory (if you are not already there), and run MM-GAP with either the '-D' or '-U' command line parameter. Below are some example batch files for unattended operation. Unattended Upload Unattended Download ----------------- ------------------- @ECHO OFF @ECHO OFF C: C: CD\MAINMAIL CD\MAINMAIL MM-GAP -U -N: MM-GAP -D -N: Echo Network Operations ----------------------- Any mail imported through MainMail will automatically be exported through network software such as PCRELAY or POSTLINK, unless the first three characters of the SUBJECT field of the message are 'NE:'. If these characters are encountered, MainMail will strip the 'NE:' from the subject, and will mark the message as 'Local' (non-echo) prior to inserting the message into the GAP message base. Desqview -------- MainMail automatically detects the presence of Desqview and routes all screen writes directly through it. "Writes directly to screen" can be set to "NO" and MainMail will not bleed through from the background. Memory Requirments ------------------ Memory requirements will vary depending on the number of forums you have configured in GAP. The MainMail System dynamically allocates memory at runtime by reading your GAPBBS.CNF to see how many forums you have, and allocating only the memory needed to accommodate that number of forums. The door itself requires approximately 200k, plus about 30 bytes per forum. Then add approximately 190k for PKZIP or 64k for DSZ. MainMail releases memory from one shell before allocating for another, thus should never require memory for both shells simultaneously. In other words, you will never need BOTH the 190k for PKZIP and the 64k for DSZ simultaneously. PreExtracting Mail ------------------ MainMail allows you to pre-extract mail for selected users. This reduces the amount of time the user is online by placing the user's QWK file in a special directory, in a pre-prepared form. When a user opens the MainMail door, MainMail will check for a preextracted QWK packet, and prompt the user that s/he has such a packet waiting. Further operations work as usual. When the user selects [D]ownload from the main command prompt, MainMail skips the message extraction process, and asks the user if s/he wishes to download the preextracted packet. All of the prompts are identical to those that would be present without the preextracted packet. This will allow seamless operation with scripts whether or not the user has a preextracted packet waiting. To enable preextraction, you must do two things: 1) Create a directory to store the preextracted packets. 2) Set a DOS environment variable 'MMPREPATH' that points to that directory. Example: (in AUTOEXEC.BAT) SET MMPREPATH=D:\MAINMAIL\PREEXT Note: MainMail does NOT check for or create the preextracted packet storage directory. The directory must exist or the preextraction system will fail. 3) Do the physical preextraction for the user using the '-P' command line parameter. Example: MM-GAP -P -N:MYBEST USER Note: You can only preextract mail for one user at a time, but you may store as many preextracted packets as you have space for. If you wish to preextract for more than one user, I would suggest using a batch file with each name on a separate line. For example: MM-GAP -P -N:FIRSTUSERS NAME MM-GAP -P -N:SECONDUSERS NAME MM-GAP -P -N:THIRDUSERS NAME MainMail will store the packet using a combination of the user's last and first names, four characters each. For example, a preextracted packet for TONY SUMMY would be stored as SUMMTONY.QWK. MainMail does NOT update the user's message pointers until a preextracted packet is successfully downloaded. This prevents aborted downloads or lost preextracted packets from causing lost mail. If a subsequent preextraction takes place before a user has an opertunity to download an existing one, MainMail will simply re-extract the same messages, and any new ones, and overwrite the existing preextracted packet with the new one. CONFIGURATION The MMSETUP Program ------------------- When you run MMSETUP for the first time, it will create three files: MMDAT.CNF, the MMUSER.DAT and MMUSER.IDX in the current directory. MMSETUP will configure most common compression methods and file transfer protocols for you. We have found these to be the most common methods, so we simply included them automatically in a new installation. In addition, MMSETUP reads the current directory, configures MainMail to this path for your MENU, NEW USER, NEWS, HELP and DUPE files. Running MMSETUP --------------- From the MAINMAIL directory, type MMSETUP . After the MainMail copyright notice clears, you will see this menu: (If this is a new installation, there will be a delay while MMSETUP creates the necessary data files, and a window will appear describing the process). ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ About Configure Networks Forums Users Quit ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Here is a description of each selection About: Gives you a short description of MMSETUP. Config: This is where you configure paths and filenames, Compressions and Protocols. Networks: This is where you add or edit your various Networks. Forums: This is where you edit your Forum flags. Users: This is where your edit your MainMail users file. Quit: Exits MMSETUP, saves your changes automatically and returns you to DOS. The General Configuration Screen -------------------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Sysop's Name In Door : TONY SUMMY ³ ³ Location of Help Files : .\HELP\ ³ ³ Location of Local Uploads : ³ ³ Location of Local Downloads : ³ ³ Location of Dupe Files : .\DUPE\ ³ ³ Name/Location of NEWUSER File : .\GEN\MM-NUSER ³ ³ Name/Location of NEWS File : .\GEN\MM-NEWS ³ ³ Name/Location of MENU File : .\GEN\MM-MENU ³ ³ Name/Location of TCAN File : .\GEN\MM-TCAN ³ ³ Default Compression Method : ZIP ³ ³ Default Forum Sort Order : NUMERIC ³ ³ Drive to use for Work Directory : ³ ³ Number of Rep's for Upload Credit : 0 (0 = No Credit Given)³ ³ ³ ³ Baud : 300 1200 2400 9600+ ³ ³ Default Messages per Forum : 100 200 200 200 ³ ³ Default Messages per Packet : 300 400 800 1200 ³ ³ Maximum Messages per Forum : 100 200 200 200 ³ ³ Maximum Messages per Packet : 300 400 800 1200 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Most of the entries shown above will be created automatically for you as defaults when you run MMSETUP for the first time. You can then simply overwrite the ones you need to change, and when you exit MMSETUP, the changes are automatically saved to MMDAT.CNF. Description of each entry in the GENERAL config screen ------------------------------------------------------ Sysop's Name In Door -------------------- MainMail converts messages TO or FROM this name to 'SYSOP' when importing, and converts messages TO or FROM 'SYSOP' to this name when exporting. Also, this name is used as the user's name in the door if the user is the sysop, REGARDLESS of the name in the GAP user file sysop record. The default for this field is the name that appears in the first record of the GAP user file. Location of Help Files ---------------------- The PATH ONLY to your MainMail "help" files. Default is \HELP under the current directory. Location of Local Uploads ------------------------- The path where your reader places "REP" packets to be uploaded. This should be your com program's UPLOAD directory. Default is blank. MMSETUP does NOT create this directory if it does not already exist. Location of Local Downloads --------------------------- The path to where your reader expects to find downloaded "QWK" files. This should be your COM program's download directory. Default is blank. MMSETUP does NOT create this directory if it does not already exist. Location of Dupe Files ---------------------- The MainMail door performs duplicate message checking during import (upload). To do so, MainMail saves the 32 bit CRC of each message, and checks all subsequent messages against this CRC. This directory is where MainMail stores the saved CRC files. There will be one file for each of your forums, and each file will be a maximum of 4,000 bytes. Dupe Checking must be enabled on a forum by forum basis. See the chapter on the forum editor for more details. Name/Location of NEWUSER File ----------------------------- The path and file name of your MainMail "NEWUSER" file. This screen will be shown to each user the first time s/he opens the MainMail door. Default is MM-NUSER in your MainMail GEN directory. NOTE: The actual file entered here does not have to exist. Name/Location of NEWS File -------------------------- The path and file name of your MainMail "NEWS" file. This screen will be shown to each user EVERY time s/he opens the door. Default is MM-NEWS in your MainMail GEN directory. NOTE: The actual file entered here does not have to exist. Name/Location of MENU File -------------------------- The path and file name of your MainMail "MAIN MENU". Default is MM-MENU in your MainMail GEN directory. NOTE: The actual file entered here does not have to exist. (Although, you will likely have some confused users if you don't have a menu for them. ). Name/Location of TCAN File -------------------------- The path and file name of your MainMail "TRASHCAN" file. This is a single column text file with only a list of names, similar to your GAP "TCAN" file. This feature is part of the network access system. Any messages to or from a user who's name appears in this file will not be passed to or from the network. Default is MM-TCAN in your MainMail GEN directory. Default Compression Method -------------------------- This is the compression method that will be selected for a NEW MainMail user, the first time s/he opens the door. You can not directly edit this field. When the cursor is placed on this field, press F5 to pop a pick list of configured compression methods. Use the arrow keys to select the method you wish, and press . Default Forum Sort Order ------------------------ When a user chooses the [S]elect Forums option, s/he will be shown a list of forums. S/he may also choose the order in which the forums will be sorted. This field will be the default for NEW MainMail users, the first time they open the door. Valid entries are [A] for alphabetical and [N] for numerical. Drive to use for Work Dir ------------------------- MainMail creates a temporary WORK directory the first time it is run. This entry tells MainMail which drive to create this directory on. This can be a network drive, a local drive, a ram-drive, or it can be left blank. If left blank, MainMail will create its work directory off of the current directory. The directory will be 'MWORK' for single-node systems, or 'MWORKxx' for multi-node systems, where 'xx' is the node number. Default is blank. NOTE: MainMail leaves this directory in place when it exits. This allows Novell Network Systems to flag the directory as 'PURGE'. Number Rep's/Upload Credit -------------------------- This is the number of "REP" packets a user must upload to receive upload credit. A value of zero (0) disables this option. Default is 0. Any upload credits will be written back into the GAP user file and become a permanent part of the user's record. Setting Message Limits By Baud Rate ----------------------------------- Baud : 300 1200 2400 9600+ Default Messages per Forum : 100 200 200 200 Default Messages per Packet : 300 400 800 1200 Maximum Messages per Forum : 100 200 200 200 Maximum Messages per Packet : 300 400 800 1200 These parameters determine the number of message any one user can extract during a download session. The defaults (lines one and two) are the number of messages MainMail will default to for each baudrate listed. In the example above, a caller at 1200 baud would be allowed 200 messages per forum, with a maximum of 400 messages in any one download session. By the same token, a user calling at 9600 or higher would be allowed 200 messages per forum with a session maximum of 1200 messages. These parameters are configured by baudrate since it takes longer to download at slower baudrates. It makes sense to allow callers at higher baudrates to download more messages in any one session. A little bit of experimentation and you will arrive at the best settings for your system. The second two lines are the maximums that a user can set his own profile to. Since MainMail allows the user to set his(her) own defaults, you can limit his(her) choices to reasonable amounts. The values shown above are the defaults as MMSETUP creates them. Configuring Compression Methods ------------------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Page 1 of 5 ³ ³ 1 Code : ARC Name : PKPAK ARC ³ ³ Compress Cmd Line : PKPAK ³ ³ Un-Compress Cmd Line : PKUNPAK ³ ³ ³ ³ 2 Code : ZIP Name : PKZIP 2.x ³ ³ Compress Cmd Line : PKZIP -en ³ ³ Un-Compress Cmd Line : PKUNZIP ³ ³ ³ ³ 3 Code : Name : ³ ³ Compress Cmd Line : ³ ³ Un-Compress Cmd Line : ³ ³ ³ ³ 4 Code : Name : ³ ³ Compress Cmd Line : ³ ³ Un-Compress Cmd Line : ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The above examples of compression methods should be self-explanatory. Once you decide which methods you wish to offer, you simply enter the name of the compression method, then the compress and un-compress command lines. You can configure up to twenty (20) compression methods. The above examples are the defaults created by MMSETUP when run for the first time. To delete a compression method, simply erase the CODE field. Once this screen is exited, MMSETUP will recognize that the CODE has been erased, and will delete the compression. While in the Compression Method editor, the following function keys are in affect: PgDn = Next Page PgUp = Previous Page NOTE: When you finish configuring your compression methods, MMSETUP will sort them alphabetically. There is no need to enter them in any particular order. NOTE: Choose one of these compression methods as a default for new users in the GENERAL configuration screen described earlier in this chapter. NOTE: You cannot delete all compression methods. If you do, you will not be able to exit this screen until at least one compression method exists. Configuring File Transfer Protocols ----------------------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ #F# - Filename of Packet #N# - Node Number Page 1 of 5 ³ ³ #B# - Com Base Address #P# - Com Port #I# - Com IRQ ³ ³ #S# - Computer/Modem Speed #C# - Modem/User 'Connect' Speed ³ ³ ³ ³ 1 Letter : C Name : Xmodem CRC ARQ Req? : N ³ ³ Send Command Line : DSZ port #P# sx #F# ³ ³ Recv Command Line : DSZ port #P# rc #F# ³ ³ ³ ³ 2 Letter : D Name : DSZ Zmodem MobyTurbo ARQ Req? : N ³ ³ Send Command Line : DSZ port #P# ha bo pB4096 sz -m #F# ³ ³ Recv Command Line : DSZ port #P# ha bo pB4096 rz -m #F# ³ ³ ³ ³ 3 Letter : G Name : Ymodem-G ARQ Req? : Y ³ ³ Send Command Line : DSZ port #P# ha cts pB4096 sb #F# ³ ³ Recv Command Line : DSZ port #P# ha cts pB4096 rb -g #F# ³ ³ ³ ³ 4 Letter : H Name : HS/Link ARQ Req? : N ³ ³ Send Command Line : HSLINK -P#P# -! -NT -NV -S4096 #F# ³ ³ Recv Command Line : HSLINK -P#P# -! -NT -NV -S4096 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The above protocol examples are as they are created by default when MMSETUP is run for the first time. You may use these as configured, or change them any way you wish. MMSETUP configures 8 transfer protocols by default for you. You may configure up to twenty (20) protocols. To delete a protocol from the list, simply erase the protocol LETTER field. MMSETUP will recognize that the LETTER has been erased, and will delete the protocol. Please note that in the examples above, the transfer protocols are sorted alphabetically. MainMail does this automatically. It is NOT necessary for you to configure these protocols in any particular order. MainMail supports these parameters proper values: #B# = Com port base address (hex) #C# = The callers connect baudrate #F# = The file name of the QWK or REP file #I# = Com port IRQ number #N# = The current node number #P# = The com port number #S# = The com port baudrate MainMail will substitute the proper values for these macros at runtime. All macros must be UPPER CASE for MainMail to recognize them as macros, and replace them with the proper values. If you enter these in lower case, MainMail will think that they are part of the string that the protocol needs, and will send them as entered. Configuring Networks -------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Net # 0 Net Code: LO Net Name: Local Hub ID: ³ ³ Tagline: This is the tagline used in the ALLNETS network. ³ ³ Strip Taglines On: Export: N Import: N ³ ³ ³ ³ Net # 1 Net Code: N1 Net Name: Network 1 Name Hub ID: NETHUB01 ³ ³ Tagline: This is the tagline used in network number 1. ³ ³ Strip Taglines On: Export: N Import: N ³ ³ ³ ³ Net # 2 Net Code: N2 Net Name: Network 2 Name Hub ID: NETHUB02 ³ ³ Tagline: This is the tagline used in network number 2. ³ ³ Strip Taglines On: Export: N Import: N ³ ³ ³ ³ Net # 3 Net Code: N3 Net Name: Network 3 Name Hub ID: NETHUB03 ³ ³ Tagline: This is the tagline used in network number 3. ³ ³ Strip Taglines On: Export: N Import: N ³ ³ ³ ³ Net # 4 Net Code: N4 Net Name: Network 4 Name Hub ID: NETHUB04 ³ ³ Tagline: This is the tagline used in network number 4. ³ ³ Strip Taglines On: Export: N Import: N ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ When the NETWORK editor is opened, you will see a screen like the one above. Initially, only the first record will have any data in it. The Code and Name of record 0 (the Local network) cannot be edited. While in the network editor, the following keys are operational: F2 - Finds the page for a given network number. F3 - Adds a new network record. F8 - Deletes a network record. F9 - Saves your changes. PgUp - Moves to the previous page of networks (if any). PgDn - Moves to the next page of networks (if any). ESC - Exits the network editor. NOTE: When adding or editing networks, use descriptive names and codes. Your users will be given a list of these networks when they choose [S]elect Forums from the door menu. The easier it is to interpret your codes, the less confusion there will be for them. NOTE: When you delete a network (using F8), any user or forum that belongs to that network will be placed into network number 0 (Local). Also, any forum or user who belongs to a network above (a higher number) will be moved along with their network, down one. In other words, if you have 5 networks, and you delete number 2, any forum or user in network 2 will be placed into network 0, and all networks above 2 will be moved down one. In addition, all users and forums in networks 3 through 5 will also be moved down one, to coincide with their pervious network. Configuring Forums ------------------ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Forum Net Auto News Dup Export Allow Use Net ³ ³ Num Forum Name Forum Force Select Optn Chk NonEco Yours Tag Num ³ ³----- ---------------- ----- ----- ------ ---- --- ------ ----- --- --- ³ ³ 0 Main Board N Y N N Y N N N 0 ³ ³ 1 Forum - 1 Y N N N Y N N N 0 ³ ³ 2 Forum - 2 Y N N N N N N N 0 ³ ³ 3 Forum - 3 Y N N N N N N N 0 ³ ³ 4 Forum - 4 Y N N N N N N N 0 ³ ³ 5 Forum - 5 Y N N N N N N N 0 ³ ³ 6 Forum - 6 Y N N N N N N N 0 ³ ³ 7 Forum - 7 Y N N N N N N N 0 ³ ³ 8 Forum - 8 Y N N N N N N N 0 ³ ³ 9 Forum - 9 Y N N N N N N N 0 ³ ³ 10 Forum - 10 Y N N N N N N N 0 ³ ³ 11 Forum - 11 Y N N N N N N N 0 ³ ³ 12 Forum - 12 Y N N N N N N N 0 ³ ³ 13 Forum - 13 Y N N N N N N N 0 ³ ³ 14 Forum - 14 Y N N N N N N N 0 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The Forum Editor allows you to set specific toggles for each forum, and place the forum(s) into specific networks. Each field is described here: These fields are read from the bbs and cannot be changed: Forum Number The GAP Forum Number Forum Name The GAP Forum Name Net Forum If this forum is set up as an ECHO forum in GAP. These fields can be edited: Force ----- If enabled, then non-network users will be forced into selecting this forum. They will not be able to deselect it. This toggle has no effect for Network Status users. Auto Select ----------- If enabled, then this forum will be selected automatically the first time a user enters The MainMail Door. The user CAN deselect this forum, unless FORCE (above) is enabled. This toggle has no effect for Network Status users. News Optional ------------- If enabled, then non-network users can 'turn off' the news, welcome, and exit-news screens. This toggle has no effect for Network Status users. Dupe Checking ------------- If enabled, then MainMail will keep a list of CRC values for all messages uploaded into or downloaded from this forum, and perform duplicate checking within this forum. Export NonEcho -------------- If enabled, messages in this forum that are marked LOCAL will be exported to Network Status users. This toggle is necessary if you are linking two different network software products in the same forum. This toggle has no effect for Non Network Status users. Allow Yours ----------- This toggle only affects Network Status users. Normally, a network node will want to extract ALL mail. For this reason, MainMail normally disables the 'Your Mail Only' option if the user has network status. This toggle allows a network status user to extract 'Your Mail Only' if desired. Use Tagline ----------- This option only affects Network Status users. If enabled, MainMail will append a tagline to all messages being exported, if they do not already have one. If you are not operating as a QWK hub, then disregard this toggle. Network Number -------------- This places the forum into a 'network'. The network must exist prior to placing forums into it. Any forum placed into a non-existent network will subsequently be placed into the 'Local' network, (#0). You may enter the network number directly or press F5 while the cursor in on this field to pop a pick list of configured networks. While in the forum editor, the following keys are operational: F2 - Finds the page for a given forum number. F9 - Saves your changes. PgUp - Moves to the previous page of forums (if any). PgDn - Moves to the next page of forums (if any). ESC - Exits the forum editor. The User File Editor -------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ First Name : TONY QWKs D/L : 437 ³ ³ Last Name : SUMMY REPs U/L : 399 ³ ³ Date of Last QWK : 11/04/93 Time of Last QWK : 11:12 ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ Max Msgs Per Forum : 0 Max QWK Size K : 0 ³ ³ Max Msgs Total : 0 Compression Method : ZIP ³ ³ Selected Protocol : Z ³ ³ Includes Own Mail : Y Forum Sort : NUMERIC ³ ³ Scan Bulletins : Y Enhanced File Descriptions : N ³ ³ Scan Files : Y ³ ³ Color Bulletins : Y Qmail Indexes : Y ³ ³ Welcome/News : Y Network Status : N ³ ³ Expert Mode : Y Network Number : 0 ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ [PgUp] = Prev Record [F2] = Find Record [F8] = Del Record ³ ³ [PgDn] = Next Record [F3] = Add Record [F9] = Save Changes ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ While in the User Editor, the following keys are in effect: PgUp - Previous Record PgDn - Next Record F2 - Find Record By Last Name F3 - Add Record (Name must exist in GAP) F5 - Network Pick List (while cursor is on Net # field) F8 - Delete Record (Editor will prompt for confirmation of delete) F9 - Save Record ESC - Exit User Editor (Save Record) Most fields are self explanatory, but here are the details of each one. First Name ---------- Displays the user's first name. You cannot edit this field. MainMail gets this data from GAP. Editing this field would destroy the 'link' between MainMail and GAP. Last Name --------- Displays the user's last name. You cannot edit this field. MainMail gets this data from GAP. Editing this field would destroy the 'link' between MainMail and GAP. Date Of Last QWK ---------------- The last date this user downloaded a QWK packet. You can not edit this field. Number Of QWKs D/L ------------------ The total number of QWK packets this user has downloaded. Number Of REPs U/L ------------------ The total number of REP packets this user has uploaded. Time Of Last QWK ---------------- The last time this user downloaded a QWK packet. You cannot edit this field. Max Msgs Per Forum ------------------ The most messages this user is allowed to extract from each forum in a single session. Max Msgs Total -------------- The most messages this user is allowed to extract in a packet. Selected Protocol ----------------- The protocol this user has selected. Valid protocols will display to the right of this field in braces '<>'. Includes Own Mail ----------------- Does this user extract his/her own mail. Scan Bulletins -------------- Does this user scan for new bulletins during download. Scan Files ---------- Does this user scan for new files during download. Color Bulletins --------------- Does this user require 'color' (g) versions of new bulletins. Welcome/News ------------ Does this user include the Welcome and News screens in the QWK packet. Expert Mode ----------- Does this user require the main menu. 'Expert Yes' = Do not display the menu. Max QWK Size in K ----------------- The largest QWK file this user is allowed to download. Compression Method ------------------ Indicates the user's chosen compression method. Forum Sort ---------- Indicates the user's default forum sort order in the SELECT screen. Enhanced File Descriptions -------------------------- This toggle only applies if the user has 'Scan Files' set to YES. This option indicates whether the user wants Condensed (short) or Enhanced (long) file descriptions. Network Status -------------- Indicate that this user is allowed 'network' type packets. This allows the packet to be inserted into another bbs' message base(s), and also allows messages to be uploaded to your bbs that are from users other than the one currently in the door. Net Number ---------- This option 'places' the net status user into a particular network. ONLY forums in THAT network will be available to this user. Optionally, you may place this user into a special network called 'ALLNETS' (network #99) which allows access to all forums in all networks. You may enter the network number directly or press F5 while the cursor in on this field to pop a pick list of configured networks. IN SUMMARY This concludes The MainMail System documentation. Your MainMail door should now be ready to go. We at The Main Shop sincerely hope that you find The MainMail System satisfactory for your needs. Please feel free to give us a call if there are any questions or suggestions you may have. We are very open to suggestions as to how we can make our products better. THANKS ------ I want to express a special thanks to the following persons, or companies for their help in the creation of The MainMail System. Without them, The MainMail System would still be only a glimmer in my eye. I could not have done it without any one of them. Mark Turner: Mark wrote the original version of this code, Markmail For GAP back in 1990. It was Mark who turned me into a good friend, who inspired me to learn C, and help me to get started. Several times throughout the development of this product, he was a lifesaver with his advise and wisdom, (and an occasional derogatory comment ). Thank you very much, Mark! (If I *EVER* hear "Why didn't you just do it THIS way?" again, I'll scream!) Kenny Gardner: Kenny has been more help than I can put in words. GAP BBS software is the finest and most advanced BBS software available, and it is this man who is responsible for making it that. Naturally, without GAP, there would be no MainMail System, and without Kenny's help, I never would have been able to finish this project. Thank you for your help and guidance. The Beta Testers: It's these guy's hard drives and user files I trashed while perfecting this version of The MainMain System. Without these guy's input, the product wouldn't be anywhere near as feature packet, or as solid as it is. I can't thank them enough! The MainMail System is compiled with Microsoft C 6.0, using the following libraries: C-TREE Ver 4.3c, Copyright (c) 1984-1989, by: FairCom Corporation. CXL Ver 5.1, Copyright (c) 1987-1989, by: Mike Smedley. MCOMM Ver 5.56 Async, Copyright (c) 1989-1993, by: Mike Dumdei. BUFIO Ver 1.1 Buffered File I/O, Copyright(c) 1989, by: Mark Turner. Plus portions of: GAPCDOOR Ver 6.0, Copyright (c) 1988-1993, by: GAP Development Co. APPENDIXES Appendix A - File Formats ------------------------- MainMail produces and includes the following files in a downloaded QWK packet: DOOR.ID: A text file which informs the mail reader about the door. DOOR.ID will always have these contents: DOOR = MainMail VERSION = 3 SYSTEM = GAP Ver 6.0 CONTROLNAME = MAINMAIL CONTROLTYPE = ADD CONTROLTYPE = DROP CONTROLTYPE = YOURS CONTROLTYPE = OWN .PTR: A binary file containing a single 16 byte record for each forum that the current user (the user in the door) is registered in. idcode.PTR is a standard C structure of the format described below. If mail reader authors wish to manipulate this file and include it in the upload, they are welcome to. The MainMail System will look for this file in an upload, and if it is found, MainMail will do the following: For each record contained in .PTR, MainMail will: 1) Check to see if the current user is registered in the forum and if not, MainMail will register the user in the forum. 2) Reset the user's last message read to the message number contained in the idcode.PTR record. The format of the .PTR record(s) is: struct POINTER { unsigned forumnum; // forum number for this record unsigned extrafield; // for future use long messagenumber; // high message number char extra[8]; // for future use } pointer; In addition, the following 'standard' QWK files are included: MESSAGES.DAT: Contains the actual messages xxx.NDX: Index of messages in messages.dat ('xxx' = forum number) PERSONAL.NDX: Index of messages TO: the current user. NEWFILES.DAT: Text file containing a list of new files. BLT-xxx.yyy: New bulletins ('xxx' = forum number, 'yyy' = bulletin number) NETFLAGS.DAT: Network Registration Flags (net status users only) SESSION.TXT: A screen capture of the message extraction step. ATTACHED.LST: List of attached files included in this packet. Plus the NEWS and ENEWS files from the BBS. The following file is in the 'standard' REP packet: idcode.MSG: Replies uploaded into MainMail. (Similar to MESSAGES.DAT above) ATTXREF.DAT: A list of attached files being uploaded in this packet. Appendix B - Caller Log Entries ------------------------------- The MainMail System writes a log of its activities to the GAP BBS caller logs. A GAP BBS caller log entry consists of a date (A), time (B), log code (D) and a description (F), and in some cases, an additional field (E) which may contain information such as forum number, error number or a descriptor such as 'Open' or 'Local'. The caller log codes used by The MainMail System will be between 751 and 799. Codes between the numbers of 751 and 779 are normal activities, while codes 780 and above indicate errors. Here is an example of a caller log entry: A B C D E F 06/20/92 20:55 OP 773 127 Extracted Messages: 32 A and B are self-explanatory, C through F are explained here. C = 'OP' for normal operation, 'ERR' if an error has occurred. D = The Log code (see list immediately following this section). E = Forum number, or other number describing the operation or error. F = Description of entry. Sometimes (as in the example above) there is an additional number after the text. In our example above, the extra entry is the number of messages extracted. Where an extra number or field is included after the text field (F) , it will be described below in braces '<>'. Where there is an entry in 'E', the item written will be described below in square brackets '[]'. Caller log codes and their descriptions --------------------------------------- The following are normal log entries, and will write the 'OP' code (C). 751 = Entered Select Area 752 = Selected Forum [forum number] 753 = DeSelected Forum [forum number] 754 = Entered Protocol Select Area 755 = Selected Protocol [protocol letter] 756 = Selected Files Scan 757 = DeSelected Files Scan 758 = Selected Bulletins Scan 759 = DeSelected Bulletins Scan 760 = Selected Expert Mode 761 = DeSelected Expert Mode 762 = Other Configuration Area 763 = Entered Select Compression Area 764 = Selected Compression [compression method number] 765 = New Bulletins Found: [forum number] 766 = New Files Found: [forum number] 767 = Total Messages Extracted: 768 = Inserted Messages (non net status) [forum number] <# of msgs> 769 = Duplicate message uploaded [forum number] 770 = New MainMail User 771 = Downloaded Packet [protocol letter] 772 = Uploaded Packet [protocol letter] 773 = Extracted Messages: (non net status) [forum number] <# of messages> 774 = Total Inserted Messages: 775 = Inserted Messages (net status users) [forum number] <# of msgs> 776 = Sysop Shell To DOS 777 = Return From DOS 778 = Extracted Messages: (net status) [forum number] <# of messages> 779 = Not Used 780 = Not Used Error Entries ------------- The following are error messages and will write the 'ERR' code (C). If you encounter one of these codes, look into the cause. If you are not successful, contact The Main Shop and we will help you track down the problem. 781 = ISAM error [isam error number] 782 = Open Error (This is a file not found error) 783 = Out Of Memory 784 = Error Creating Archive 785 = Error Uploading Packet 786 = Error Downloading Packet 787 = Not Enough Time For Download 788 = Error UnArchiving Packet 789 = Wrong BBSID In Packet 790 = Multiuser Lock Error (multiuser version only) 791 = Not Used 792 = User file record error (Unable to reread user record) 793 = Work Directory Error 794 = Demo version Limitation Exceeded 795 = Carrier Lost 796 = Keyboard Timeout 797 = Expired Time 798 = Invalid Key File 799 = Abnormal Exit ISAM Errors (781) ----------------- When an ISAM error (log code 781) occurs, field (E) will be the actual error code returned form the ISAM routines. This section describes the possible ISAM errors. 12 = ISAM File Not Found, Could Not Open. 14 = File Appears Corrupted. Run MMPACK. 16 = Could Not Create Index. Probably Out Of Disk Space. 17 = Could Not Create Data File. Probably Out Of Disk Space. 24 = Could Not Close File. Probably A Memory Error. Reboot. 25 = Bad Link In Index. Run MMPACK. 30 = Write Past End Of File. Run MMPACK. 34 = Could Not Find Previous Index Node. Run MMPACK. 35 = Seek Error. Probably Out Of Disk Space. 36 = Read Error. Run MMPACK. 37 = Write Error. See error 35. 42 = Could Not Obtain Record Lock. Load SHARE. 101 = Could Not Find Record. Run MMPACK. 782 - Open errors: These usually indicate a file not found or incorrect path. Check your GAP or MainMail configuration for incorrect paths. 783 - Out Of Memory: This is a serious problem. MainMail creates buffers of various sizes throughout the running of the program. (See section of Desqview and memory earlier in this manual). The memory requirements of MainMail are such that if you have an 'out of memory' condition, there is usually a deeper problem. Check your autoexec.bat and config.sys files for TSRs that might be fragmenting memory, and leaving it split into two small sections. Reboot at the very least! 784 thru 789: These are user errors. 793 - Work Dir: Work directory errors are also serious. This means that MainMail could not make, or switch to the work directory. Probable cause is out of disk space, or 512 files in the root of the drive. 794 - Demo Version Limitation Exceeded: BUY MAINMAIL! 795 thru 797 are user errors. 798 - Invalid Key File: Your MMSYS.DAT encrypted key file has been altered. Call The Main Shop and download a new key file. (See the section on SUPPORT earlier in this manual.) 799 - Abnormal Exit: Anytime a fatal error has occurred, it will be followed by this error as MainMail aborts. Not all of these codes actually indicate a problem, but the are errors nonetheless. For example, if you were to encounter an error 1 for log code 786 'Error Downloading Packet', that is simply a dos errorlevel 1 from DSZ and is probably the user's problem. LICENSE AGREEMENT This is a legal agreement between the purchaser of The MainMail System license (herein referred to as YOU) and The Main Shop (herein referred to as US or WE). By paying the registration fee for The MainMail System (herein referred to as SOFTWARE) you hereby agree to the terms set forth by this agreement, and agree to be bound to this contract. If you find the terms of this contract to be unacceptable, return the SOFTWARE to us for a refund within 30 days of payment of the license fee, and we will consider this contract null and void. At that time, you are legally required to discontinue to use the SOFTWARE and remove ALL copies of the SOFTWARE from ALL sources of media you possess, and retain NO copies whatsoever. You are hereby granted the right to operate the SOFTWARE on one computer system at one site for the term of this contract. One computer system is defined as a single computer, or several computers connected via a single local-area-network, provided that all computers operating the SOFTWARE share the same single user file. Multiple bulletin board systems operating with separate data files are considered separate and individual systems and are specifically excluded from the terms of this contract, even if they operate using identical or similar names, and/or are located at the same physical site. Such multiple systems each require a license of their own. You are permitted to make a reasonable number of copies of the SOFTWARE for archival purposes, or for purposes of performance. Permitted copies would be, for example, a copy of the SOFTWARE residing on each work station of a local-area-network providing that the terms described above in regards to multiple bulletin boards are met. A reasonable number of copies would be one copy for each operating node of your bulletin board, plus 2 copies for archival purposes. You may NOT under ANY circumstances, provide a copy of your registered SOFTWARE to a bulletin board operator who has not paid the registration of the SOFTWARE to us even for archival purposes. You may operate as many copies of the SOFTWARE as you operate nodes on your bulletin board system, plus one. The one additional copy can be operated as a local (non-publicly available) copy for your own use off-line. This method of use is considered normal, and does not violate the terms of this contract. You may not rent, lease or share the SOFTWARE with any other party. However, the software is transferable to another party providing that these conditions are met: 1) The receiving party registers his/her bulletin board with us. 2) You eliminate all copies and retain NO copies of the SOFTWARE. Should any part or section of this contract be determined to be unenforceable or unconstitutional, that section shall be declared void. Such declaration shall have no effect on the remaining sections of this contract. Information in this manual is subject to change without notice. The Main Shop may make improvements and/or changes to The SOFTWARE at anytime. SATISFACTION GUARANTEE ---------------------- The SOFTWARE license is sold with an unconditional 30-day money-back guarantee. If for any reason you are not completely satisfied with the SOFTWARE, return it within 30 days of purchase, and your full purchase price will be refunded. The Main Shop makes no warranties of any kind, expressed or implied, with respect to the quality, performance, accuracy, or fitness of SOFTWARE for any particular purpose. The Main Shop assumes no responsibility for any decisions made or actions taken on the part of Purchaser because of the use of the SOFTWARE. In no event shall The Main Shop be liable for any loss of profit or any other damages, including but not limited to special, incidental, consequential or other damages, arising out of the use of or inability to use the product, even if The Main Shop has been advised of the possibility of such damages.