home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / ntmgr99p.zip / NETMGR.DOC < prev    next >
Text File  |  1994-10-22  |  28KB  |  914 lines

  1.  
  2.  ===================================================================
  3.  
  4.             NetMgr - "The Swiss Army Knife for Netmail"
  5.  
  6.         Copy, move, delete, file, change and bounce netmail..
  7.  
  8.            (c) 1992,93,94  Gerard van Essen (2:281/527)
  9.  
  10.  ===================================================================
  11.  
  12.  
  13.  !  NetMgr uses the Squish MSGAPI by Scott Dudley.
  14.  
  15.  !  Squish is a trademark of Scott J. Dudley
  16.  
  17.  !  JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  18.                        Mats Birch, Mats Wallin.
  19.                         ALL RIGHTS RESERVED.
  20.  
  21.  
  22.  ┌──────────────┬─────────────────────────────────────────────────
  23.  │ Introduction │
  24.  └──────────────┘
  25.  
  26.  NetMgr is a program that will scan the messages in one or more area(s)
  27.  (the netmail area(s)), and analyse the headers of those messages. The
  28.  messages can be stored in *.MSG, Hudson, Squish or JAM format.
  29.  
  30.  NetMgr will check if any of the headers meet the criteria specified in the
  31.  configuration file (a 'mask'), created by the user. If any of those
  32.  headers are found, NetMgr can perform several actions on that message,
  33.  like moving or copying it to another message area, deleting it, changing
  34.  it etc.
  35.  
  36.  
  37.  ┌─────────────────────────────────────┬─────────────────────────────
  38.  │ Copyright, license and disclaimer.. │
  39.  └─────────────────────────────────────┘
  40.  
  41.  *     "NetMgr" refers to the executables and documentation in the
  42.        original distribution archive. NetMgr is copyrighted material by
  43.        Gerard van Essen. It may only be used in agreement with the
  44.        conditions set out in this license agreement.
  45.  
  46.  *     You are entitled and encouraged to copy and distibute NetMgr,
  47.        provided you do not change the contents of the NetMgr archive or
  48.        the program itself, and no money or any other compensation is
  49.        asked or accepted for NetMgr (without written permission from the
  50.        author).
  51.        Distibution of modified or incomplete archives is prohibited.
  52.  
  53.  *     Although care has been taken to write and test a program that
  54.        does what this document states, the program is provided as is,
  55.        without warranty or guarantee of any kind, either expressed or
  56.        implied, as to the quality or performance of this program,
  57.        except that it will occupy disk space.
  58.  
  59.  *     The author, Gerard van Essen, will not be held liable to you or
  60.        anyone for (but not limited to) any direct, indirect, incidental
  61.        or consequential damages, including any lost profits, lost
  62.        savings which may result from the use or inability to use this
  63.        program.
  64.  
  65.        Gerard van Essen is in no way obligated to provide future
  66.        versions of, or support for this software.
  67.  
  68.        Your use of the program constitutes your agreement to this
  69.        license and disclaimer and your release of the author from any
  70.        form of liability or litigation.
  71.  
  72.  *     COMMERCIAL use of the program: you are a commercial user if you
  73.        make a profit from running NetMgr, or if you use NetMgr in a
  74.        commercial environment (ie. business, governmental organization,
  75.        association, school, foundation, or any other form of juridical
  76.        person). In case of doubt, contact the author.
  77.  
  78.  *     For NON-COMMERCIAL use, it is REQUIRED that you register the
  79.        program.
  80.        However, if you really cannot afford to register (mainly a concern
  81.        to 'eastern block' countries, the former USSR etc.), permission is
  82.        hereby granted to use an unregistered version.
  83.  
  84.        Remember, if you register, you are paying for something that you
  85.        already have! Registration does not mean you can force me to
  86.        implement new features that you like.
  87.  
  88.        Finally: I know some people that do not want to register software
  89.        that is still in the beta stages. I will repect this principle. If
  90.        you really feel this way, you can hold off registration of NetMgr
  91.        until version 1.00 is released.
  92.  
  93.  *     For COMMERCIAL use of the program, you should always register
  94.        the program. You are, however, granted an evaluation period of
  95.        30 days. After these 30 days, you must either register the
  96.        program, or stop using it. Using an unregistered version of
  97.        NetMgr in a commercial environment for more than 30 days is
  98.        prohibited!
  99.  
  100.  *     You only have to register once. Your registration will also be
  101.        valid for all future releases of NetMgr.
  102.  
  103.  *     Registration is valid for all versions of NetMgr. At this moment,
  104.        there are DOS and OS/2 versions of the program available.
  105.        Registering NetMgr entitles you to run the DOS version, the OS/2
  106.        version, or both :-)
  107.  
  108.  *     A registration is PERSONAL. It cannot be transferred to other
  109.        parties. It could, however, be used in different places (but: by
  110.        the same PERSON). Think of it as a book in this regard: you can
  111.        take the book from your home to the office (and read it there).
  112.  
  113.  *     Versions of NetMgr prior to version beta 0.97 were freeware and could
  114.        not be registered. You may continue to use THESE OLDER VERSIONS
  115.        without registration, even in a commercial environment.
  116.  
  117.  *     The author reserves the right to change this license without
  118.        prior notice, for newer versions of the program.
  119.  
  120.  
  121.  
  122.  ┌────────────────────────────────────┬─────────────────────────────
  123.  │ A 'MASK', NetMgr's driving force.. │
  124.  └────────────────────────────────────┘
  125.  
  126.  
  127.  A MASK consists of six parts:
  128.  
  129.  fromname, fromaddress, toname, toaddress, subject, attributes
  130.    (1)        (2)         (3)      (4)       (5)       (6)
  131.  
  132.  So 6 parts, seperated by a comma. In the config file you use the keyword
  133.  MASK to specify a mask:
  134.  
  135.  
  136.  MASK fromname, fromaddress, toname, toaddress, subject, attributes
  137.  
  138.  
  139.  -=-
  140.  
  141.  NAME : fromname, toname.
  142.  
  143.  
  144.  A 'name' is just a string, leading and trailing spaces found in the config
  145.  file are stripped, spaces *within* a string are allowed.
  146.  
  147.  So writing "   Gerard van Essen  " will be the same as "Gerard van Essen".
  148.  (Note that leading and trailing spaces are stripped, while the space
  149.  between "Gerard" and "van" is still there...)
  150.  
  151.  A name can start with a tilde (~). This indicates that you are not looking
  152.  for an exact match of the string, but that you are looking for a
  153.  substring. As long as the string you specify is located somewhere in the
  154.  name, it will be a match.
  155.  
  156.  So, if you specify '~essen' as a name, it will be a match if the name is
  157.  'Gerard van Essen', and also if it is 'Art van Essen' etc.
  158.  
  159.  A name can also start with an exclamation mark (!). This indicates that you
  160.  are looking for a string that does NOT match what you specify. So if you
  161.  specify '!Gerard van Essen', NetMgr will work on messages where the string
  162.  is NOT 'Gerard van Essen'.
  163.  
  164.  You can also combine the '~' and '!' tokens. The '!' MUST be always the
  165.  first token if you do that!
  166.  
  167.  For example: !~essen will look for string that do NOT contain 'essen'
  168.  anywhere in the string. In that case 'Gerard van Essen' will not be a
  169.  match, 'Art van Essen' will not be a match, but 'Kasper Kwant' will be a
  170.  match.
  171.  
  172.  
  173.  -=-
  174.  
  175.  SUBJECT:
  176.  
  177.  
  178.  A subject is just a string, exactly like a 'name'. Everything that applies
  179.  to a 'name' also applies to a 'subject'. See the paragraph above..
  180.  
  181.  
  182.  -=-
  183.  
  184.  ADDRESS: fromaddress, toaddress.
  185.  
  186.  
  187.  An address is *always* full 4D, write a '*' for any part you don't care
  188.  about:
  189.  
  190.  
  191.  60:*/*.*     -   all messages coming from zone 60
  192.  2:281/527.*  -   msg from any point from 281/527, or .0
  193.  *:500/*.*    -   all msgs from nodes/points in a net 500, any zone
  194.  2:281/527.0  -   only messages from 2:281/527.0
  195.  
  196.  Just one exception (to the "always 4D" rule): specifying just a '*' only
  197.  for the address, is allowed (strictly speaking, it is not full 4D :-), and
  198.  is the same as *:*/*.*.
  199.  
  200.  An address can also start with an exclamation mark. That indicates that you
  201.  are looking for messages where the address does NOT match what you are
  202.  specifying here.
  203.  
  204.  For example: !2:*/*.* will let NetMgr work on all addresses that are NOT
  205.  zone 2. And !2:281/527.0 will let NetMgr work on all addresses that are NOT
  206.  2:281/527.
  207.  
  208.  
  209.  
  210.  -=-
  211.  
  212.  ATTRIBUTES.
  213.  
  214.  
  215.  Attributes can be one or more of the following:
  216.  
  217.  p = private
  218.  c = crash
  219.  r = received
  220.  s = sent
  221.  a = attach
  222.  i = forward/intransit
  223.  o = orphan
  224.  k = kill
  225.  l = local
  226.  h = hold
  227.  f = file request
  228.  n = scaNned
  229.  d = Direct
  230.  u = Update request
  231.  q = return receipt reQuest
  232.  y = return receipt
  233.  m = iMmediate
  234.  t = TFS
  235.  e = KFS (erase)
  236.  z = Archive sent
  237.  
  238.  ■ Important note:
  239.  
  240.  Several of these extra attributes can only be represented in the '^AFLAGS'
  241.  kludge (that is NOT supported by Squish, but is by Frodo and several other
  242.  programs), in some message base formats (like *.MSG and Squish).
  243.  
  244.  If you do NOT want to use this FLAGS kludge (because you use Squish in a
  245.  Binkley environment), you can put the keyword 'NOFLAGS' in your config.
  246.  This gives you the ability to use 'direct' (in the peculiar way that Squish
  247.  supports it).
  248.  
  249.  You can NOT use: IMM, TFS, KFS or Archive Sent in this ('NOFLAGS') mode for
  250.  Squish and *.MSG areas!
  251.  
  252.  NetMgr will NOT write out a FLAGS kludge in this ('NOFLAGS') mode, so
  253.  rewriting a message that has these FLAGS will make these FLAGS disappear!!
  254.  
  255.  The JAM message base format supports ALL attributes without any kludges.
  256.  
  257.  
  258.  Every attribute must have a '+' or a '-' in front of it.
  259.  
  260.  A '+' means: must be present.
  261.  A '-' means: must *not* be present.
  262.  
  263.  An example:
  264.  
  265.  +l+p
  266.  
  267.  A message only matches this, if the L)ocal bit, and the P)rivate bits are
  268.  set. The other (possible) attributes are not important.
  269.  
  270.  -f+l
  271.  
  272.  A message matches this, if it is *not* a F)ile request, and the L)ocal bit
  273.  is present.
  274.  
  275.  +c+l+p-s
  276.  
  277.  A message matches this, if the C)rash bit is set, the L)ocal bit is set
  278.  and the P)rivate bit is set. Apart the that, the message must *not* be
  279.  S)ent already..
  280.  
  281.  
  282.  -=-
  283.  
  284.  Some examples of a complete 'MASK'.
  285.  -----------------------------------
  286.  
  287.  
  288.  Mask Gerard van Essen, *, *, *, *, +s
  289.  
  290.  All messages, coming from "Gerard van Essen" on any address (*), written
  291.  TO: anyone (*) on any address (*), with any subject, that are already
  292.  flagged as S)ent.
  293.  
  294.  IE: all messages written by me that have already been packed/sent.
  295.  
  296.  --
  297.  
  298.  Mask *, 2:281/527.*, uucp, 2:281/527.0, *, +l-h-p-k
  299.  
  300.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  301.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  302.  Written TO: a guy named "UUCP" on node 2:281/527.
  303.  The L)ocal bit must be set, and the H)old, P)rivate and K)ill bits must
  304.  *not* be set.
  305.  The subject doesn't matter.
  306.  
  307.  --
  308.  
  309.  Mask *, 2:281/527.*, postmaster, 2:281/527.0, *, *
  310.  
  311.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  312.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  313.  Written TO: a guy named "Postmaster" on node 2:281/527.
  314.  The subject and message attributes that are (not) present are not
  315.  important.
  316.  
  317.  --
  318.  
  319.  Mask *, *, raid, 2:281/527.0, *, *
  320.  
  321.  All messages, coming from anyone on any address, but addressed to RAID on
  322.  2:281/527. The subject & message attributes don't matter.
  323.  
  324.  --
  325.  
  326.  Mask *, *, ~essen, 2:281/527.0, ~timed, *
  327.  
  328.  All messages, addressed to a name that contains the string 'essen', on
  329.  node 2:281/527, that have the string 'timed' somewhere in the subject.
  330.  
  331.  --
  332.  
  333.  Mask ~gerard, !2:281/527.0, *, *, *, *
  334.  
  335.  All messages, coming from someone whose name contains 'gerard', but whose
  336.  address is NOT 2:281/527.
  337.  So it will be from someone with a nice name, but it won't be from me :-)
  338.  
  339.  --
  340.  
  341.  Mask *, *, !~essen, 2:281/527.0, *, *
  342.  
  343.  All messages with node 2:281/527 as their destination, but not addressed
  344.  to anyone who has the string 'essen' in his/her name.
  345.  
  346.  So messages addressed to my system, but not for me personally (most likely
  347.  a message for one of my BBS users).
  348.  
  349.  
  350.  
  351.  ┌────────────────────────┬─────────────────────────────────────────────
  352.  │ MASK's partner: ACTION │
  353.  └────────────────────────┘
  354.  
  355.  A MASK is never alone, it is always accompanied by one or more ACTION
  356.  statements. This ACTION statement tells NetMgr what should be done with
  357.  messages that match a certain MASK.
  358.  
  359.  The following ACTIONs are valid:
  360.  
  361.  ■ COPY  <destination area>    - Copy msg to area
  362.  ■ MOVE  <destination area>    - Move msg to area
  363.  ■ DELETE                      - Delete message
  364.  ■ FILE  <output text file>    - Write message to file.
  365.  ■ HDRFILE  <output text file> - Write message header to file.
  366.  ■ SEMAPHORE <path+filename>   - Generate/touch a semaphore (0 byte file)
  367.  
  368.  ■ REWRITE  <mask>             - Rewrite header
  369.  ■ UUCPREWRITE <mask>          - Rewrite header, add 'toname' field to the
  370.                                  body, at the top.
  371.  
  372.  A rewrite mask may contain the wildcard token ('*') as well.
  373.  All fields where a '*' is specified will be left unchanged.
  374.  
  375.  
  376.  ■ BOUNCE  <address> <bounce text file>
  377.  
  378.  Return message to the sender, add bounce text at the top.
  379.  
  380.  This action returns a copy of the entire message, including the header
  381.  information.
  382.  
  383.  The address used as origination address (in the origination address,
  384.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  385.  needs to be a full 4D address.
  386.  
  387.  
  388.  ■ EMPTYBOUNCE  <address> <bounce text file>
  389.  
  390.  Return message to the sender, add bounce text at the top.
  391.  
  392.  This action returns nothing, apart from the 'bouncetext', there will be no
  393.  information in the message body.
  394.  
  395.  The address used as origination address (in the origination address,
  396.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  397.  needs to be a full 4D address.
  398.  
  399.  
  400.  ■ HDRBOUNCE  <address> <bounce text file>
  401.  
  402.  Return message to the sender, add bounce text at the top.
  403.  
  404.  This action returns the message header, in addition to the 'bouncetext'.
  405.  The body of the original message will not be sent back, however.
  406.  
  407.  The address used as origination address (in the origination address,
  408.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  409.  needs to be a full 4D address.
  410.  
  411.  
  412.  ■ FORWARD <mask>
  413.  
  414.  This action will forward the message (showing both header and body, like
  415.  'bounce' does) to someone else.
  416.  The header of the message will be constructed using the mask you specify.
  417.  
  418.  Example:
  419.  
  420.  Action Forward Gerard, 2:281/527.0, Kasper Kwant, 2:500/144.0, Test!, +l+c
  421.  
  422.  In this case, it will look like this:
  423.  
  424.  From: Gerard, 2:281/527
  425.  To  : Kasper Kwant, 2:500/144
  426.  Subj: Test!
  427.  Attr: Loc, Crash
  428.  ----------------------------------
  429.  * Forwarded by NetMgr+ 0.98
  430.  
  431.  Original message:
  432.  From:
  433.  To  :           <--- header of original message.
  434.  Subj:
  435.  ----------------
  436.  Bla, bla        <--- body of original message.
  437.  
  438.  
  439.  ■ MAKEMSG <file for body> <mask>
  440.  
  441.  This will generate a new message, using the Mask you specify as the
  442.  header, and the contents of a file you specify as the body.
  443.  
  444.  Example:
  445.  
  446.  Action MakeMsg c:\txt\body.txt Art, 2:281/527.0, SysOp, 1:138/211.0, Poll me!, +l
  447.  
  448.  This will generate a message to SysOp on 1:138/211, with body.txt as the
  449.  body of the message.
  450.  
  451.  
  452.  ■ CHANGEPATH <new path>
  453.  
  454.  This action replaces the path of files found in the subject line. It makes
  455.  sense to only use this for file attach messages, as you will get a
  456.  terribly messed up subject line otherwise :-)
  457.  
  458.  Example:
  459.  
  460.  Action ChangePath c:\frodo\infiles
  461.  
  462.  In the above example, the subject line:
  463.  
  464.  Subj: c:\tmp\myfile.txt d:\outfiles\test.txt
  465.  
  466.  will be rewritten to:
  467.  
  468.  Subj: c:\frodo\infiles\myfile.txt c:\frodo\infiles\test.txt
  469.  
  470.  If a file does not have a path at all, the defined path will be added:
  471.  
  472.  Subj: test.txt
  473.  
  474.  will get:
  475.  
  476.  Subj: c:\frodo\infiles\test.txt
  477.  
  478.  If the defined change will lead to a subject line that is too long (the
  479.  new path is longer than the old one, and the subject would get longer than
  480.  71 chars) the message will not be changed.
  481.  
  482.  
  483.  ■ ECHOCOPY <address> <area> <seenby> :
  484.  
  485.  Copy, add origin, and (optionally) SEEN-BY: line.
  486.  
  487.  The address used as origination address (in the origin, MSGID) is the
  488.  first item( <address>). As all addresses in Netmgr.cfg, this needs to be a
  489.  full 4D address.
  490.  
  491.  Leave SEEN-BY: info out if you don't want it. The text put here is just
  492.  duplicated in the SEEN-BY line, so you can put more than one address here.
  493.  
  494.  
  495.  ■ ECHOMOVE <address> <area> <seenby> :
  496.  
  497.  Move and add origin, SEEN-BY..
  498.  
  499.  --
  500.  
  501.  In the ACTIONs mentioned above, <destination area> can be any for the
  502.  following formats:
  503.  
  504.  *.MSG    : give the path of the *.MSG area (c:\fd\rcvd\).
  505.  
  506.  Squish   : give the path + basename of this area, and put a '$' in front of
  507.             it, to indicate Squish format ($c:\squish\netmail).
  508.  
  509.  JAM      : give the path + basename of this area, and put a '!' in front of
  510.             it, to indicate JAM format (!c:\fe\msgs\saved).
  511.  
  512.  Hudson   : give the board number of this area, and put a '#' in front of
  513.             it, to indicate Hudson format (#102).
  514.  
  515.  
  516.  
  517.  In the config file, you specify an action using the ACTION keyword.
  518.  
  519.  Some examples:
  520.  
  521.  
  522.  Action Delete
  523.  
  524.  Delete the message
  525.  
  526.  --
  527.  
  528.  Action Move $c:\bink\msgs\net2
  529.  
  530.  Move a message to the Squish style (leading $) area c:\bink\msgs\net2.
  531.  
  532.  --
  533.  
  534.  Action Move c:\msgs\rec_msg
  535.  
  536.  Move a message to the *.MSG style (no leading $, ! or #) area
  537.  c:\msgs\rec_msg\.
  538.  
  539.  --
  540.  
  541.  Action Copy !c:\jammsgs\saved
  542.  
  543.  Copy a message to the JAM style (leading '!') area c:\jammsgs\saved.
  544.  
  545.  --
  546.  
  547.  Action Rewrite *, *:*/*.0, *, *, *
  548.  
  549.  Change a message header.
  550.  Any field that has a '*' will be left untouched (in this case the
  551.  Fromname, the fromaddress zone, net and node parts), the toname, the
  552.  toaddress and the attributes.
  553.  
  554.  So, to be more precise: only the pointnumber of the message sender will
  555.  be changed. Messages coming from 2:281/527.40, for example, will be
  556.  changed to a message coming from 2:281/527.0.
  557.  
  558.  --
  559.  
  560.  Action ReWrite *, *, Pietje Puk, *, *
  561.  
  562.  This will rewrite the 'toname' part of a message, it will put "Pietje Puk"
  563.  in the TO: name-field.
  564.  
  565.  --
  566.  
  567.  You can also tell NetMgr to change the attributes of a message. Again, any
  568.  attributes must be preceded by a '+' or '-'.
  569.  
  570.  A '+' in this case means: set this bit.
  571.  A '-' in this case means: turn this bit off.
  572.  
  573.  so..
  574.  
  575.  +p+l+k-c-f
  576.  
  577.  .. will turn ON the P)rivate, L)ocal and K)ill bits, and turn OFF the
  578.  C)rash and F)ile request bits. Other attributes are left untouched.
  579.  
  580.  Example:
  581.  
  582.  Action *, *, *, *, -c+p
  583.  
  584.  Turn off the crash bit for that message. Turn ON the P)rivate bit.
  585.  
  586.  
  587.  --
  588.  
  589.  Action Bounce nojoe.txt
  590.  
  591.  This will write a bounce-message (a message that is addressed to the
  592.  sender of that message), the message body will contain the header and body
  593.  of the original message.
  594.  
  595.  Also, NetMgr will add the contents of a textfile at the top of the
  596.  body. In this case the contents of the file 'nojoe.txt' will be added.
  597.  The contents could be:
  598.  
  599.  -=- <begin> -=-
  600.  
  601.  Sorry, but Joe's modem had a heart attack, so he is currently not
  602.  available. The message you wrote will remain 'on hold' until he has a new
  603.  modem.
  604.  
  605.  The original text of your message:
  606.  
  607.  ::::
  608.  
  609.  -=- <end> -=-
  610.  
  611.  And that will be added at the top.
  612.  
  613.  The original message will NOT be deleted. If that is what you want, you
  614.  must add the another ACTION for that MASK, to DELETE the message.
  615.  NetMgr accepts more than one 'ACTION' for a certain mask.
  616.  
  617.  You can also, for example, first rewrite a message, and then move it, etc.
  618.  
  619.  --
  620.  
  621.  Action EchoCopy 2:281/527.0 #57 281/527 528
  622.  
  623.  This will copy a message to the Hudson style area, board number 57, and
  624.  add 281/527 528 to the SEEN-BY. The text listed will be copied literally,
  625.  so be VERY CAREFUL what you specify here! Test it thoroughly (together
  626.  with any downlinks) before using it!!
  627.  The newly created achomail message will show 2:281/527 as its origination
  628.  address in the origin.
  629.  
  630.  --
  631.  
  632.  Action File, c:\msgs\netmsgs.txt
  633.  
  634.  This will write out a message to the file c:\msgs\netmsgs.txt. If the file
  635.  doesn't exist, it will be created. If it does exist, the message will be
  636.  appended to the file.
  637.  
  638.  --
  639.  
  640.  Action UUCPrewrite, *, *, postmaster, 2:281/527.0, *, +p+k+l
  641.  
  642.  This will take the name from the TO: field, and add it at the top of the
  643.  message body (TO: <toname>). The message itself will be readdressed to
  644.  postmaster at 2:281/527, and have the attributes p)rivate, k)ill and
  645.  l)ocal added.
  646.  This can be useful for people who gate messages to internet.
  647.  
  648.  --
  649.  
  650.  Action Semaphore c:\frodo\sems\areafix.sem
  651.  
  652.  This will create (or touch) a semaphore called areafix.sem. You may use
  653.  this to create semaphores that will start Areafix only when a message to
  654.  areafix was actually encountered by NetMgr (as opposed to running areafix
  655.  after every mailtoss).
  656.  
  657.  
  658.  ┌───────────────────────────────┬────────────────────────────────────
  659.  │ MASK and ACTION in NetMgr.cfg │
  660.  └───────────────────────────────┘
  661.  
  662.  A MASK must *always* have one or more corresponding ACTION(s) in
  663.  netmgr.cfg. NetMgr will NOT run if anything is wrong in the config.
  664.  
  665.  So there are always 'pairs':
  666.  
  667.  
  668.  Mask *, *, Harry Twit, *, *, *
  669.  Action Delete
  670.  
  671.  Any message that matches the MASK will be deleted.
  672.  
  673.  --
  674.  
  675.  Mask *, *, *, 60:*/*.*, *, *
  676.  Action Move !c:\bink\msgs\net2
  677.  
  678.  Any message addressed to a zone 60 address will be moved.
  679.  
  680.  --
  681.  
  682.  Mask *, *, *, *, *, +r
  683.  Mask Move $c:\msgs\received
  684.  
  685.  All received messages will be moved.
  686.  
  687.  etc.
  688.  
  689.  However, it is also possible to specify SEVERAL actions for one mask:
  690.  
  691.  Mask *, *, Pietje Puk, 2:281/527.0, *, *
  692.  Action Bounce 2:281/527.0, c:\txt\newaddr.txt
  693.  Action File c:\msgs\pietje.txt
  694.  Action Forward Art, 2:281/527.0, Pietje Puk, 2:300/1.0, Readdressed mail, *
  695.  Action Delete
  696.  
  697.  Take a while to check this out. What is does is this:
  698.  
  699.  Whenever a mail address to 'Pietje Puk' on 2:281/527 is encountered, this
  700.  message will be bounced back to the sender. The contents of the file
  701.  'c:\txt\newaddr.txt' will be added at the top of the message (possibly
  702.  explaining that Pietje now has a new email address).
  703.  
  704.  Then, the contents of the message will be written to a file (pietje.txt).
  705.  
  706.  The message will also be forwarded to 'Pietje Puk' on '2:300/1', which is
  707.  Pietje's new netmail address (so he gets his message anyway).
  708.  
  709.  And finally, the original message is deleted.
  710.  
  711.  
  712.  As you might imagine, creative minds can go a long way with NetMgr.
  713.  
  714.  
  715.  But, you can also use more than one Mask, and combine it with one or more
  716.  actions!
  717.  
  718.  For example:
  719.  
  720.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  721.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  722.  Action Move $c:\fastecho\rcvdsent
  723.  
  724.  This will take all messages FROM Gerard van Essen (2:281/527) that are
  725.  'sent', and all message TO Gerard van Essen (2:281/527) that are received
  726.  and moves thes to a Squish message area (rcvdsent).
  727.  In other words: all received and sent netmail is moved out of my primary
  728.  netmail area.
  729.  
  730.  Of course, you can also combine several masks with several actions.
  731.  
  732.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  733.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  734.  Action File c:\msgs\oldmail.txt
  735.  Action Delete
  736.  
  737.  This will write all received and sent netmail to a file, and then delete
  738.  it.
  739.  
  740.  
  741.  ┌────────────────────────────────────┬─────────────────────────────────
  742.  │ Areas to scan: the ScanDir keyword │
  743.  └────────────────────────────────────┘
  744.  
  745.  There's one more important keyword in NetMgr.cfg, and that's the ScanDir
  746.  keyword.
  747.  
  748.  This will give NetMgr an area to Scan for messages that match a Mask.
  749.  
  750.  Example:
  751.  
  752.  ScanDir c:\fd\netmsgs
  753.  
  754.  The default is a *.MSG area, but:
  755.  
  756.  A '$' in front of an area indicates a Squish style area.
  757.  A '!' in front of an area indicates a JAM style area.
  758.  A '#' in front of an area indicates a Hudson style area.
  759.  
  760.  You can have as many of these as you like, NetMgr will scan each and every
  761.  one of them. But, just as a certain action is related to a certain mask,
  762.  certain action/mask combinations are related to a ScanDir statement.
  763.  
  764.  When a ScanDir statement is found in NetMgr.cfg, all Mask/Action
  765.  combinations following that ScanDir up to the next ScanDir statement will
  766.  (only) be valid for that particular ScanDir.
  767.  
  768.  ScanDir c:\fd\netmail
  769.  
  770.  Mask A
  771.  Action ..
  772.  Action ..
  773.  
  774.  Mask B
  775.  Action ..
  776.  
  777.  Mask C
  778.  Action ..
  779.  
  780.  ScanDir c:\fd\usenet
  781.  
  782.  Mask D
  783.  Action ..
  784.  
  785.  In the above example, c:\fd\netmail will be scanned for Mask A, B and C,
  786.  but not for Mask D.
  787.  c:\fd\usenet will (only) be scanned for Mask D.
  788.  
  789.  You can also specify more than one ScanDir, followed by one or more Masks.
  790.  All ScanDirs will be scanned for those masks.
  791.  
  792.  ScanDir c:\fd\usenet
  793.  ScanDir $c:\fd\netmail
  794.  
  795.  Mask E
  796.  Action
  797.  
  798.  In the above example, both c:\fd\usenet and $c:\fd\netmail will be scanned
  799.  for mask E.
  800.  
  801.  
  802.  ┌──────────────────────────────┬────────────────────────────────────
  803.  │ Other keywords in netmgr.cfg │
  804.  └──────────────────────────────┘
  805.  
  806.  
  807.  HOME
  808.  ====
  809.  
  810.  Example:
  811.  
  812.  Home 2:281/527.0
  813.  
  814.  Your address. The zone is used as a default value for 'zoneless' messages
  815.  (only *.MSG style areas)...
  816.  
  817.  
  818.  ORIGIN.
  819.  =======
  820.  
  821.  Origin   NetMgr, (c) 1992-'94  Gerard van Essen
  822.  
  823.  
  824.  An originline, will be used for EchoCopy and EchoMove.
  825.  
  826.  
  827.  LOG.
  828.  ====
  829.  
  830.  Log c:\tc\netmgr\netmgr.log
  831.  
  832.  
  833.  The location and name of your logfile. Leave this keyword out if you don't
  834.  want a logfile.
  835.  
  836.  
  837.  HUDSONPATH
  838.  ==========
  839.  
  840.  The location of your Hudson message base. Use this only if you actually
  841.  have a Hudson base.
  842.  
  843.  Hudsonpath C:\Tosser\Msgbase
  844.  
  845.  
  846.  ┌─────────────────────────┬─────────────────────────────────────────
  847.  │ Command line parameters │
  848.  └─────────────────────────┘
  849.  
  850.  There are only three:
  851.  
  852.  -D
  853.  
  854.  For 'debugging' purposes you can start netmgr with the -d command line
  855.  switch. This will send NetMgr's interpretation of your config file to
  856.  stdout.
  857.  While scanning your netmail area, it will also send some info about the
  858.  headers of the messages to stdout.
  859.  You can easily redirect it to a file (netmgr -d > debug.txt) for
  860.  inspection.
  861.  
  862.  --
  863.  
  864.  -C
  865.  
  866.  Here you can specify the name of an alternative Config file. For example:
  867.  
  868.  NetMgr -Cc:\netmgr\mycfg.txt
  869.  
  870.  --
  871.  
  872.  -Q
  873.  
  874.  Enables 'quiet' mode. Hardly anything is written to the screen in this
  875.  case. This speeds up processing a bit.
  876.  
  877.  
  878.  ┌─────────────┬─────────────────────────────────────────────────────────
  879.  │ Errorlevels │
  880.  └─────────────┘
  881.  
  882.  Three possibilities:
  883.  
  884.  0   : No errors, no work done.
  885.  1   : No errors, something done (move, copy, bounce or whatever. Anything.)
  886.  254 : Error occurred (outa mem, config error etc).
  887.  
  888.  
  889.  
  890.  Some bits and pieces..:
  891.  
  892.  * NetMgr was compiled using Borland C++, v3.1 (DOS version) and Watcom
  893.    C/C++ v10.0 (OS/2 version - 32 bit).
  894.  
  895.  * NetMgr source code is not and will not be available.
  896.  
  897.  
  898.  
  899.  The author can be reached...
  900.  
  901.  The best thing is to hook into the ARTWARE support echo. I give support for
  902.  my products there. It can be found in several places (see support.txt).
  903.  It's also on the American Backbone!
  904.  
  905.  
  906.  Gerard van Essen
  907.  FidoNet: 2:281/527
  908.  Contrast BBS, 31-70-3234903 (V34, V32bis, V32Terbo, V.FC, HST 16k8)
  909.  Usenet: art@beard.nest.nl
  910.  
  911.  
  912.  Have fun.
  913.  
  914.