home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / 175B220U.ZIP / MFIX431.ZIP / MAILFIX.DOC < prev    next >
Encoding:
Text File  |  1994-09-10  |  16.6 KB  |  358 lines

  1.                               MAILFIX v4.31
  2.                               -------------
  3.  
  4.    MAILFIX is a purge/repair/renumber utility for RBBS-PC message bases.  It
  5.    was originally written by Chip Morrow and released as part of the MAIL
  6.    MANAGER offline mail door for RBBS-PC, but because of its obvious utility
  7.    for all RBBS sysops, whether running MAIL MANAGER or not, we are
  8.    releasing it as a free, separate stand-alone utility.  Version 4.0 was
  9.    largely rewritten by Doug Wilson to run much faster than previous
  10.    releases, and has a few more useful options than previous versions.
  11.  
  12.    Significant changes and additions in this document from release 4.30 are
  13.    indicated by a | symbol in the left margin.
  14.  
  15.    WARRANTY, DISTRIBUTION, AND LICENSING AGREEMENT:
  16.    ------------------------------------------------
  17.    MAILFIX is 100% guaranteed to take up space on your hard disk, and is
  18.    equally guaranteed to consume less space if deleted.  MAILFIX is NOT
  19.    guaranteed to do anything else.  Period.
  20.  
  21.    MAILFIX is copyrighted 1991-1994 by Makai Software, all rights reserved.
  22.    We are releasing it with source code, for those who would like to see how
  23.    it operates.  You may distribute it freely, provided that no modifications
  24.    have been made.  You are free to modify the code for YOUR OWN USE in
  25.    whatever manner you wish.  We are sure that the current code is far from
  26.    optimal, but it does seem to work pretty well, nonetheless.
  27.  
  28.    MAILFIX is not "SHAREWARE", rather it is distributed freely with source
  29.    code for other RBBS-PC sysops, as a contribution to the RBBS-PC community.
  30.    See the top of the source code file MAILFIX.BAS for additional licensing
  31.    information.
  32.  
  33.    CONTACTING THE AUTHORS:
  34.    -----------------------
  35.    Due to the transitory nature of many bulletin boards, and the fact that
  36.    you may be reading these instructions a long time after they are written,
  37.    it is probably best not to list bulletin boards where we may be reached.
  38.    Inevitably, whichever board we cite will immediately go out of business,
  39.    and the phone number will be reassigned to somebody who does not care to
  40.    be awakened by the phone ringing in the middle of the night when we modem
  41.    junkies place most of our long distance calls.
  42.  
  43.    The authors, however, CAN be found on the "RBBS-PC" conferences carried by
  44.    Fido and RIME.  New releases are always announced in these conferences,
  45.    and we occasionally post lists of the currently active distribution sites
  46.    there.  If you wish to contact us via these conferences, address messages
  47.    to Doug Wilson or Chip Morrow.
  48.  
  49.    Current Makai Software releases are always sent to Compuserve within a few
  50.    days of release, in the IBMBBS forum (GO IBMBBS).  The doors themselves
  51.    may be found in library 3, while the individually-distributed utilities
  52.    (MNET, MAILFIX, etc.) may be found in library 2.  While you're on
  53.    Compuserve, you can reach one of the authors, Chip Morrow, there
  54.    (72677,502).
  55.  
  56.    Chip Morrow is also available via Prodigy and Internet, if either of those
  57.    are more convenient:
  58.  
  59.                         Prodigy:  GVHM95A
  60.                        Internet:  72677.502@compuserve.com
  61.  
  62.    And if all else fails, there's always good ol' U.S. Mail:
  63.  
  64.                        Makai Software
  65.                        870 Golden Drive
  66.                        Newark, OH 43055
  67.    ------------------------------------------------------------------------
  68.  
  69.    LIMITATIONS:
  70.    ------------
  71.  
  72.    MAILFIX can handle, by default,  RBBS message bases which contain up to
  73.    1000 messages.  When it hits message 1001, it will exit with an error.
  74.    You can increase MAILFIX's internal buffer by specifying /Snnnn on the
  75.    command line, where "nnnn" is the maximum number of messages that MAILFIX
  76.    should expect.  So, if you'd like MAILFIX to be able to handle a message
  77.    base containing as many as 3,000 messages, your command line would
  78.    include:
  79.  
  80.        /S3000
  81.  
  82.    The program would then not error out until it hits the 3,001st message in
  83.    that area.  With the /S switch, MAILFIX is compatible with RBBS mod
  84.    packages which allow far greater than stock RBBS 17.4's limit of 999
  85.    messages per conference.
  86.  
  87. |  Prior to this release, exceptionally long messages (about 4k or longer)
  88. |  sometimes caused MAILFIX to trash messages following the long message, by
  89. |  not starting them at the 128-byte record boundaries.  This seemed to
  90. |  happen mostly when when renumbering the base.  This bug has been
  91. |  corrected with release 4.31 <he says with fingers tightly crossed, making
  92. |  it very hard to type...>
  93.  
  94.    Aside from the above, MAILFIX has taken about anything we have thrown at
  95.    it, as long as the file contains consistent 128-byte records.  If
  96.    something should insert or lose characters such that the 128-byte record
  97.    length is not preserved, MAILFIX will not be able to process the file.
  98.  
  99.    ------------------------------------------------------------------------
  100.  
  101.    USAGE:
  102.    -----
  103.  
  104.    MAILFIX [options] D:\PATH\MESSAGE.FIL
  105.  
  106.    Available options (must be separated by a space):
  107.  
  108.        /D - Use DOS screen writes instead of direct.  Slows the program
  109.             down a tad, but allows for DOS redirection of output.
  110.  
  111.        /F - Informs MAILFIX that this is a fixed-length message base.  If
  112.             "/F" is not specified, MAILFIX assumes the message base to be
  113.             configured as 'elastic'.
  114.  
  115.        /Kn - (where "n" is the number of messages to keep.): Tells MAILFIX
  116.             to trim down the physical size of the message base, keeping the
  117.             last "n" active messages.  This is useful for things like an
  118.             echo area that grows almost out of control daily. If you want
  119.             to keep 50 messages, your switch would be "/K50".
  120.  
  121.             This switch may not be used in conjunction with "/V"!
  122.  
  123.             Use of this option will OVERWRITE your original message file!
  124.  
  125.        /N - Tells MAILFIX to renumber the message base, starting at message
  126.             number 1.  If used with the /K option, the retained messages
  127.             will be renumbered starting with 1.
  128.  
  129.             Use of this option will OVERWRITE your original message file!
  130.  
  131. |           After renumbering the base, MAILFIX will reset the user's
  132. |           message pointers to reflect the renumbering.  A default user
  133. |           filename in the form xxxxxU.DEF will be derived from the message
  134. |           filename specified on the command line, and in the same
  135. |           directory as the message file.  To specify a different user
  136. |           filename, you may may immediately follow the /N with the
  137. |           drive:\path\filename of the user file for this message base.
  138.             There can be no spaces between the /N and the beginning of the
  139.             filename.  Your original user file will be updated in place, so
  140.             if you want a backup of your unaltered user file, you must make
  141.             one first.
  142.  
  143. |           If MAILFIX cannot find the default or specified user file, the
  144. |           message base will not be renumbered, although other operations
  145. |           will continue, as specified on the command line.
  146.  
  147.        /O - Informs MAILFIX that the sysop uses OverMail on this message
  148.             base.  OverMail formats the time field in the message header
  149.             with a semicolon instead of a colon, which CONFIG's option #185
  150.             (repair messages) chokes on.
  151.  
  152.        /P - Tells MAILFIX to purge active personal messages which have been
  153.             received by the addressee.
  154.  
  155.        /R - Informs MAILFIX that the sysop uses RBBSMail or MsgToss on this
  156.             message base.  Both of these mail processors format the time
  157.             field in the message header with a period instead of a colon,
  158.             which CONFIG's option #185 (repair messages) chokes on.
  159.  
  160.       /Sn - (where "n" is the max number of messages that could be contained
  161.             in this message base).  The stock RBBS-PC maximum is 999, and the
  162.             default here is 1000 if /S is not specified.  If you are running
  163.             a modified copy of RBBS-PC (one that can handle more than 999
  164.             msgs per message file), then you will need to use this switch to
  165.             increase MAILFIX's internal buffer.
  166.  
  167.        /V - Only View the integrity of the message file.  Do not perform
  168.             the actual repair work, and do not create an output file.
  169.  
  170. |    /Wx: - Define a work drive for MAILFIX to use when creating temporary
  171. |           work files.  If the specified work drive does not have enough
  172. |           room, the directory containing the message file will be used
  173. |           instead.
  174.  
  175.        D:\PATH\MESSAGE.FIL is the name of the messages file to purge/repair.
  176.  
  177.        Unless the /V option is used, MAILFIX will create an output file
  178.        with the same name and the extension '.FIX'.  Above example would
  179. |      create D:\PATH\MESSAGE.FIX.  If a work drive is specified which has
  180. |      enough free space, MESSAGE.FIX would be created in the work drive
  181. |      instead.
  182.  
  183.        If the /Kn or /N switches are used, MAILFIX will make a second pass
  184.        on your message base, using the *.FIX file for input, and the
  185.        original file name for output.  When finished your original message
  186.        file will have been replaced by MAILFIX's work, and the *.FIX file
  187.        will be deleted.
  188.  
  189.    EXAMPLES:
  190.    --------
  191.  
  192.    Unless you use the "/Kn" or "/N" command line options, MAILFIX will not
  193.    overwrite (or modify in any way) your original message file.  If you
  194.    want to replace your old message file with the one that MAILFIX creates,
  195.    your best bet is to run MAILFIX from a batch file, like so:
  196.  
  197.        IF EXIST C:\RBBS\MAINM.FIX DEL C:\RBBS\MAINM.FIX
  198.        MAILFIX C:\RBBS\MAINM.DEF
  199.        IF EXIST C:\RBBS\MAINM.FIX DEL C:\RBBS\MAINM.DEF
  200.        IF EXIST C:\RBBS\MAINM.FIX REN C:\RBBS\MAINM.FIX C:\RBBS\MAINM.DEF
  201.  
  202.        On the other hand, if you have an echo area named 4SALE that's
  203.        scanned by RBBSMail, and you want to keep it purged down to 100
  204.        messages, your command line would be:
  205.  
  206.           MAILFIX /R /K100 C:\RBBS\4SALEM.DEF
  207.  
  208.        If you want to also renumber the message base, and to update
  209.        the pointers in your user file for this base:
  210.  
  211.           MAILFIX /R /K100 /N C:\RBBS\4SALEM.DEF
  212.  
  213.        If you wanted to do the same thing with a message base that's
  214.        been scanned by OverMail:
  215.  
  216.           MAILFIX /O /K100 /N C:\RBBS\4SALEM.DEF
  217.  
  218. |      If you wanted to do the same thing but use ramdrive e: as a work
  219. |      drive:
  220.  
  221. |         MAILFIX /O /K100 /N /WE: C:\RBBS\4SALEM.DEF
  222.  
  223. |      If you have a conference whose files do not follow the ???????M.DEF
  224. |      and ???????U.DEF naming convention for the message and user files,
  225. |      you'll need to pass the full user filename when using the /N option:
  226.  
  227. |         MAILFIX /O /K100 /NC:\RBBS\USERS C:\RBBS\MESSAGES
  228.  
  229.        These last five examples would replace your original message base
  230.        file with the fixed/purged/pruned message base.
  231.  
  232.  
  233.    Run MAILFIX without a command line to get a help screen.
  234.  
  235.    ------------------------------------------------------------------------
  236.  
  237.    TECHIE STUFF FOR THOSE WHO CARE:
  238.    -------------------------------
  239.  
  240.    If you run a mail system that utilizes RBBSMail, MsgToss, or OverMail
  241.    for echo mail processing, you're likely to have run across the fact that
  242.    the repair utility out of CONFIG (option #185) no longer works for you.
  243.    This is due to the fact that these mail processors place either a period
  244.    or a semicolon in the time field of the message header on every message
  245.    that they process.
  246.  
  247.    This just happens to be one of CONFIG's five "key fields" that it looks
  248.    at to determine whether or not the message is corrupt.
  249.  
  250.    These key fields are:
  251.  
  252.          Description                                  Should be
  253.          -------------------------------------------  ---------
  254.          The "killed" flag,                           Ascii 225 or 226 "ß,Γ"
  255.          the first separator in the 'time' field,     ":"
  256.          the second separator in the 'time' field,    ":", ".", or ";"
  257.          the first separator in the 'date' field,     "-"
  258.          and the last separator in the 'date' field.  "-"
  259.  
  260.    Therefore, this string of five characters is very important, and is what
  261.    will be displayed to you if the message needs repaired, and you specify 
  262.    the "/v" option on MAILFIX's command line.  If you don't specify "/v" on
  263.    the command line, MAILFIX will do its best to fix the message, and
  264.    report "<fixed>".
  265.  
  266.    If you use a mail processor on your RBBS-PC message bases OTHER than
  267.    RBBSMail, MsgToss, or OverMail, and said mail processor *DOESN'T* use
  268.    a period or semicolon as its 'mark' in the second separator in the TIME
  269.    field, we'd sure like to hear about it so that we can attempt to make
  270.    MAILFIX compatible with your system.
  271.  
  272.    WHEN, AND HOW MAILFIX FIXES A MESSAGE:
  273.    -------------------------------------
  274.  
  275.    To determine whether or not a message is valid, MAILFIX looks at the
  276.    following in the message header:
  277.  
  278.      Message number             - Should never evaluate to zero.
  279.      Killed flag                - Should always be ASCII 225 or 226.
  280.      Number of 128-byte records - Should never evaluate to less than 1.
  281.  
  282.    If the message header passes these three tests, MAILFIX assumes it has
  283.    a valid message on its hands, and moves on to do one of three things:
  284.  
  285.      - Copy it (if it isn't marked as killed, and doesn't need fixed).
  286.  
  287.          MAILFIX will step through the message's records and write them to
  288.          the output file.
  289.  
  290.      - Fix it (if it isn't marked as killed).
  291.  
  292.          If, during all of its checks, MAILFIX finds that it has a valid
  293.          message on its hands, yet the five key characters mentioned above
  294.          DON'T MATCH what they're supposed to, the message header is
  295.          adjusted as follows:
  296.  
  297.            * Sets the "killed" flag to indicate that this is an active
  298.              message (Ascii 225) "ß".
  299.  
  300.            * Sets the TIME separators to:
  301.  
  302.                     :: - RBBS-PC  (un-scanned by RBBSMail/OverMail)
  303.                     :. - RBBSMail and MsgToss
  304.                     :; - OverMail
  305.  
  306.              You must have specified "/R" or "/O" on the command line
  307.              for the RBBSMail/OverMail checks to take place.
  308.  
  309.              If "/R" or "/O" is specified, MAILFIX is smart enough to
  310.              discover whether or not the message has been scanned by
  311.              either one of these mail processors yet, and will not mark
  312.              an un-scanned message with the special "." or ";" separator.
  313.  
  314.            * Sets both DATE separators to "-".
  315.  
  316.      - Purge it (if it's marked as killed).
  317.  
  318.          MAILFIX will skip the entire message (and its records) if the
  319.          message is marked as killed (ASCII 226) "Γ".
  320.  
  321.    If the message didn't pass the tests, MAILFIX assumes that this is not a
  322.    message header, reports to you as such, purges the offending record, and
  323.    moves on to the next record until it finds the next valid header.
  324.  
  325.    ------------------------------------------------------------------------
  326.  
  327.    *=- ABOUT MAILFIX and MESSAGE BASES with CARBON COPIES -=*
  328.        --------------------------------------------------
  329.  
  330.    MAILFIX *DOES* work with message bases that have been configured with
  331.    the new "carbon copy" feature of RBBS-PC v17.4.  MAILFIX does not go
  332.    through any special gyrations to look for multiple-recipient messages,
  333.    but it will not trash your message base, either.  When renumbering, it
  334.    will reset the message number in all "carbon copies".
  335.  
  336.    In the 3+ years of Mail Manager / MAILFIX's life thus far, we have
  337.    found that there are MANY utilities floating around out there that do
  338.    not strictly adhere to the RBBS-PC message format as-defined in the
  339.    documentation for our favorite BBS software.  MAILFIX was specifically
  340.    written to be as generic as possible, and to work with the widest
  341.    possible variety of RBBS-PC message bases.
  342.  
  343.    The only incompatibility with RBBS-PC v17.4 message bases is the
  344.    following scenario:
  345.  
  346.        The message base is configured with "carbon-copy" turned on, and
  347.  
  348.        1) - The very first header of the "carbon-copy" message is bad, or
  349.        2) - The very first header of the "carbon-copy" message is marked
  350.             as "killed".
  351.  
  352.        In the first case, MAILFIX will skip the "bad" message, and maybe
  353.        the one following it as well, until it can get its bearings and
  354.        find the next "good" message header.
  355.  
  356.        In the second case, MAILFIX will purge the entire message, even
  357.        if some of the other carbon copies have not been marked as killed.
  358.