home *** CD-ROM | disk | FTP | other *** search
/ synchro.net / synchro.net.tar / synchro.net / modem.madness / SMMNETML / SCAIL203.ZIP / SCAIL.DOC < prev    next >
Encoding:
Text File  |  1992-03-19  |  22.2 KB  |  502 lines

  1. /*************************************************************/
  2. /* SCAIL 2.03Ω     Personal Echomail Scanner             */
  3. /* Written by Alex Brodsky and Vulkan Technologies Inc.      */
  4. /* Copyright (c) 1991. All rights reserved.                  */
  5. /*************************************************************/
  6.  
  7. Table of Contents
  8.  
  9.      Legal Stuff....................................Page 2
  10.      Purpose and General Overview...................Page 3
  11.      Operations.....................................Page 4
  12.      Command Line Parameters........................Page 5
  13.           <first name>..............................Page 5
  14.           <last name>...............................Page 5
  15.       </n($):path>..............................Page 5,6
  16.       </f:path>.................................Paeg 6
  17.      Examples.......................................Page 7,8
  18.      Example Batch Files............................Page 9
  19.      Error Messages.................................Page 10
  20.      Bug Reports, Contacting the Author,
  21.         Famous Last Words.......................Page 11
  22.  
  23. 1.0 Legal Stuff                        PAGE 2
  24.      -----------
  25.      This program is freeware. You have the right to use this software 
  26.      as much as you want on as many machines as you want, whenever you 
  27.      want.  You may distribute this software freely in its original 
  28.      form.  You may modify your personal copy of SCAIL and release it 
  29.      to public use under the following conditions: 
  30.  
  31.           1.   You must send the author the complete source of all 
  32.                the  modifications you have made.
  33.           2.   You must retain the original copyright notice and 
  34.                add your own.
  35.           3.   You must clearly specify in your documentation the 
  36.                date(s) and type(s) of the modification(s) you have
  37.                made to the program.
  38.           4.   You must include a copy of this license with your
  39.                release.
  40.           5.   You MUST release it as freeware.  You may NOT release
  41.                it into the shareware or commercial market.  
  42.  
  43.      This program comes with no warranty of any kind.  It has been 
  44.      tested on several machines and works with no problems.  However, 
  45.      the author is not responsible for any damage caused by this 
  46.      software. 
  47.  
  48.      You may not charge more than three Canadian dollars for 
  49.      transferal or copying services.  This program may be included in 
  50.      any non-commercial package as long as the three dollar rule is 
  51.      not violated. 
  52.  
  53.      Commercial users may use this program in their organization's 
  54.      internal operations, but may not release this software as part of 
  55.      their commercial packages.  If a commercial organization wishes 
  56.      to sell this software as part of their package they must contact 
  57.      the author and purchase a license to do so. 
  58.  
  59.      Any other software or companies mentioned in this document are 
  60.      trademarks of those respective companies and are used only to 
  61.      facilitate the explanation of this software. 
  62.  
  63.      This concludes the legal part of this documentation. 
  64.  
  65.      For a donation of ten dollars or more, you will receive the 
  66.      source code to this program. 
  67.  
  68.      If you do use this program, I would really apreciate you sending me
  69.      a quick netmail message saying so.  Just to let me know that my
  70.      efforts have not gone to total waste. <grin>
  71.  
  72. 2.0 Purpose and General Overview                PAGE 3
  73.      ----------------------------
  74. 2.1  General Assumptions
  75.      This document assumes that the user is familiar with the software 
  76.      and principles of point operation.  The user should have a basic 
  77.      knowledge of batch files and should be well versed in DOS.  It is 
  78.      assumed that the user knows the basics of FidoNet operation and 
  79.      is operating a point (or will be in the near future). 
  80.  
  81. 2.2  System Requirements
  82.      The requirements for this software are a basic point set-up, 
  83.      using the *.MSG (FTSC) or SQUISH(tm) format for message storage,
  84.      and DOS 2.0 or greater. However, DOS 3.3 or greater is preferable.
  85.  
  86.      An AREAS.BBS file is required. If you do not already use 
  87.      AREAS.BBS with your mail processor, you will need to create one.  
  88.      Please check the examples section of this manual. 
  89.  
  90. 2.2  What is SCAIL?
  91.      SCAIL is a personal echomail scanner for point systems. It scans 
  92.      through your newly received mail and tells you whether any 
  93.      echomail addressed to you has arrived.  This is especially useful 
  94.      if you read high-traffic echoes, since it saves you the trouble of 
  95.      manually scanning them. 
  96.  
  97. 2.3  General Operation
  98.      SCAIL examines AREAS.BBS to determine which message areas you 
  99.      have, and then scans each message directory in the order they are 
  100.      listed.  Only the header of each message is read.  If the ToName 
  101.      of a message matches your name, SCAIL displays a description of 
  102.      the message on the screen and (optionally) records it in a 
  103.      message addressed to you.    SCAIL can either save this message in
  104.      FTSC or SQUISH format.  If you use a log file when tossing mail,
  105.      SCAIL can use this file to scan only the echos that were tossed
  106.      increasing its speed of operation.
  107.  
  108.      For (FTSC) *.MSG:
  109.      SCAIL uses the LASTREAD file in each message directory to figure
  110.      out where the new messages start (to avoid rescanning old mail). 
  111.      If SCAIL cannot find LASTREAD it will start scanning at 1.MSG.
  112.  
  113.      For SQUISH:
  114.      For SCAIL uses the *.SQL file to determine the last read message.
  115.      If SCAIL does not find the *.SQL file, it will use an internal
  116.      Last-Read marker, however in the process some old messages might be
  117.      rescanned.  Therefore it is recomended that you use the *.SQL file.
  118.      
  119.      When saving the result message SCAIL assumes that the path is
  120.      correct.  If it does not find the message base, be it SQUISH or
  121.      FTSC format, SCAIL will create the message base.
  122.  
  123.      If the echo-toss log option is used, and SCAIL does not find the
  124.      echo-toss log, it will assume that no messages have been tossed and
  125.      therefore none need to be scanned.
  126.  
  127. 3.0 Operations                         PAGE 4
  128.      ----------
  129. 3.1  Operating Procedures
  130.      SCAIL will be most useful if it is run right after the mail is 
  131.      tossed.  This ensures that all new messages are scanned.  It is 
  132.      best to call SCAIL from the batch file which tosses the mail. 
  133.      (See examples section for a TOSS.BAT file.)  SCAIL runs only as 
  134.      fast as your disk drive.  To ensure compatibility with most IBM 
  135.      (tm) compatible systems SCAIL uses DOS's file handles.  It does 
  136.      not do low level FAT reads.  Although this reduces its speed 
  137.      slightly, it ensures a higher degree of reliability and 
  138.      compatibility with other systems. 
  139.  
  140. 3.2  Description of Operational Requirements
  141.      As mentioned above, SCAIL requires AREAS.BBS to operate.  If it 
  142.      does not find the file in the directory from which it is run, it 
  143.      will issue an error message and end. All SQUISH message bases must
  144.      have a '$' sign preceed the path to the message base, otherwise
  145.      SCAIL and most utilities that are used for SQUISH message bases and
  146.      use the AREAS.BBS will not know the difference between an FTSC
  147.      *.MSG and SQUISH message bases. If your mailer does not use
  148.      AREAS.BBS, you will have to create one and put it in the SCAIL 
  149.      directory. (See the examples section for a sample AREAS.BBS.) 
  150.  
  151.      SCAIL works only with the FTSC *.MSG and SQUISH format.  It
  152.      assumes that the FTSC message headers look like those defined in
  153.      the FTS-0001 document and the SQUISH messages headers as defined in
  154.      the SQUISH API released by Scott Dudley.  If the SQUISH format is
  155.      modified in the future, SCAIL is designed to adapt, a recompiled
  156.      version of SCAIL should be released soon after any modifications to
  157.      the existing SQUISH headers.  Although no damage will result if SCAIL
  158.      is run with other message formats, the results are unpredictable, and
  159.      could range from a simple program termination with an error message
  160.      to an incorrect assessment of what the message contains.
  161.  
  162. 3.3  Recommendations     
  163.      Using a disk cache to increase the speed of SCAIL is recommended 
  164.      and is theoretically quite safe.  This is due to the fact that 
  165.      SCAIL only reads the message files and does no writes to its 
  166.      reply message file until it has completed scanning.
  167.  
  168. 3.4  Warning
  169.      At this time SCAIL is not "share" friendly, if you are running in a
  170.      multitasking environment make sure that when SCAIL is run, the
  171.      files it requires are NOT being used by  another process.
  172.  
  173.  
  174. 4.0 Command Line Parameters                    PAGE 5
  175.      -----------------------
  176.      SCAIL must be run with command line parameters.  The first 2
  177.      command line parameters must be in the correct order, the next 2
  178.      parameters are interchangable and can come in any order.
  179.  
  180.      The first 2 command line parameters must be given in the order shown
  181.      below. If parameters are not used in the required order then the 
  182.      results are unpredictable but will usually result in an error 
  183.      message being displayed and program termination.  The order of 
  184.      the parameters is: 
  185.  
  186.      SCAIL <first name> <last name> [/n($):result msg path] [/f:echotoss log]
  187.  
  188.      < >  - Necessary command line parameter
  189.      [ ]  - Optional  command line parameter
  190.      ( )  - Internal Switch associated with that parameter
  191.  
  192. 4.1  <first name>
  193.      The <first name> is a required parameter.  It does not matter 
  194.      whether it is entered in CAPS, lower case, or a mIx.   
  195.  
  196. 4.2  <last name>
  197.      The <last name> is also a required parameter.  It does not matter 
  198.      whether the name is entered in CAPS, lower case, or a mIx.   This 
  199.      is the most important part of your name; SCAIL assumes that the 
  200.      sender of a message might not have entered your full name 
  201.      correctly, so that if after checking the full name string the 
  202.      names don't match, SCAIL will look for your name inside the string
  203.      in the hope that the sender got that part of the message right.
  204.  
  205. 4.3 The next 2 parameters can come in any order you like.  e.g.:
  206.  
  207.       SCAIL firstname lastname /n:path /f:path
  208.  
  209.      is no different from:
  210.  
  211.       SCAIL firstname lastname /f:path /n:path
  212.  
  213. 4.4  This command line parameter has 2 different states.  The first
  214.      state, /n:path, tells SCAIL to store the result message in an FTSC
  215.      message based system.  The second state, /n$:path, tells SCAIL to
  216.      store the result message in a SQUISH format message base.    NOTE:
  217.      if SCAIL does not find the message base it will create it.
  218.  
  219. 4.4A </n:path>
  220.      This optional parameter tells SCAIL to save the results of its 
  221.      mail scan in an FTSC message, and specifies the directory to put it
  222.      in.  (The netmail directory is recommended.)
  223.      
  224.      The switch is used like this:
  225.  
  226.           SCAIL <first name> <last name> </n:path>
  227.  
  228.      e.g. SCAIL Alex Brodsky /n:C:\POINT\MSG\NET
  229.  
  230.      As with the first two parameters the case of the text does not 
  231.      matter.  The directory specified must be valid, or SCAIL will 
  232.      abort with an error.  SCAIL prints the results of its scan only 
  233.      when it has found messages addressed to you;  otherwise no 
  234.      message is written.  
  235.  
  236. 4.0 Command Line Parameters Continued                PAGE 6
  237.      ---------------------------------
  238. 4.4B </n$:path>
  239.      This optional parameter tells SCAIL to save the results of its 
  240.      mail scan in a SQUISH message, and specifies the message base file
  241.      to put it in.  (The netmail message base file is recommended.)
  242.      NOTE: You myst not specify the extention, just the path and name of
  243.      the message base.
  244.  
  245.      The switch is used like this:
  246.  
  247.       SCAIL <first name> <last name> </n$:path>
  248.  
  249.      e.g. SCAIL Alex Brodsky /n$:C:\POINT\MSG\NET
  250.                            /|\
  251.        In the MSG directory there are the    |
  252.        NET.SQD, NET.SQI and NET.SQL files --|
  253.  
  254.      As with the first two parameters the case of the text does not 
  255.      matter.  The message basespecified must be valid, or SCAIL will
  256.      create it, itself.  SCAIL prints the results of its scan only
  257.      when it has found messages addressed to you;  otherwise no 
  258.      message is written.  
  259.  
  260. 4.5  /f:path
  261.      This optional parameter must come after the first two parameters,
  262.      (First and Last Names).  It does not matter after that in which
  263.      order it follows, e.g. it can come before or after the /n($):
  264.      parameter.  This parameter tells SCAIL to use the echotoss log in
  265.      performing its message scan.  Most mailers, have an option to store
  266.      the tags of the echos they have tossed in a file, usually called
  267.      ECHOTOSS.LOG.  This file is a simple ascii file with the echo tags
  268.      in upper case letters.  by using this command line parameters you
  269.      save SCAIL the work of checking all echos for mail, hence saving
  270.      time and improving efficiency.
  271.      The command line parm is used like this:
  272.  
  273.       SCAIL <first name> <last name> </f:path>
  274.  
  275.      e.g. SCAIL Alex Brodsky /f:c:\point\echotoss.log
  276.  
  277.      The path must be to a valid echo toss file, otherwise SCAIL simply
  278.      decides that no messages have been tossed and hence does nothing.
  279.      Please see the examples section for different ways of implementing
  280.      SCAIL.
  281.  
  282. 4.6  General
  283.      It is strongly recommended that SCAIL be run from a batch file. 
  284.      Because it takes long parameters it is easy to make a mistake 
  285.      while entering them at the command prompt.  A batch file will 
  286.      ensure that SCAIL is run with the same parameters every time it 
  287.      is run. 
  288.  
  289. 5.0 Examples                            PAGE 7
  290.      --------
  291. 5.1  Modes of operation of SCAIL
  292.  
  293.           SCAIL <first name> <last name>
  294.  
  295.      e.g. SCAIL Alex Brodsky
  296.  
  297.      SCAIL searches all the directories listed in AREAS.BBS for any 
  298.      messages addressed to the user.  In this example it looks for all 
  299.      messages addressed to Alex Brodsky. 
  300.  
  301.           SCAIL <first name> <last name> </n:path>
  302.  
  303.      e.g. SCAIL Alex Brodsky /n:C:\POINT\MSG\NET
  304.  
  305.      SCAIL searches through all directories listed in AREAS.BBS for 
  306.      any messages addressed to the user.  In this example it looks for 
  307.      all messages addressed to Alex Brodsky.  If it finds any messages 
  308.      for him, it will list them in the next available message file in 
  309.      the directory specified (in this case in Alex Brodsky's netmail 
  310.      directory).
  311.  
  312.       SCAIL <first name> <last name> </n$:path>
  313.  
  314.      e.g. SCAIL Alex Brodsky /n$:C:\POINT\MSG\NET
  315.  
  316.      SCAIL does the same thing as above except it saves the result
  317.      message in SQUISH format.
  318.  
  319.       SCAIL <first name> <last name> </f:path>
  320.  
  321.      e.g. SCAIL Alex Brodsky /f:C:\POINT\ECHOTOSS.LOG
  322.  
  323.      SCAIL scans only the message bases that have been tossed and hence
  324.      listed in the ECHOTOSS.LOG file and displays the results on the screen.
  325.  
  326.       SCAIL <first name> <last name> </n:path> </f:path>
  327.                   or
  328.       SCAIL <first name> <last name> </f:path> </n:path>
  329.  
  330.      e.g. SCAIL Alex Brodsky /n:C:\POINT\MSG\NET /f:C:\POINT\ECHOTOSS.LOG
  331.                   or
  332.      e.g. SCAIL Alex Brodsky /f:C:\POINT\ECHOTOSS.LOG /n:C:\POINT\MSG\NET
  333.  
  334.      SCAIL scans all the echos that have been tossed and hence listed in
  335.      the ECHOTOSS.LOG file and saves the results to an FTSC *.MSG
  336.      message file. As you can see the order of the last 2 parameters is
  337.      inconsequential.
  338.  
  339.       SCAIL <first name> <last name> </n$:path> </f:path>
  340.                   or
  341.       SCAIL <first name> <last name> </f:path> </n$:path>
  342.  
  343.      e.g. SCAIL Alex Brodsky /n$:C:\POINT\MSG\NET /f:C:\POINT\ECHOTOSS.LOG
  344.                   or
  345.      e.g. SCAIL Alex Brodsky /f:C:\POINT\ECHOTOSS.LOG /n$:C:\POINT\MSG\NET
  346.  
  347.      SCAIL scans all the echos that have been tossed and hence listed in
  348.      the ECHOTOSS.LOG file and saves the results to a SQUISH message
  349.      base message file. As you can see the order of the last 2 parameters
  350.      is inconsequential.
  351.  
  352. 5.0 Examples Continued                     PAGE 8
  353.      ------------------
  354.  
  355. 5.2  AREAS.BBS
  356.  
  357.      The Dinosaur Pen ! Alex Brodsky
  358.      $c:\point\msg\c_echo      C_ECHO     247/205
  359.      c:\point\msg\80xxx        80XXX     247/205
  360.      c:\point\msg\dr_debug     DR_DEBUG  247/205
  361.      $c:\point\msg\tech        TECH     247/205
  362.  
  363.      The first line in AREAS.BBS is your system's name, followed by an 
  364.      exclamation mark and then by your name.  Each subsequent line 
  365.      describes a single echomail area.  The message directory is 
  366.      listed first, followed by the echo tag (in CAPS) and the address 
  367.      of the node which sends you the echo.  Other items may follow, 
  368.      but SCAIL uses only the directory and tag information. SCAIL uses 
  369.      the tag to identify the areas in which it has found messages to 
  370.      you.  Notice that if the area is in SQUISH format, then a '$'
  371.      preceeds the path to the message base.  Therefore in this example,
  372.      the C_ECHO and TECH are both in SQUISH format, while the 80XXX and
  373.      the DR_DEBUG echo are in the stone-aged FTSC *.MSG format.
  374.  
  375. 5.3  Format of a result message
  376.  
  377.      AREA->DPS
  378.      MSG #     From:           Subject:
  379.      35        John Giesbrecht Next DPS meeting
  380.  
  381.      This format is repeated for every message area.
  382.  
  383. 6.0 Batch File Examples                    PAGE 9
  384.      -------------------
  385. 6.1  TOSS.BAT
  386.  
  387.      @echo off
  388.      echo Tossing  . . .
  389.      squish in link -fc:\point\echotoss.log
  390.      scail alex brodsky /n:c:\point\msg\net /f:c:\point\echotoss.log
  391.      if exist echotoss.log del echotoss.log
  392.  
  393.      This batch file is run whenever the system receives mail.  SQUISH 
  394.      (by Scott J. Dudley) is the mail processor I use, but any mail 
  395.      tosser will do. 
  396.  
  397.      As you can see SCAIL is run right after the mail is tossed. This 
  398.      allows for the most efficient mail scan possible, and notifies 
  399.      you immediately if you have received any mail. 
  400.  
  401.      As the author of this software I strongly recommend that you
  402.      run it right after the mail tossing process.
  403.  
  404. 7.0 Error Messages Glossary                    PAGE 10
  405.      -----------------------
  406. 7.1  Memory allocation Error:  This error is fatal, that is scail will
  407.      imediately terminate its operations.  This is usually caused by
  408.      insufficient memory to run SCAIL.    To correct this problem simply
  409.      flush some of your TSRs from memory to allow SCAIL more memory.
  410.  
  411. 7.2  File Open Error:  If SCAIL does not find the files it requires it
  412.      has 2 options.  If it cannot find a file during it's scan of one of
  413.      the message areas, it will stop scanning the message area and
  414.      proceed to scan the next one, if SCAIl cannot open a file during
  415.      it's initialization or termination phases, it will produce a fatal
  416.      error and immediately terminate.  The solution to this problem is
  417.      to make sure that all required file are available.  In some cases
  418.      when a new squish area has been added and has had no message flow,
  419.      SCAIl might report that it could not open certain files due to the
  420.      fact that they do not yet exist.  Also make sure that all the paths
  421.      in AREAS.BBS and command line parameters are correct.  Finally,
  422.      this version of SCAIL is NOT share friendly, and therefore running
  423.      it in a "share" environment will cause it to terminate if it
  424.      accesses a file, which has been already accessed.
  425.  
  426. 7.3  File Read Error:  If SCAIL encounters a problems during the reading
  427.      of a file, e.g. a bad disk sector, it will return a read error,
  428.      just like in the case of the File Open Error, SCAIL will either
  429.      exit with a fatal termination error if the error occured during the
  430.      initialization or termination phases.  Or SCAIl will proceed to
  431.      scan the next message base if the error occured during one of its
  432.      scanning phases.
  433.  
  434. 7.4  File Seek Error:  Same as File Read Error except the error
  435.      occured on a file seek action instead of a file read action, same
  436.      criteria apply.
  437.  
  438. 7.5  File Write Error: Same as File Read Error except the error
  439.      occured on a file write action instead of a file read action, same
  440.      criteria apply.
  441.  
  442. 8.0 Bug reports, Contacting the Author, and Famous Last Words    PAGE 11
  443.      ---------------------------------------------------------
  444. 8.1  Bug reports
  445.      If you find any bugs, please report them to me as soon as 
  446.      possible.  I have done my best to ensure that SCAIL is as bug-
  447.      free as possible.  However no program is perfect, so if you do 
  448.      find any bugs please let me know. 
  449.  
  450.      If you are getting an abnormal termination (which you shouldnt),
  451.      and you don't know why, send me a netmail with the termination code
  452.      and I'll try to help you.
  453.  
  454. 8.2  Contacting me
  455.      You may contact me at the following BBSes.
  456.  
  457.      DPSHQ     (416) 374 6188  (1:247/205)
  458.      DOB       (416) 937 1907  (1:247/101)
  459.  
  460.      You may send me netmail at 1:247/191
  461.  
  462.      You may also write to me at:
  463.  
  464.      38 Elma St. #11,
  465.      St. Catharines, ON,
  466.      Canada, L2N 6Z3.
  467.  
  468. 8.3  Author's Note
  469.      SCAIL was written in C and to learn how the squish base worked, I
  470.      wrote all the squish access code myself instead of using Scott
  471.      Dudley's API.  Since I now know how the squish base works, the next
  472.      version of SCAIL will use the MSGAPI, to save me, in the future a
  473.      lot of work.
  474.  
  475. 9.0  Famous Last Words
  476.      -----------------
  477.      Well, this is the end of this manual.  I would like to thank
  478.      John Giesbrecht (1:247/190) who helped test SCAIL, made
  479.      recommendations, and proofread this document, and Peter 
  480.      Danevicius (1:247/205) for the information he provided on the 
  481.      workings of FidoNet.  I would also like to thank Scott Dudley,
  482.      Author of SQUISH and MAXIMUS, for putting up with my question
  483.      during the writing of this software.  I wish him the best of luck
  484.      with his next project.
  485.  
  486.      Many thanks to Don Dawson for alerting me to a couple of bugs in
  487.      SCAIL which are hopefully now fixed.  Thanks Don!
  488.  
  489.      I would like to dedicate this program to the Dead Programmers'
  490.      Society (DPS), and to all programmers out there who have been 
  491.      forced to write documentation. 
  492.  
  493.      My final dedication goes to our Net's (247) Daisy Chain link, I wish
  494.      them as much luck with it as I do our Canadian Postal system.
  495.  
  496.      And finally: It is always wise to remember if some thing is not
  497.           insured, it will break.
  498.  
  499.  
  500.  
  501.  
  502.