home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
bbs
/
mfix430.zip
/
MAILFIX.DOC
< prev
next >
Wrap
Text File
|
1994-01-24
|
15KB
|
330 lines
MAILFIX v4.30
-------------
MAILFIX is a purge/repair utility for RBBS-PC message bases. It was
originally written by Chip Morrow and released as part of the MAIL MANAGER
offline mail door for RBBS-PC, but because of its obvious utility for all
RBBS sysops, whether running MAIL MANAGER or not, we are releasing it as a
separate stand-alone utility.
Version 4.0 was largely rewritten by Doug Wilson to run much faster than
previous releases, and has a few more useful options than previous
versions.
WARRANTY, DISTRIBUTION, AND LICENSING AGREEMENT:
------------------------------------------------
MAILFIX is 100% guaranteed to take up space on your hard disk, and is
equally guaranteed to consume less space if deleted. MAILFIX is NOT
guaranteed to do anything else. Period.
MAILFIX is copyrighted 1991-1994 by Makai Software, all rights reserved.
We are releasing it with source code, for those who would like to see how
it operates. You may distribute it freely, provided that no modifications
have been made. You are free to modify the code for YOUR OWN USE in
whatever manner you wish. We are sure that the current code is far from
optimal, but it does seem to work pretty well, nonetheless.
MAILFIX is not "SHAREWARE", rather it is distributed freely with source
code for other RBBS-PC sysops, as a contribution to the RBBS-PC community.
See the top of the source code file MAILFIX.BAS for additional licensing
information.
CONTACTING THE AUTHORS:
-----------------------
Due to the transitory nature of many bulletin boards, and the fact that
you may be reading these instructions a long time after they are written,
it is probably best not to list bulletin boards where we may be reached.
Inevitably, whichever board we cite will immediately go out of business,
and the phone number will be reassigned to somebody who does not care to
be awakened by the phone ringing in the middle of the night when we modem
junkies place most of our long distance calls.
The authors, however, CAN be found on the "RBBS-PC" conferences carried by
Fido and RIME. New releases are always announced in these conferences,
and we occasionally post lists of the currently active distribution sites
there. If you wish to contact us via these conferences, address messages
to Doug Wilson or Chip Morrow.
Current Makai Software releases are always sent to Compuserve within a few
days of release, in the IBMBBS forum (GO IBMBBS). The doors themselves
may be found in library 3, while the individually-distributed utilities
(MNET, MAILFIX, etc.) may be found in library 2. While you're on
Compuserve, you can reach one of the authors, Chip Morrow, there
(72677,502).
Chip Morrow is also available via Prodigy and Internet, if either of those
are more convenient:
Prodigy: GVHM95A
Internet: 72677.502@compuserve.com
And if all else fails, there's always good ol' U.S. Mail:
Makai Software
870 Golden Drive
Newark, OH 43055
------------------------------------------------------------------------
LIMITATIONS:
------------
Without the /S command line switch, MAILFIX can handle RBBS message bases
which contain up to 1000 messages. When it hits message 1001, it will
exit with an error. You can increase MAILFIX's internal buffer by
specifying /Snnnn on the command line, where "nnnn" is the maximum number
of messages that MAILFIX should expect. So, if you'd like MAILFIX to be
able to handle a message base containing as many as 3,000 messages, your
command line would include:
/S3000
The program would then not error out until it hits the 3,001st message
in that area.
Prior releases of MAILFIX would crash if a message base exceeded 32767
records (approximately 4.1 meg file length). This has been corrected with
this release 4.30, so MAILFIX should now be compatible with RBBS mod
packages which allow far greater than stock RBBS' 999 message per
conference limit.
Aside from the above, MAILFIX has taken about anything we have thrown at
it, as long as the file contains consistent 128-byte records. If
something should insert or lose characters such that the 128-byte record
length is not preserved, MAILFIX will not be able to process the file.
------------------------------------------------------------------------
USAGE:
-----
MAILFIX [options] D:\PATH\MESSAGE.FIL
Available options:
/D - Use DOS screen writes instead of direct. Slows the program
down a tad, but allows for DOS redirection of output.
/F - Informs MAILFIX that this is a fixed-length message base. If
"/F" is not specified, MAILFIX assumes the message base to be
configured as 'elastic'.
/Kn - (where "n" is the number of messages to keep.): Tells MAILFIX
to trim down the physical size of the message base, keeping the
last "n" active messages. This is useful for things like an
echo area that grows almost out of control daily. If you want
to keep 50 messages, your switch would be "/K50".
This switch may not be used in conjunction with "/V"!
Use of this option will OVERWRITE your original message file!
/N - Tells MAILFIX to renumber the message base, starting at message
number 1. If used with the /K option, the retained messages
will be renumbered starting with 1.
Use of this option will OVERWRITE your original message file!
Optionally, you may immediately follow the /N with the
drive:\path\filename of the user file for this message base if
you wish MAILFIX to update the user's message pointers to
reflect the renumbering. There can be no spaces between the /N
and the beginning of the filename. Your original user file
will be updated in place, so if you want a backup of your
unaltered user file, you must make one first.
/O - Informs MAILFIX that the sysop uses OverMail on this message
base. OverMail formats the time field in the message header
with a semicolon instead of a colon, which CONFIG's option #185
(repair messages) chokes on.
/P - Tells MAILFIX to purge personal messages which are have been
received by the addressee.
/R - Informs MAILFIX that the sysop uses RBBSMail or MsgToss on this
message base. Both of these mail processors format the time
field in the message header with a period instead of a colon,
which CONFIG's option #185 (repair messages) chokes on.
/Sn - (where "n" is the max number of messages that could be contained
in this message base). The stock RBBS-PC maximum is 999, and the
default here is 1000 if /S is not specified. If you are running
a modified copy of RBBS-PC (one that can handle more than 999
msgs per message file), then you will need to use this switch to
increase MAILFIX's internal buffer.
/V - Only View the integrity of the message file. Do not perform
the actual repair work, and do not create an output file.
D:\PATH\MESSAGE.FIL is the name of the messages file to
purge/repair.
Unless the /V option is used, MAILFIX will create an output file
with the same name and the extension '.FIX'. Above example would
create D:\PATH\MESSAGE.FIX.
If the /Kn or /N switches are used, MAILFIX will make a second pass
on your message base, using the *.FIX file for input, and the
original file name for output. When finished your original message
file will have been replaced by MAILFIX's work, and the *.FIX file
will be deleted.
EXAMPLES:
--------
Unless you use the "/Kn" or "/N" command line options, MAILFIX will not
overwrite (or modify in any way) your original message file. If you
want to replace your old message file with the one that MAILFIX creates,
your best bet is to run MAILFIX from a batch file, like so:
IF EXIST C:\RBBS\MAINM.FIX DEL C:\RBBS\MAINM.FIX
MAILFIX C:\RBBS\MAINM.DEF
IF EXIST C:\RBBS\MAINM.FIX DEL C:\RBBS\MAINM.DEF
IF EXIST C:\RBBS\MAINM.FIX REN C:\RBBS\MAINM.FIX C:\RBBS\MAINM.DEF
On the other hand, if you have an echo area that's scanned
by RBBSMail, and you want to keep it purged down to 100
messages, your command line would be:
MAILFIX /R /K100 C:\RBBS\FILENAME.DEF
If you want to also renumber the message base, and to update
the pointers in your user file for this base:
MAILFIX /R /K100 /NC:\RBBS\USERFILE.DEF C:\RBBS\FILENAME.DEF
If you wanted to do the same thing with a message base that's
been scanned by OverMail:
MAILFIX /O /K100 /NC:\RBBS\USERFILE.DEF C:\RBBS\FILENAME.DEF
These last three examples would replace "FILENAME.DEF"
with the fixed/purged/pruned message base.
Run MAILFIX without a command line to get a help screen.
------------------------------------------------------------------------
TECHIE STUFF FOR THOSE WHO CARE:
-------------------------------
If you run a mail system that utilizes RBBSMail, MsgToss, or OverMail
for echo mail processing, you're likely to have run across the fact that
the repair utliity out of CONFIG (option #185) no longer works for you.
This is due to the fact that these mail processors place either a period
or a semicolon in the time field of the message header on every message
that they process.
This just happens to be one of CONFIG's five "key fields" that it looks
at to determine whether or not the message is corrupt.
These key fields are:
Description Should be
------------------------------------------- ---------
The "killed" flag, Ascii 225 or 226 "ß,Γ"
the first separator in the 'time' field, ":"
the second separator in the 'time' field, ":", ".", or ";"
the first separator in the 'date' field, "-"
and the last separator in the 'date' field. "-"
Therefore, this string of five characters is very important, and is what
will be displayed to you if the message needs repaired, and you specify
the "/v" option on MAILFIX's command line. If you don't specify "/v" on
the command line, MAILFIX will do its best to fix the message, and
report "<fixed>".
If you use a mail processor on your RBBS-PC message bases OTHER than
RBBSMail, MsgToss, or OverMail, and said mail processor *DOESN'T* use
a period or semicolon as its 'mark' in the second separator in the TIME
field, we'd sure like to hear about it so that we can attempt to make
MAILFIX compatible with your system.
WHEN, AND HOW MAILFIX FIXES A MESSAGE:
-------------------------------------
To determine whether or not a message is valid, MAILFIX looks at the
following in the message header:
Message number - Should never be zero.
Killed flag - Should always be ASCII 225 or 226.
Number of 128-byte records - Should never be less than 1.
If the message header passes these three tests, MAILFIX assumes it has
a valid message on its hands, and moves on to do one of three things:
- Copy it (if it isn't marked as killed, and doesn't need fixed).
MAILFIX will step through the message's records and write them to
the output file.
- Fix it (if it isn't marked as killed).
If, during all of its checks, MAILFIX finds that it has a valid
message on its hands, yet the five key characters mentioned above
DON'T MATCH what they're supposed to, the message header is
adjusted as follows:
* Sets the "killed" flag to indicate that this is an active
message (Ascii 225) "ß".
* Sets the TIME separators to:
:: - RBBS-PC (un-scanned by RBBSMail/OverMail)
:. - RBBSMail and MsgToss
:; - OverMail
You must have specified "/R" or "/O" on the command line
for the RBBSMail/OverMail checks to take place.
If "/R" or "/O" is specified, MAILFIX is smart enough to
discover whether or not the message has been scanned by
either one of these mail processors yet, and will not mark
an un-scanned message with the special "." or ";" separator.
* Sets both DATE separators to "-".
- Purge it (if it's marked as killed).
MAILFIX will skip the entire message (and its records) if the
message is marked as killed (ASCII 226) "Γ".
If the message didn't pass the tests, MAILFIX assumes that this is not a
message header, reports to you as such, purges the offending record, and
moves on to the next one.
------------------------------------------------------------------------
*=- ABOUT MAILFIX and MESSAGE BASES with CARBON COPIES -=*
--------------------------------------------------
MAILFIX *DOES* work with message bases that have been configured with
the new "carbon copy" feature of RBBS-PC v17.4. MAILFIX does not go
through any special gyrations to look for multiple-recipient messages,
but it will not trash your message base, either. When renumbering, it
will reset the message number in all "carbon copies".
In the over 2 years of Mail Manager / MAILFIX's life thus far, we have
found that there are MANY utilities floating around out there that do
not strictly adhere to the RBBS-PC message format as-defined in the
documentation for our favorite BBS software. MAILFIX was specifically
written to be as generic as possible, and to work with the widest
possible variety of RBBS-PC message bases.
The only incompatibility with RBBS-PC v17.4 message bases is the
following scenario:
The message base is configured with "carbon-copy" turned on, and
1) - The very first header of the "carbon-copy" message is bad, or
2) - The very first header of the "carbon-copy" message is marked
as "killed".
In the first case, MAILFIX will skip the "bad" message, and maybe
the one following it as well, until it can get its bearings and
find the next "good" message header.
In the second case, MAILFIX will purge the entire message, even
if some of the other carbon copies have not been marked as killed.