home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / ntmgrg2.zip / NETMGR.DOC < prev    next >
Text File  |  1995-12-22  |  88KB  |  2,523 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,95  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.  NetMgr version               : 1.00.g2
  23.  Last update of this document : december 22, 1995
  24.  
  25.  Throughout the documentation, you will see items that are marked with a
  26.  'plus' sign, like this: {+}.
  27.  This indicates that the described feature is only available for
  28.  registered users of NetMgr.
  29.  
  30.  ┌──────────────┬─────────────────────────────────────────────────
  31.  │ Introduction │
  32.  └──────────────┘
  33.  
  34.  NetMgr is a program that will scan the messages in one or more NETMAIL
  35.  area(s), and analyse the headers of those messages. The messages can be
  36.  stored in *.MSG, Hudson, Squish or JAM format.
  37.  
  38.  NetMgr will check if any of the headers meet the criteria specified in the
  39.  configuration file (a 'mask'), created by the user. If any of those
  40.  headers are found, NetMgr can perform several actions on that message,
  41.  like moving or copying it to another message area, deleting it, changing
  42.  it etc.
  43.  
  44.  
  45.  ┌─────────────────────────────────────┬─────────────────────────────
  46.  │ Copyright, license and disclaimer.. │
  47.  └─────────────────────────────────────┘
  48.  
  49.  *     "NetMgr" refers to the executables and documentation in the
  50.        original distribution archive. NetMgr is copyrighted material by
  51.        Gerard van Essen. It may only be used in agreement with the
  52.        conditions set out in this license agreement.
  53.  
  54.  *     You are entitled and encouraged to copy and distribute NetMgr,
  55.        provided you do not change the contents of the NetMgr archive or
  56.        the program itself, and no money or any other compensation is
  57.        asked or accepted for NetMgr (without written permission from the
  58.        author).
  59.        Distribution of modified or incomplete archives is prohibited.
  60.  
  61.  *     Although care has been taken to write and test a program that
  62.        does what this document states, the program is provided as is,
  63.        without warranty or guarantee of any kind, either expressed or
  64.        implied, as to the quality or performance of this program,
  65.        except that it will occupy disk space.
  66.  
  67.  *     The author, Gerard van Essen, will not be held liable to you or
  68.        anyone for (but not limited to) any direct, indirect, incidental
  69.        or consequential damages, including any lost profits, lost
  70.        savings which may result from the use or inability to use this
  71.        program.
  72.  
  73.        Gerard van Essen is in no way obligated to provide future
  74.        versions of, or support for this software.
  75.  
  76.        Your use of the program constitutes your agreement to this
  77.        license and disclaimer and your release of the author from any
  78.        form of liability or litigation.
  79.  
  80.  *     COMMERCIAL use of the program: you are a commercial user if you
  81.        make a profit from running NetMgr, or if you use NetMgr in a
  82.        commercial environment (i.e.. business, governmental organization,
  83.        association, school, foundation, or any other form of juridical
  84.        person). In case of doubt, contact the author.
  85.  
  86.  *     For NON-COMMERCIAL use, it is REQUIRED that you register the
  87.        program.
  88.        However, if you really cannot afford to register (mainly a concern
  89.        to 'eastern block' countries, the former USSR etc.), permission is
  90.        hereby granted to use an unregistered version.
  91.  
  92.        Remember, if you register, you are paying for something that you
  93.        already have! Registration does not mean you can force me to
  94.        implement new features that you like.
  95.  
  96.  *     For COMMERCIAL use of the program, you should always register
  97.        the program. You are, however, granted an evaluation period of
  98.        30 days. After these 30 days, you must either register the
  99.        program, or stop using it. Using an unregistered version of
  100.        NetMgr in a commercial environment for more than 30 days is
  101.        prohibited!
  102.  
  103.  *     You only have to register once. Your registration will also be
  104.        valid for all future releases of NetMgr.
  105.  
  106.  *     Registration is valid for all versions of NetMgr. At this moment,
  107.        there are DOS and OS/2 versions of the program available.
  108.        Registering NetMgr entitles you to run the DOS version, the OS/2
  109.        version, or both :-)
  110.  
  111.  *     A registration is PERSONAL. It cannot be transferred to other
  112.        parties. It could, however, be used in different places (but: by
  113.        the same PERSON). Think of it as a book in this regard: you can
  114.        take the book from your home to the office (and read it there).
  115.  
  116.  *     Versions of NetMgr prior to version beta 0.97 were freeware and could
  117.        not be registered. You may continue to use THESE OLDER VERSIONS
  118.        without registration, even in a commercial environment.
  119.  
  120.  *     The author reserves the right to change this license without
  121.        prior notice, for newer versions of the program.
  122.  
  123.  
  124.  ┌────────────────────────────────────┬─────────────────────────────
  125.  │ A 'MASK', NetMgr's driving force.. │
  126.  └────────────────────────────────────┘
  127.  
  128.  As mentioned in the short introduction, NetMgr will scan the headers of
  129.  all messages in a netmail area to see if a header meets the criteria that
  130.  are set by the user in NetMgr's configuration file. These criteria are
  131.  specified in a 'mask'.
  132.  
  133.  A 'mask' consists of six parts:
  134.  
  135.  fromname, fromaddress, toname, toaddress, subject, attributes
  136.    (1)        (2)         (3)      (4)       (5)       (6)
  137.  
  138.  So 6 parts, separated by a comma. In the config file you use the keyword
  139.  MASK to specify a mask:
  140.  
  141.  
  142.  MASK fromname, fromaddress, toname, toaddress, subject, attributes
  143.  
  144.  
  145.  NAME : fromname, toname
  146.  ───────────────────────
  147.  
  148.  A 'name' is just a string, leading and trailing spaces found in the config
  149.  file are stripped, spaces *within* a string are allowed.
  150.  So writing "   Gerard van Essen  " will be the same as "Gerard van Essen".
  151.  (Note that leading and trailing spaces are stripped, while the space
  152.  between "Gerard" and "van" is still there...)
  153.  
  154.  NetMgr will do a compare that is NOT case sensitive. In other words:
  155.  as far as NetMgr is concerned, "GERARD van ESSEN" is the same as "gerard
  156.  VAN essen" and the same as "GeRaRd VaN eSsEn".
  157.  
  158.  A name can start with a tilde (~). This indicates that you are not looking
  159.  for an exact match of the string, but that you are looking for a
  160.  substring. As long as the string you specify is located somewhere in the
  161.  name, it will be a match.
  162.  
  163.  So, if you specify '~essen' as a name, it will be a match if the name is
  164.  'Gerard van Essen', and also if it is 'Art van Essen' etc.
  165.  
  166.  A name can also start with an exclamation mark (!). This indicates that you
  167.  are looking for a string that does NOT match what you specify. So if you
  168.  specify '!Gerard van Essen', NetMgr will work on messages where the string
  169.  is NOT 'Gerard van Essen'.
  170.  
  171.  You can also combine the '~' and '!' tokens. The '!' MUST be always the
  172.  first token if you do that!
  173.  
  174.  For example: !~essen will look for string that do NOT contain 'essen'
  175.  anywhere in the string. In that case 'Gerard van Essen' will not be a
  176.  match, 'Art van Essen' will not be a match, but 'Nick Wirth' will be a
  177.  match.
  178.  
  179.  
  180.  SUBJECT
  181.  ───────
  182.  
  183.  A subject is just a string, exactly like a 'name'. Everything that applies
  184.  to a 'name' also applies to a 'subject'. See the paragraph above..
  185.  
  186.  
  187.  ADDRESS: fromaddress, toaddress
  188.  ───────────────────────────────
  189.  
  190.  An address is *always* full 4D (4 dimensions: zone, net, node, point),
  191.  write a '*' for any part you don't care about:
  192.  
  193.  
  194.  60:*/*.*     -   all messages coming from zone 60
  195.  2:281/527.*  -   msg from any point from 281/527, or .0
  196.  *:500/*.*    -   all messages from nodes/points in a net 500, any zone
  197.  2:281/527.0  -   only messages from 2:281/527.0
  198.  
  199.  Just one exception (to the "always 4D" rule): specifying just a '*' only
  200.  for the address is allowed (strictly speaking, it is not full 4D :-), and
  201.  is the same as *:*/*.*.
  202.  
  203.  An address can also start with an exclamation mark. That indicates that you
  204.  are looking for messages where the address does NOT match what you are
  205.  specifying here.
  206.  
  207.  For example: !2:*/*.* will let NetMgr work on all addresses that are NOT
  208.  zone 2. And !2:281/527.0 will let NetMgr work on all addresses that are NOT
  209.  2:281/527.
  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.  2 = XX2, officially unused/reserved
  238.  b = is return receipt
  239.  g = confirm receipt request
  240.  h = message is locked
  241.  z = JAM, zonegate bit
  242.  x = message is a FAX cover
  243.  
  244.  Special attributes to support nodelist lookups of node numbers:
  245.  
  246.  @ = Check destination address.
  247.  # = Check origination address.
  248.  
  249.  These two special attributes will be explained later.
  250.  
  251.  
  252.  ■ Important note:
  253.  
  254.  Several of these extra attributes can only be represented in the '^AFLAGS'
  255.  kludge (that is NOT supported by Squish, but is by Frodo and several other
  256.  programs), in some message base formats (like *.MSG and Squish).
  257.  
  258.  If you do NOT want to use this FLAGS kludge (because you use Squish in a
  259.  Binkley environment), you can put the keyword 'NOFLAGS' in your config.
  260.  This gives you the ability to use 'direct' (in the peculiar way that Squish
  261.  supports it).
  262.  
  263.  You can NOT use: IMM, TFS, KFS or Archive Sent in this ('NOFLAGS') mode for
  264.  Squish and *.MSG areas!
  265.  
  266.  NetMgr will NOT write out a FLAGS kludge in this ('NOFLAGS') mode, so
  267.  rewriting a message that has these FLAGS will make these FLAGS disappear!!
  268.  
  269.  The JAM message base format supports ALL attributes without any kludges.
  270.  
  271.  
  272.  Every attribute must have a '+' or a '-' in front of it.
  273.  
  274.  A '+' means: must be present.
  275.  A '-' means: must *not* be present.
  276.  
  277.  An example:
  278.  
  279.  +l+p
  280.  
  281.  A message only matches this, if the L)ocal bit, and the P)rivate bits are
  282.  set. The other (possible) attributes are not important.
  283.  
  284.  -f+l
  285.  
  286.  A message matches this, if it is *not* a F)ile request, and the L)ocal bit
  287.  is present.
  288.  
  289.  +c+l+p-s
  290.  
  291.  A message matches this, if the C)rash bit is set, the L)ocal bit is set
  292.  and the P)rivate bit is set. Apart the that, the message must *not* be
  293.  S)ent already..
  294.  
  295.  
  296.  The special nodelist 'attributes'.
  297.  ----------------------------------
  298.  
  299.  NetMgr also supports two special attributes that can check whether a
  300.  certain address is in the nodelist or not.
  301.  
  302.  The following two tokens represent these special attributes:
  303.  
  304.  @ = Check destination address.
  305.  # = Check origination address.
  306.  
  307.  Just like the other attributes, a '+' or a '-' must be used in front of
  308.  these attributes:
  309.  
  310.  +@ means the destination address must be listed.
  311.  -@ means the destination address must NOT be listed.
  312.  
  313.  +# means the origination address must be listed.
  314.  -# means the origination address must NOT be listed.
  315.  
  316.  * Note: if the message originates from, or is destined for a point
  317.    address, NetMgr will try to locate the Boss of this point in the
  318.    nodelist. If the Boss is listed, the point address is also assumed to be
  319.    listed.
  320.  
  321.  Checking whether or not a node is in the nodelist can be quite useful.
  322.  Sending out a message to a node that is unlisted is bound to fail, so it
  323.  may be useful to bounce such a message, or at least give a warning about
  324.  this situation.
  325.  Similarly, if you receive a message FROM a node that is unlisted, you may
  326.  be warned that returning a reply to that address may fail because of this
  327.  situation.
  328.  
  329.  The special nodelist attributes can be simply combined with other
  330.  attributes:
  331.  
  332.  +l+p-@
  333.  
  334.  A message matches these attributes, if the L)ocal bit, and the P)rivate
  335.  bits are set. Additionally, the message must be addressed to a node that
  336.  is not listed in the nodelist.
  337.  
  338.  +p-@-#
  339.  
  340.  A message matches these attributes, if the P)rivate bit is set, the
  341.  message is addressed to a node that is not listed in the nodelist, and the
  342.  message originates from a node that is not listed either.
  343.  
  344.  -@+#
  345.  
  346.  A message matches these attributes, if it originates from a listed node,
  347.  but is addressed to an unlisted node.
  348.  
  349.  
  350.  In order to use these special attributes, you must also specify what type
  351.  of nodelist you use, and where it is located. NetMgr supports the Version
  352.  7 nodelist (used by for example Binkley), the FrontDoor nodelist (used by
  353.  FrontDoor and Intermail) and the GIGO nodelist (a compiler to generate a
  354.  GIGO nodelist is supplied with NetMgr). The keywords that can be used to
  355.  specify the nodelist are presented later in this document.
  356.  
  357.  
  358.  Some examples of a complete 'MASK'.
  359.  ───────────────────────────────────
  360.  
  361.  Mask Gerard van Essen, *, *, *, *, +s
  362.  
  363.  All messages, coming from "Gerard van Essen" on any address (*), written
  364.  TO: anyone (*) on any address (*), with any subject, that are already
  365.  flagged as S)ent.
  366.  
  367.  IE: all messages written by me that have already been packed/sent.
  368.  
  369.  --
  370.  
  371.  Mask *, 2:281/527.*, uucp, 2:281/527.0, *, +l-h-p-k
  372.  
  373.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  374.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  375.  Written TO: a guy named "UUCP" on node 2:281/527.
  376.  The L)ocal bit must be set, and the H)old, P)rivate and K)ill bits must
  377.  *not* be set.
  378.  The subject doesn't matter.
  379.  
  380.  --
  381.  
  382.  Mask *, 2:281/527.*, postmaster, 2:281/527.0, *, *
  383.  
  384.  Message written by anyone (any name: '*'), on node 2:281/527 (.* so it can
  385.  be the NODE 2:281/527 or any of its points, like 2:281/527.40).
  386.  Written TO: a guy named "Postmaster" on node 2:281/527.
  387.  The subject and message attributes that are (not) present are not
  388.  important.
  389.  
  390.  --
  391.  
  392.  Mask *, *, raid, 2:281/527.0, *, *
  393.  
  394.  All messages, coming from anyone on any address, but addressed to RAID on
  395.  2:281/527. The subject & message attributes don't matter.
  396.  
  397.  --
  398.  
  399.  Mask *, *, ~essen, 2:281/527.0, ~timed, *
  400.  
  401.  All messages, addressed to a name that contains the string 'essen', on
  402.  node 2:281/527, that have the string 'timed' somewhere in the subject.
  403.  
  404.  --
  405.  
  406.  Mask ~gerard, !2:281/527.0, *, *, *, *
  407.  
  408.  All messages, coming from someone whose name contains 'gerard', but whose
  409.  address is NOT 2:281/527.
  410.  So it will be from someone with a nice name, but it won't be from me :-)
  411.  
  412.  --
  413.  
  414.  Mask *, *, !~essen, 2:281/527.0, *, *
  415.  
  416.  All messages with node 2:281/527 as their destination, but not addressed
  417.  to anyone who has the string 'essen' in his/her name.
  418.  
  419.  So messages addressed to my system, but not for me personally (most likely
  420.  a message for one of my BBS users).
  421.  
  422.  --
  423.  
  424.  Mask *, !2:281/527.0, *, *, *, -@-l
  425.  
  426.  All messages that are not originating from node 2:281/527, have a
  427.  destination address that is unlisted in the nodelist and do not have the
  428.  'local' bit present.
  429.  
  430.  --
  431.  
  432.  Mask *, *, *, *, *, -#
  433.  
  434.  Any message that originates from an unlisted system.
  435.  
  436.  
  437.  NetMgr also offers another type of Masks: eXtended Masks (XMASKs), with
  438.  much more capabilities than standard masks. These will be explained
  439.  later in this document.
  440.  
  441.  First we will take a look at what NetMgr can actually do when it find a
  442.  message that matches a certain mask.
  443.  
  444.  
  445.  ┌────────────────────────┬─────────────────────────────────────────────
  446.  │ MASK's partner: ACTION │
  447.  └────────────────────────┘
  448.  
  449.  A MASK is never alone, it is always accompanied by one or more ACTION
  450.  statements. This ACTION statement tells NetMgr what should be done with
  451.  messages that match a certain MASK.
  452.  
  453.  In the ACTIONs mentioned below, <destination area> can be any for the
  454.  following formats:
  455.  
  456.  *.MSG    : give the path of the *.MSG area (c:\fd\rcvd\).
  457.  
  458.  Squish   : give the path + basename of this area, and put a '$' in front of
  459.             it, to indicate Squish format ($c:\squish\netmail).
  460.  
  461.  JAM      : give the path + basename of this area, and put a '!' in front of
  462.             it, to indicate JAM format (!c:\fe\msgs\saved).
  463.  
  464.  Hudson   : give the board number of this area, and put a '#' in front of
  465.             it, to indicate Hudson format (#102).
  466.  
  467.  
  468.  The following ACTIONs are valid:
  469.  
  470.  ■ COPY  <destination area>
  471.  ──────────────────────────
  472.  
  473.  Copy a message to another area. This HAS TO BE a netmail area. It can be a
  474.  *.MSG, JAM, Squish or Hudson area (see above). The original message will
  475.  be left alone, NetMgr will simply make a copy.
  476.  
  477.  An example:
  478.  
  479.  Action Copy c:\fd\netmail
  480.  
  481.  This will copy a message to the *.MSG area c:\fd\netmail (there is no
  482.  leading '#', '$' or '!' so it is a *.MSG area.
  483.  
  484.  Action Copy #13
  485.  
  486.  This will copy a message to a Hudson area (because of the leading '#')
  487.  with board number 13.
  488.  
  489.  
  490.  ■ MOVE  <destination area>
  491.  ──────────────────────────
  492.  
  493.  Move a message to another area. This HAS TO BE a netmail area. It can be a
  494.  *.MSG, JAM, Squish or Hudson area (see above). The original message will
  495.  be deleted after a copy is placed in the destination area.
  496.  
  497.  An example:
  498.  
  499.  Action Move !e:\msgbases\artware
  500.  
  501.  This will move a message to the JAM style area (because of the leading
  502.  '!') e:\msgbases\artware.
  503.  
  504.  
  505.  ■ DELETE
  506.  ────────
  507.  
  508.  Delete a message. This action has no parameters. The message will be
  509.  deleted.
  510.  
  511.  
  512.  ■ DELETEATTACH
  513.  ──────────────
  514.  
  515.  This action will not only delete the message, but it will also look at
  516.  any attached files. When the 'Truncate when sent' flag is present on
  517.  the message, the file(s) will be truncated. When the 'Kill file when
  518.  sent' flag is present, the attached file(s) will be deleted.
  519.  
  520.  
  521.  ■ FILE  <output text file>
  522.  ──────────────────────────
  523.  
  524.  Write the message to a text file. NetMgr will write out the message (header
  525.  + body) to a plain (ASCII) text file. The original message will be left
  526.  alone. The body of the message will be formatted with a right margin of
  527.  80.
  528.  If the file does not exist, it will be created. If it exists already, the
  529.  message will be appended at the end of the file.
  530.  
  531.  Example:
  532.  
  533.  Action FILE d:\output\msgtext.txt
  534.  
  535.  This will add the message to the textfile d:\output\msgtext.txt.
  536.  
  537.  
  538.  ■ HDRFILE  <output text file>
  539.  ─────────────────────────────
  540.  
  541.  Write message header to a textfile. NetMgr will write out the message
  542.  (header only) to a plain (ASCII) text file. The original message will be
  543.  left alone.
  544.  
  545.  If the file does not exist, it will be created. If it exists already, the
  546.  message will be appended at the end of the file.
  547.  
  548.  Example:
  549.  
  550.  Action FILE d:\output\msgtext.txt
  551.  
  552.  This will add the header of message to the textfile d:\output\msgtext.txt.
  553.  
  554.  
  555.  ■ SEMAPHORE <path+filename>
  556.  ───────────────────────────
  557.  
  558.  Generate/touch a semaphore. A semaphore is a 0 byte file, that is often
  559.  used as a simple way to communicate between different programs. Different
  560.  courses of action can be taken based on the existence of a semaphore.
  561.  
  562.  This can be easily accomplished in batch files, by using the 'if exist ..'
  563.  and 'if not exist' commands.
  564.  
  565.  If the semaphore file does not exist, it will be created. If it already
  566.  exists, it will be 'touched': the date and time of the file will be set to
  567.  the current date and time.
  568.  
  569.  
  570.  ■ REWRITE  <mask>
  571.  ─────────────────
  572.  
  573.  Rewrite (change) the header.
  574.  
  575.  This action takes a full 'mask' as parameter.  A rewrite mask may contain
  576.  the wildcard token ('*') as well. All fields where a '*' is specified will
  577.  be left unchanged. This allows you to change only a certain field in the
  578.  header without changing any of the other fields.
  579.  Some examples:
  580.  
  581.  Action Rewrite *, *, Gerard van Essen, *, *, *
  582.  
  583.  This will change the TO: name in 'Gerard van Essen', but will not change
  584.  anything else in the header (or body, for that matter) of the message.
  585.  Only the contents of the TO: name field is changed.
  586.  
  587.  Action Rewrite *, *, *, 2:281/527.0, *, *
  588.  
  589.  This will change (only) the destination address of the message. It will be
  590.  set to 2:281/527.0. All other fields will be left unchanged.
  591.  
  592.  Action Rewrite *, *, *, 2:*/*.*, *, *
  593.  
  594.  This will change (only) zone of the destination address of the message. It
  595.  will be set to zone 2. The rest of the address is not changed. So a
  596.  message originally to 1:100/1.0 will be changed to 2:100/1.0, while a
  597.  message originally to 70:256/123.0 will be changed to 2:256/123.0.
  598.  All other fields will be left unchanged.
  599.  
  600.  Action Rewrite *, 2:281/527.0, *, *, Interesting subject, *
  601.  
  602.  This will change the origination address of the message. It will be set to
  603.  2:281/527.0. Additionally, the subject will be set to 'Interesting
  604.  subject'. The other fields will be left unchanged.
  605.  
  606.  Action Rewrite *, *, *, *, Interesting subject, -c+h
  607.  
  608.  This will set the subject to 'Interesting subject'. Additionally, the
  609.  'hold' attribute will be added to the message (+h) and the 'crash'
  610.  attribute will be stripped (-c).
  611.  The other fields will be left unchanged.
  612.  
  613.  You can also use '@myaka' instead of 'address' as the origination
  614.  address. This will let NetMgr pick the most appropriate AKA
  615.  automatically. See the special section about AKAmatching later in the
  616.  documentation.
  617.  
  618.  
  619.  ■ UUCPREWRITE <mask>
  620.  ────────────────────
  621.  
  622.  Rewrite header and add the contents of the 'TO: name' field to the body,
  623.  at the top of the message. This can be useful for Internet <-> FidoNet
  624.  gates.
  625.  UUCPrewrite works exactly like a 'normal' rewrite, but will also add the
  626.  TO: name to the body of the message.
  627.  
  628.  An example:
  629.  
  630.  Action UUCPrewrite *, *, uucp, 2:281/999.999, *, -c+l
  631.  
  632.  A message like this:
  633.  
  634.  From: Pietje Puk, 2:281/0
  635.  To  : art@cnh.wlink.nl, 2:281/527
  636.  Subj: test
  637.  -------------
  638.  Hello!
  639.  .
  640.  .
  641.  
  642.  
  643.  Will be rewritten to:
  644.  
  645.  From: Pietje Puk, 2:281/0
  646.  To  : uucp, 2:281.999.999
  647.  Subj: test
  648.  --------------
  649.  TO: art@cnh.wlink.nl
  650.  
  651.  Hello!
  652.  .
  653.  .
  654.  
  655.  
  656.  ■ BOUNCE  <address> <bounce text file>
  657.  ──────────────────────────────────────
  658.  
  659.  Return message to the sender, and add bounce text at the top.
  660.  
  661.  This action returns a copy of the entire message, including the header
  662.  information.
  663.  
  664.  The address used as origination address (in the origination address,
  665.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  666.  needs to be a full 4D address. You *must* specify this item (it may not be
  667.  '*'), because NetMgr needs to know a valid origination address to use.
  668.  You can also use '@myaka' instead of 'address' as the origination
  669.  address. This will let NetMgr pick the most appropriate AKA
  670.  automatically. See the special section about AKAmatching later in the
  671.  documentation.
  672.  
  673.  The original message is left untouched. If you want to send back the
  674.  message *and* get rid of the original message, you must first have an
  675.  'Action Bounce' and then an 'Action Delete' line for a certain mask.
  676.  Otherwise the original message will just stay there, and might trigger an
  677.  'Action Bounce' on the next run of NetMgr.
  678.  
  679.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  680.  specified in FSC-0035), NetMgr will properly bounce this message back to
  681.  the other network (most likely internet), with a correct TO: line at the
  682.  top of the message.
  683.  
  684.  {+} You can use variables in the textfiles that can be inserted at the
  685.  top of the message.
  686.  
  687.  These variables will be expanded using the contents of the
  688.  message header of the message you are bouncing. This gives you the
  689.  opportunity to make the messages a bit more 'personal'.
  690.  
  691.  In the file, the use of the following variables is now allowed:
  692.  
  693.  %to    :    The full name of the person that the the original message
  694.              was addressed to.
  695.  %fto   :    As %to, but only the first name of that person.
  696.  %from  :    The full name of the person who wrote the original
  697.              message.
  698.  %ffrom :    As %from, but only the first name of that person.
  699.  %subj  :    Subject of the original message.
  700.  %orig  :    Address of the sender of the message (like 2:281/527)
  701.  %dest  :    Address of the recipient of the message (like 2:281/527)
  702.  %time  :    Time the message was written (like 01:25)
  703.  %year  :    The year the message was written (like 1993)
  704.  %mon   :    The month the message was written (like jan, feb etc)
  705.  %day   :    The day of the month msg was written (a number)
  706.  %dow   :    The 'day of week' msg was written (like mon, tue, wed etc)
  707.  
  708.  So, the contents of the bounce file could be:
  709.  
  710.  -=-
  711.  
  712.  Hello %ffrom!
  713.  
  714.  You sent a message to %to (%dest), dated %mon %day, %year. The subject
  715.  was: "%subj".
  716.  
  717.  -=-
  718.  
  719.  These variables can only be used by registered users of NetMgr.
  720.  
  721.  
  722.  ■ EMPTYBOUNCE  <address> <bounce text file>
  723.  ───────────────────────────────────────────
  724.  
  725.  Return message to the sender, add bounce text at the top.
  726.  
  727.  This action returns nothing, apart from the 'bouncetext', there will be no
  728.  information in the message body.
  729.  
  730.  The address used as origination address (in the origination address,
  731.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  732.  needs to be a full 4D address. You *must* specify this item (it may not be
  733.  '*'), because NetMgr needs to know a valid origination address to use.
  734.  
  735.  You can also use '@myaka' instead of 'address' as the origination
  736.  address. This will let NetMgr pick the most appropriate AKA
  737.  automatically. See the special section about AKAmatching later in the
  738.  documentation.
  739.  
  740.  The original message is left untouched. If you want to send back the
  741.  message *and* get rid of the original message, you must first have an
  742.  'Action EmptyBounce' and then an 'Action Delete' line for a certain mask.
  743.  Otherwise the original message will just stay there, and might trigger an
  744.  'Action EmptyBounce' on the next run of NetMgr.
  745.  
  746.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  747.  specified in FSC-0035), NetMgr will properly bounce this message back to
  748.  the other network (most likely internet), with a correct TO: line at the
  749.  top of the message.
  750.  
  751.  {+} You can use variables in the textfiles that can be inserted at the
  752.  top of the message. See the action 'bounce' for more information on
  753.  this.
  754.  
  755.  
  756.  ■ HDRBOUNCE  <address> <bounce text file>
  757.  ─────────────────────────────────────────
  758.  
  759.  Return message to the sender, add bounce text at the top.
  760.  
  761.  This action returns the message header, in addition to the 'bouncetext'.
  762.  The body of the original message will not be sent back, however.
  763.  
  764.  The address used as origination address (in the origination address,
  765.  MSGID) is the first item you specify. As all addresses in Netmgr.cfg, this
  766.  needs to be a full 4D address. You *must* specify this item (it may not be
  767.  '*'), because NetMgr needs to know a valid origination address to use.
  768.  
  769.  You can also use '@myaka' instead of 'address' as the origination
  770.  address. This will let NetMgr pick the most appropriate AKA
  771.  automatically. See the special section about AKAmatching later in the
  772.  documentation.
  773.  
  774.  The original message is left untouched. If you want to send back the
  775.  message *and* get rid of the original message, you must first have an
  776.  'Action HdrBounce' and then an 'Action Delete' line for a certain mask.
  777.  Otherwise the original message will just stay there, and might trigger an
  778.  'Action HdrBounce' on the next run of NetMgr.
  779.  
  780.  If the original message contains the REPLYTO/REPLYADDR kludges (as
  781.  specified in FSC-0035), NetMgr will properly bounce this message back to
  782.  the other network (most likely internet), with a correct TO: line at the
  783.  top of the message.
  784.  
  785.  {+} You can use variables in the textfiles that can be inserted at the
  786.  top of the message. See the action 'bounce' for more information on
  787.  this.
  788.  
  789.  
  790.  ■ XBOUNCE {+}
  791.  ■ XHDRBOUNCE {+}
  792.  ■ XEMPTYBOUNCE {+}
  793.  ──────────────────
  794.  
  795.  The BOUNCE, HDRBOUNCE and EMPTYBOUNCE Actions have 'extended'
  796.  counterparts: XBOUNCE, XHDRBOUNCE and XEMPTYBOUNCE.
  797.  
  798.  The format:
  799.  XBOUNCE <textfile for bouncetext> <full mask to use>
  800.  
  801.  The first parameter is the textfile to add at the top of the bounce
  802.  message.
  803.  The second parameter is the mask to use for the bounce message. You can
  804.  specify a "*" for the fields where you want the default to be used.
  805.  
  806.  By default, NetMgr generates a full 'reply header' with the to: and from:
  807.  names and addresses reversed (compared to the original message) and the
  808.  same attributes and subject.
  809.  
  810.  For example, for this message:
  811.  
  812.  From: Gerard, 1:1/1
  813.  To  : SysOp,  1:138/211
  814.  Subj: Test!
  815.  Attr: Pvt Cra
  816.  ----------------------------------
  817.  
  818.  The standard reply header is:
  819.  
  820.  From: SysOp,  1:138/211
  821.  To  : Gerard, 1:1/1
  822.  Subj: Test!
  823.  Attr: Pvt Cra
  824.  ----------------------------------
  825.  
  826.  And that will be the result if you specify a mask like:
  827.  
  828.  Action XBounce c:\txt\bounce.txt *, *, *, *, *, *
  829.  
  830.  However, if you make it:
  831.  
  832.  Action XBounce c:\txt\bounce.txt The Bodyguard, 2:281/527.0, *, *, *, +l
  833.  
  834.  The result would be:
  835.  
  836.  From: The Bodyguard,  2:281/527
  837.  To  : Gerard,         1:1/1
  838.  Subj: Test!
  839.  Attr: Loc
  840.  ----------------------------------
  841.  
  842.  {+} You can use variables in the textfiles that can be inserted at the
  843.  top of the message. See the action 'bounce' for more information on
  844.  this.
  845.  
  846.  The extended bounce actions are only available to registered users.
  847.  
  848.  
  849.  ■ ADDNOTE <textfile>
  850.  ────────────────────
  851.  
  852.  This will add the text from <textfile> at the top of the message. You
  853.  could use this to send a message through with a note ('please do not
  854.  reply through this system, the originating system is unlisted').
  855.  The message is not changed in any other way.
  856.  
  857.  
  858.  ■ FORWARD <mask>
  859.  ────────────────
  860.  
  861.  This action will forward the message (showing both header and body, like
  862.  'bounce' does) to someone else.
  863.  The header of the message will be constructed using the mask you specify.
  864.  However, the header (that is: from, to, subject, destination address,
  865.  origination address and attributes) will be initialized with the
  866.  contents of the original message.
  867.  Putting a '*' in fields of the masks will, as a result, produce the
  868.  contents of the header of the original message.
  869.  
  870.  
  871.  Example:
  872.  
  873.  An example:
  874.  
  875.  Action Forward *, *, Kasper Kwant, 2:500/144.0, *, +l+c
  876.  
  877.  A message like this:
  878.  
  879.  From: Gerard, 2:281/527
  880.  To  : SysOp,  1:138/211
  881.  Subj: Test!
  882.  Attr: -
  883.  ----------------------------------
  884.  
  885.  Will produce a message like this:
  886.  
  887.  
  888.  From: Gerard, 2:281/527
  889.  To  : Kasper Kwant, 2:500/144
  890.  Subj: Test!
  891.  Attr: Loc, Cra
  892.  ----------------------------------
  893.  * Forwarded by NetMgr+ 1.00.g2
  894.  
  895.  Original message:
  896.  From:
  897.  To  :           <--- header of original message.
  898.  Subj:
  899.  ----------------
  900.  Bla, bla        <--- body of original message.
  901.  
  902.  You can also use '@myaka' instead of 'address' as the origination
  903.  address. This will let NetMgr pick the most appropriate AKA
  904.  automatically. See the special section about AKAmatching later in the
  905.  documentation.
  906.  
  907.  
  908.  ■ MAKEMSG <file for body> <mask>
  909.  ────────────────────────────────
  910.  
  911.  This will generate a new message, using the Mask you specify as the
  912.  header, and the contents of a file you specify as the body.
  913.  However, the header (that is: from, to, subject, destination address,
  914.  origination address and attributes) will be initialized with the
  915.  contents of the original message.
  916.  Putting a '*' in fields of the masks will, as a result, produce the
  917.  contents of the header of the original message.
  918.  
  919.  
  920.  Example:
  921.  
  922.  Action MakeMsg c:\body.txt Art, 2:281/527.0, SysOp, 1:138/211.0, Poll!, +l
  923.  
  924.  This will generate a message to SysOp on 1:138/211, with body.txt as the
  925.  body of the message.
  926.  
  927.  You can also use '@myaka' instead of 'address' as the origination
  928.  address. This will let NetMgr pick the most appropriate AKA
  929.  automatically. See the special section about AKAmatching later in the
  930.  documentation.
  931.  
  932.  
  933.  ■ BOUNCEIN
  934.  ■ HDRBOUNCEIN
  935.  ■ EMPTYBOUNCEIN
  936.  ■ XBOUNCEIN {+}
  937.  ■ XHDRBOUNCEIN {+}
  938.  ■ XEMPTYBOUNCEIN {+}
  939.  ■ FORWARDIN
  940.  ■ MAKEMSGIN
  941.  ────────────────────
  942.  
  943.  Several actions have a similar counterpart, that can place the resulting
  944.  message in another area.
  945.  The actions concerned are: the Bounce and XBounce 'family', Forward and
  946.  MakeMsg. In order to place the resulting message in another area, add
  947.  'IN' to the action name (to make BOUNCEIN, XBOUNCEIN, XEMPTYBOUNCEIN,
  948.  FORWARDIN etc), and add the path/name of the area to put the message in.
  949.  
  950.  Some examples:
  951.  
  952.  Action XBOUNCEIN $d:\msg\net bounce.txt The Bouncer, @myaka, *, *, *, +l
  953.  
  954.  This will create a bounce message in the Squish area d:\msg\net.
  955.  
  956.  Action FORWARDIN !c:\msgbase\netmail *, *, Pietje Puk, 2:2/2.0, *, +l
  957.  
  958.  This will forward a message to 'Pietje Puk (2:2/0)' in the JAM style area
  959.  c:\msgbase\netmail.
  960.  
  961.  
  962.  ■ CHANGEPATH <new path>
  963.  ───────────────────────
  964.  
  965.  This action replaces the path of files found in the subject line. It makes
  966.  sense to only use this for file attach messages, as you will get a
  967.  terribly messed up subject line otherwise :-)
  968.  
  969.  Example:
  970.  
  971.  Action ChangePath c:\frodo\infiles
  972.  
  973.  In the above example, the subject line:
  974.  
  975.  Subj: c:\tmp\myfile.txt d:\outfiles\test.txt
  976.  
  977.  will be rewritten to:
  978.  
  979.  Subj: c:\frodo\infiles\myfile.txt c:\frodo\infiles\test.txt
  980.  
  981.  If a file does not have a path at all, the defined path will be added:
  982.  
  983.  Subj: test.txt
  984.  
  985.  will get:
  986.  
  987.  Subj: c:\frodo\infiles\test.txt
  988.  
  989.  If the defined change will lead to a subject line that is too long (the
  990.  new path is longer than the old one, and the subject would get longer than
  991.  71 chars) the message will not be changed.
  992.  Note that the actual file is left untouched. NetMgr only works on the
  993.  subject line of the message. No actual files are moved.
  994.  
  995.  
  996.  ■ CHANGEPATHMOVE <new path>
  997.  ───────────────────────────
  998.  
  999.  This works exactly like 'ChangePath', but it also moves the attached
  1000.  file(s) to the new directory.
  1001.  
  1002.  
  1003.  ■ ECHOCOPY <address> <area> <seenby>
  1004.  ────────────────────────────────────
  1005.  
  1006.  Copy a netmail message to an echomail area. Add an origin and (optionally)
  1007.  a SEEN-BY: line.
  1008.  
  1009.  The address used as origination address (in the origin, MSGID) is the
  1010.  first item( <address>). As all addresses in Netmgr.cfg, this needs to be a
  1011.  full 4D address. You *must* specify an address here, because NetMgr needs
  1012.  this information to generate a correct Origin line. Specifying a '*' is
  1013.  not allowed.
  1014.  
  1015.  Leave SEEN-BY: info out if you don't want it. The text put here is just
  1016.  duplicated in the SEEN-BY line, so you can put more than one address here.
  1017.  Take care what you specify: the text is simply copied verbatim. If you
  1018.  specify an illegal address or format, NetMgr will simply copy it, making
  1019.  the message invalid.
  1020.  
  1021.  If the original message already contained a tear- or origin line, NetMgr
  1022.  will strip it and replace it with a newly generated, correct tear/origin
  1023.  line. This makes sure the correct address is used in the origin line and
  1024.  that the message is a valid echomail message (with an origin line).
  1025.  
  1026.  NetMgr also adds or replaces the MSGID with a newly generated, correct
  1027.  (ie: using the correct address) MSGID.
  1028.  
  1029.  The result of all this should be a valid, fresh echomail message, that has
  1030.  the same header and body as the original message. The original message
  1031.  will be left untouched.
  1032.  
  1033.  An example:
  1034.  
  1035.  Action EchoCopy 2:281/527.0 $c:\msgs\maillist
  1036.  
  1037.  This will take a message and generate an echomail message out of it, using
  1038.  2:281/527 as Origin address. The echomail message will be generated in the
  1039.  Squish area (because of the leading '$' that denotes a Squish style area)
  1040.  c:\msgs\maillist. No SEEN-BY will be added.
  1041.  
  1042.  Action EchoCopy 2:281/527.0 !c:\msgs\maillist 281/528
  1043.  
  1044.  This will take a message and generate an echomail message out of it, using
  1045.  2:281/527 as Origin address. The echomail message will be generated in the
  1046.  JAM area (because of the leading '!' that denotes a JAM style area)
  1047.  c:\msgs\maillist. The string '281/528' will be added to the SEEN-BY.
  1048.  
  1049.  Action EchoCopy 2:281/527.0 !c:\msgs\maillist 281/528 529
  1050.  
  1051.  This will take a message and generate an echomail message out of it, using
  1052.  2:281/527 as Origin address. The echomail message will be generated in the
  1053.  JAM area (because of the leading '!' that denotes a JAM style area)
  1054.  c:\msgs\maillist. The string '281/528 529' will be added to the SEEN-BY.
  1055.  
  1056.  Action EchoCopy 2:281/527.0 #13 pietje puk
  1057.  
  1058.  This will take a message and generate an echomail message out of it, using
  1059.  2:281/527 as Origin address. The echomail message will be generated in the
  1060.  Hudson board (because of the leading '#' that denotes a Hudson style area)
  1061.  number 13. The string 'pietje puk' will be added to the SEEN-BY. This will
  1062.  generate an invalid message and you will definitely be in trouble because
  1063.  of this!
  1064.  
  1065.  
  1066.  ■ ECHOMOVE <address> <area> <seenby>
  1067.  ────────────────────────────────────
  1068.  
  1069.  Move a netmail message to an echomail area and add an origin and
  1070.  optionally a SEEN-BY.
  1071.  
  1072.  The address used as origination address (in the origin, MSGID) is the
  1073.  first item( <address>). As all addresses in Netmgr.cfg, this needs to be a
  1074.  full 4D address. You *must* specify an address here, because NetMgr needs
  1075.  this information to generate a correct Origin line. Specifying a '*' is
  1076.  not allowed.
  1077.  
  1078.  Leave SEEN-BY: info out if you don't want it. The text put here is just
  1079.  duplicated in the SEEN-BY line, so you can put more than one address here.
  1080.  Take care what you specify: the text is simply copied verbatim. If you
  1081.  specify an illegal address or format, NetMgr will simply copy it, making
  1082.  the message invalid.
  1083.  
  1084.  If the original message already contained a tear- or origin line, NetMgr
  1085.  will strip it and replace it with a newly generated, correct tear/origin
  1086.  line. This makes sure the correct address is used in the origin line and
  1087.  that the message is a valid echomail message (with an origin line).
  1088.  
  1089.  NetMgr also adds or replaces the MSGID with a newly generated, correct
  1090.  (ie: using the correct address) MSGID.
  1091.  
  1092.  The result of all this should be a valid, fresh echomail message, that has
  1093.  the same header and body as the original message. The original message in
  1094.  the netmail area will be deleted.
  1095.  
  1096.  
  1097.  ■ IGNORE
  1098.  ────────
  1099.  
  1100.  This action does absolutely nothing, but is it a 'match', so scanning for
  1101.  a matching mask will stop after this.
  1102.  
  1103.  For example:
  1104.  
  1105.  Mask *, 2:281/527.0, *, *, *, *
  1106.  Mask *, 2:281/528.0, *, *, *, *
  1107.  Mask *, 2:281/529.0, *, *, *, *
  1108.  Action Ignore
  1109.  
  1110.  Mask *, *, *, *, *, *
  1111.  Action Delete
  1112.  
  1113.  This will make sure the 'delete' action is never reached for messages
  1114.  originating from 281/527, 281/528 or 281/529.
  1115.  
  1116.  
  1117.  ■ PACKMAIL <origination address> <destination address> [<password>]
  1118.  ───────────────────────────────────────────────────────────────────
  1119.  
  1120.  This action keyword activates NetMgr netmail packing capabilities. NetMgr
  1121.  will take the message and place it in a mailpacket in a Binkley style
  1122.  outbound area (these mailpackets are always called '*.?UT).
  1123.  
  1124.  The mailpacket header will contain the addresses you specify here. So the
  1125.  mailpacket will be from <origination address> to <destination address>.
  1126.  Please note that this is only in the PACKET HEADER, not the individual
  1127.  messages that are inside the packet. Those individual message (obviously)
  1128.  have the origination and destination addresses that were present in the
  1129.  message itself when it was found in your netmail area.
  1130.  
  1131.  The origination address *must* always be a fully specified 4D address,
  1132.  using '*' is not allowed (NetMgr needs an address to use as origination
  1133.  address).
  1134.  
  1135.  In the destination address, however, you are allowed to use '*'. The
  1136.  destination address of the mailpacket will then be the same as the
  1137.  destination address of the individual message that is being packed. Making
  1138.  clever use of '*' for (parts of) the address will allow you to do routing
  1139.  of messages.
  1140.  
  1141.  The third parameter is optional and, when used, specifies the packet
  1142.  password to use when creating the mailpacket.
  1143.  
  1144.  Currently, NetMgr will properly:
  1145.  
  1146.  - Request files (make a *.REQ file in the outbound).
  1147.  - Attach files (make an *.?LO file). FLAGS KFS (Kill file after it is
  1148.    sent) & TFS (truncate file after it is sent) are supported.
  1149.  - Pack (bundle and put in outbound, not compress) messages (make and/or
  1150.    add to *.?UT files in outbound).
  1151.  - Strip paths from subject lines of 'file attach' messages.
  1152.  - Handle update requests.
  1153.  - Handle (update) requests with passwords.
  1154.  - Generate and check for busy (*.BSY) flags in the outbound.
  1155.  
  1156.  The packing is dumb. NetMgr will happily pack messages to yourself, for
  1157.  example. Or route files to an overseas system, even if they are not coming
  1158.  from your system. Or route file requests.
  1159.  Like all other commands, NetMgr simply scans headers and does what it's
  1160.  told, the logic of it's actions has to come from YOU.
  1161.  
  1162.  The only 'intelligence' of the packmail function:
  1163.  
  1164.  ■ It will not pack messages that are 'sent' or 'locked'.
  1165.  ■ It will automatically set the 'sent' bit after sending.
  1166.  ■ If the message is 'kill/sent', it will delete the message after it is
  1167.    successfully added to the mailpacket in the outbound area.
  1168.  
  1169.  
  1170.  Here are the four main forms will most likely be used for the PackMail
  1171.  action:
  1172.  
  1173.  PackMail <address> *           : Send/Route messages to the destination
  1174.                                   address found in message header (even if
  1175.                                   it's a point!). This would be applicable
  1176.                                   for 'hold' mail to/for points.
  1177.  
  1178.  PackMail <address> <address b> : Send/Route messages to address b. All
  1179.                                   messages, regardless of their destination
  1180.                                   address, will be routed to <address b>.
  1181.                                   This would be applicable for normal
  1182.                                   flavour mails, that can be routed to a
  1183.                                   Boss or HUB node.
  1184.  
  1185.  PackMail <address> *:*/*.0     : Send/Route messages to the second
  1186.                                   address, with the pointnumber always set
  1187.                                   to 0 (in other words: do Bossrouting for
  1188.                                   this entry). This would be applicable for
  1189.                                   'crash' mail for points. Most points do
  1190.                                   not run a continuous mail system (usually
  1191.                                   you don't even know a phonenumber), so a
  1192.                                   crashmail for a point would usually have
  1193.                                   to be delivered at the point's Bossnode.
  1194.  
  1195.  PackMail <address> *:*/0.0     : Send/Route messages to node 0 in the net
  1196.                                   of the destination address found in the
  1197.                                   header (HostRouting).
  1198.  
  1199.  You can also use '@myaka' instead of 'address' as the origination
  1200.  address. This will let NetMgr pick the most appropriate AKA
  1201.  automatically. See the special section about AKAmatching later in the
  1202.  documentation.
  1203.  
  1204.  
  1205.  ■ MOVEMAIL <orig> <dest> <dir> [<password>]
  1206.  ───────────────────────────────────────────
  1207.  
  1208.  <orig>     : origination address to use (in mailpacket header).
  1209.  <dest>     : destination address to use (in mailpacket header).
  1210.  <dir>      : output directory for packet.
  1211.  <password> : packet password to use for the mailpacket (optional).
  1212.  
  1213.  This will create a mailpacket, not in Binkley's outbound but in the <dir>
  1214.  you specify. The packetname will be a unique name created by NetMgr (it
  1215.  is an uncompressed packet, so the extension will be .PKT). The packet
  1216.  will be from <orig> and addressed to <dest>.
  1217.  You can also use '@myaka' instead of 'address' as the origination
  1218.  address. This will let NetMgr pick the most appropriate AKA
  1219.  automatically. See the special section about AKAmatching later in the
  1220.  documentation.
  1221.  
  1222.  Using '*' for <dest> is not allowed here (I don't think it is useful - it
  1223.  can be added though).
  1224.  
  1225.  If a file is attached to the message, it will be copied to <dir> as well.
  1226.  The FLAGS KFS & TFS are respected; after the file is copied it will be
  1227.  deleted or truncated if one of these flags is set.
  1228.  The 'sent' bit is set after the message is added to the mailpacket, or
  1229.  the message is killed (when a message was marked kill/sent).
  1230.  Messages that are either Sent or Locked will not be processed.
  1231.  
  1232.  Possible uses: mail delivery through a LAN, maybe also sending mail to
  1233.  gateways on your system.
  1234.  
  1235.  
  1236.  ■ RUNEXTERNAL <program to use> <parameters>
  1237.  ───────────────────────────────────────────
  1238.  
  1239.  This action allows you to run an external program from NetMgr. Before
  1240.  running the external program, NetMgr will swap most of itself out of
  1241.  memory (DOS version), leaving plenty of room for other programs to run.
  1242.  
  1243.  In the <parameters> part, you can make use of several 'variables', whose
  1244.  value depends on the contents of the header of the message that triggered
  1245.  the action. The following variables are available:
  1246.  
  1247.  from       - Name in the 'from' field of current message.
  1248.  to         -             'to'
  1249.  subject    -             'subject'
  1250.  orig       - Origination address of current message (like 2:281/527).
  1251.  dest       - Destination address of current message (like 2:281/527).
  1252.  areadir    - Directory or base name of current area, board number if
  1253.               Hudson. This is in the format that is also used in
  1254.               NetMgr.cfg, so $<path+basename> for a Squish area,
  1255.               !<path+basename> for a JAM area etc.
  1256.  msgno      - Message number of current message ('relative' number for
  1257.               Squish and Hudson)
  1258.  realmsgno  - Real message number, for Squish (UMSGID) and Hudson (real
  1259.               number in Hudson base, not the relative number in the area).
  1260.               For JAM and *.MSG, this is always equal to msgno.
  1261.  file       - Name of the file that contains the body of the message.
  1262.  newfile    - Name of a new file to create if you want to replace the body
  1263.               of the message with new text.
  1264.  repfile    - Name of the file that should be created if you want to send
  1265.               a message back to the sender of the message. (See below).
  1266.  attach     - Files attached to this message (list of files).
  1267.  request    - Files requested in this message (list of files [!passwords]).
  1268.  
  1269.  Before running the external program, NetMgr will write the body of the
  1270.  message to a file. This file (and other files) will be created in the
  1271.  directory where NetMgr found it's config file. The path+name of this file
  1272.  is available through the variable [file]. It will be:
  1273.  "<path to config file>\netmsg.msg".
  1274.  
  1275.  NetMgr will then run the external program, and afterwards check for the
  1276.  existence of two files:
  1277.  
  1278.  ■  "<path to config file>\netmsg.new" : if this file exists, NetMgr will
  1279.     replace the body of the message with the contents of this file. The
  1280.     path+name of this variable is available through the variable
  1281.     [newfile].
  1282.  
  1283.  ■  "<path to config file>\netmsg.rep": if this file exists, NetMgr will
  1284.     send a message back to the sender of the message that triggered this
  1285.     action.
  1286.     What is actually done, is an XEMPTYBOUNCE action. For this action, the
  1287.     netmsg.rep file is used as the body (where the variables like [from],
  1288.     [to] etc. can be used), but where the first line of this .rep file is
  1289.     used as the 'mask' for the reply header.
  1290.     Because it actually _is_ an XEMPTYBOUNCE, it also follows the same
  1291.     conventions as the XEMPTYBOUNCE action, so it initializes the fields
  1292.     with a standard reply header, which makes it possible to use a simple
  1293.     '*, *, *, *, *, *' mask (see XEMPTYBOUNCE action for more info).
  1294.     The path+name of this variable is available through the variable
  1295.     [repfile].
  1296.  
  1297.  An example:
  1298.  
  1299.  Action RUNEXTERNAL pgp.exe +batchmode -sta -u art -o [newfile]
  1300.                                                               -z pass [file]
  1301.  
  1302.  could expand to:
  1303.  
  1304.  'pgp.exe +batchmode -sta -u art -o c:\net\netmsg.new -z pass
  1305.                                                            c:\netmgr\net.msg'
  1306.  
  1307.  This would run PGP on the message, and sign the text. The body of the
  1308.  message will be replaced with a signed version of the text.
  1309.  
  1310.  An example of usage of a .rep file could be:
  1311.  
  1312.  Action RUNEXTERNAL reply.cmd [repfile]
  1313.  
  1314.  And the contents of 'reply.cmd' could be:
  1315.  
  1316.  @echo off
  1317.  echo Automatic Reply, @myaka, *, *, Response to your message, * >> %1
  1318.  echo Hello %%ffrom! >> %1
  1319.  echo. >> %1
  1320.  echo This is an automatic reply! >> %1
  1321.  echo. >> %1
  1322.  echo Greetings! >> %1
  1323.  
  1324.  For DOS users, 'reply.cmd' should of course be 'reply.bat'.
  1325.  This would create a netmsg.rep file, and NetMgr would send back a small
  1326.  message to the sender of the original message.
  1327.  
  1328.  
  1329.  ■ Display <line to display>
  1330.  ───────────────────────────
  1331.  
  1332.  This one will display a line of text on the screen and in the logfile.
  1333.  You can use this to add details about certain actions to the logfile.
  1334.  Example:
  1335.  
  1336.  Mask *, *, Pietje Puk, *, *, *
  1337.  Action Display Deleted message to Pietje Puk!
  1338.  Action Delete
  1339.  
  1340.  Whenever this action is executed, the line 'Deleted message to Pietje
  1341.  Puk!' will be shown on the screen and added to the logfile. Leading and
  1342.  trailing spaces are not touched, the line is displayed exactly as found
  1343.  in the config (The first space, between 'Display' and 'Deleted' in this
  1344.  case, *does* of course get stripped..).
  1345.  
  1346.  Please note that some actions prevent NetMgr from looking for more
  1347.  actions to perform. Delete is one of them: after a message is deleted,
  1348.  there is nothing that can be done with that message anymore and NetMgr
  1349.  stops scanning for more actions. (Echo-)move is another example.
  1350.  
  1351.  Of course, 'Display' is something that *can* be done even after a
  1352.  message is deleted, it is the only exception to this. But NetMgr is
  1353.  not that smart, so keep it in mind and do the 'display' first.
  1354.  
  1355.  So this:
  1356.  
  1357.  Mask *, *, Pietje Puk, *, *, *
  1358.  Action Delete
  1359.  Action Display Deleted message to Pietje Puk!
  1360.  
  1361.  Doesn't work, because NetMgr will never get to the 'Display' action.
  1362.  
  1363.  
  1364.  Some other examples of Action statements.
  1365.  =========================================
  1366.  
  1367.  --
  1368.  
  1369.  Action Delete
  1370.  
  1371.  Delete the message
  1372.  
  1373.  --
  1374.  
  1375.  Action Move $c:\bink\msgs\net2
  1376.  
  1377.  Move a message to the Squish style (leading $) area c:\bink\msgs\net2.
  1378.  
  1379.  --
  1380.  
  1381.  Action Move c:\msgs\rec_msg
  1382.  
  1383.  Move a message to the *.MSG style (no leading $, ! or #) area
  1384.  c:\msgs\rec_msg\.
  1385.  
  1386.  --
  1387.  
  1388.  Action Copy !c:\jammsgs\saved
  1389.  
  1390.  Copy a message to the JAM style (leading '!') area c:\jammsgs\saved.
  1391.  
  1392.  --
  1393.  
  1394.  Action Rewrite *, *:*/*.0, *, *, *, *
  1395.  
  1396.  Change a message header.
  1397.  Any field that has a '*' will be left untouched (in this case the
  1398.  Fromname, the fromaddress zone, net and node parts), the toname, the
  1399.  toaddress and the attributes.
  1400.  
  1401.  So, to be more precise: only the point number of the message sender will
  1402.  be changed. Messages coming from 2:281/527.40, for example, will be
  1403.  changed to a message coming from 2:281/527.0.
  1404.  
  1405.  --
  1406.  
  1407.  Action ReWrite *, *, Pietje Puk, *, *, *
  1408.  
  1409.  This will rewrite the 'toname' part of a message, it will put "Pietje Puk"
  1410.  in the TO: name-field.
  1411.  
  1412.  --
  1413.  
  1414.  You can also tell NetMgr to change the attributes of a message. Again, any
  1415.  attributes must be preceded by a '+' or '-'.
  1416.  
  1417.  A '+' in this case means: set this bit.
  1418.  A '-' in this case means: turn this bit off.
  1419.  
  1420.  so..
  1421.  
  1422.  +p+l+k-c-f
  1423.  
  1424.  .. will turn ON the P)rivate, L)ocal and K)ill bits, and turn OFF the
  1425.  C)rash and F)ile request bits. Other attributes are left untouched.
  1426.  
  1427.  Examples:
  1428.  
  1429.  Action Rewrite *, *, *, *, *, -c+p
  1430.  
  1431.  Turn off the crash bit for that message. Turn ON the P)rivate bit.
  1432.  
  1433.  Action Rewrite *, *, *, *, *, -c-a-f-d-m-t-e-z+h+p+k
  1434.  
  1435.  Turn off the crash, attach, request, direct, immediate, Truncate file
  1436.  sent, Kill file sent and Archive file sent bits for that message. Turn ON
  1437.  the P)rivate bit, K)ill bit and H)old bit. This could be used to strip all
  1438.  'dangerous' bits off a message an make sure it is a private message that
  1439.  will be put on hold for pickup. It might be useful to perform an action
  1440.  like this on all message that you are routing for someone else, for
  1441.  example.
  1442.  
  1443.  --
  1444.  
  1445.  Action Bounce 2:281/527.0 nojoe.txt
  1446.  
  1447.  This will write a bounce-message (a message that is addressed to the
  1448.  sender of that message), the message body will contain the header and body
  1449.  of the original message. The address 2:281/527.0 is used as origination
  1450.  address for this message.
  1451.  
  1452.  Also, NetMgr will add the contents of a textfile at the top of the
  1453.  body. In this case the contents of the file 'nojoe.txt' will be added.
  1454.  The contents could be:
  1455.  
  1456.  -=- <begin> -=-
  1457.  
  1458.  Sorry, but Joe's modem had a heart attack, so he is currently not
  1459.  available. The message you wrote will remain 'on hold' until he has a new
  1460.  modem.
  1461.  
  1462.  The original text of your message:
  1463.  
  1464.  ::::
  1465.  
  1466.  -=- <end> -=-
  1467.  
  1468.  And that will be added at the top.
  1469.  
  1470.  The original message will NOT be deleted. If that is what you want, you
  1471.  must add the another ACTION for that MASK, to DELETE the message.
  1472.  NetMgr accepts more than one 'ACTION' for a certain mask.
  1473.  
  1474.  You can also, for example, first rewrite a message, and then move it, etc.
  1475.  
  1476.  --
  1477.  
  1478.  Action EchoCopy 2:281/527.0 #57 281/527 528
  1479.  
  1480.  This will copy a message to the Hudson style area, board number 57, and
  1481.  add 281/527 528 to the SEEN-BY. The text listed will be copied literally,
  1482.  so be VERY CAREFUL what you specify here! Test it thoroughly (together
  1483.  with any downlinks) before using it!!
  1484.  The newly created echomail message will show 2:281/527 as its origination
  1485.  address in the origin.
  1486.  
  1487.  --
  1488.  
  1489.  Action File c:\msgs\netmsgs.txt
  1490.  
  1491.  This will write out a message to the file c:\msgs\netmsgs.txt. If the file
  1492.  doesn't exist, it will be created. If it does exist, the message will be
  1493.  appended to the file.
  1494.  
  1495.  --
  1496.  
  1497.  Action UUCPrewrite *, *, postmaster, 2:281/527.0, *, +p+k+l
  1498.  
  1499.  This will take the name from the TO: field, and add it at the top of the
  1500.  message body (TO: <toname>). The message itself will be readdressed to
  1501.  postmaster at 2:281/527, and have the attributes p)rivate, k)ill and
  1502.  l)ocal added.
  1503.  This can be useful for people who gate messages to internet.
  1504.  
  1505.  --
  1506.  
  1507.  Action Semaphore c:\frodo\sems\areafix.sem
  1508.  
  1509.  This will create (or touch) a semaphore called areafix.sem. You may use
  1510.  this to create semaphores that will start Areafix only when a message to
  1511.  areafix was actually encountered by NetMgr (as opposed to running areafix
  1512.  after every mailtoss).
  1513.  
  1514.  
  1515.  ┌───────────────────────────────┬───────────────────────────────────────
  1516.  │ MASK and ACTION in NetMgr.cfg │
  1517.  └───────────────────────────────┘
  1518.  
  1519.  A MASK must *always* have one or more corresponding ACTION(s) in
  1520.  netmgr.cfg. NetMgr will NOT run if anything is wrong in the config.
  1521.  Whenever you make any changes to the configuration file, please give it a
  1522.  test run to see if any syntax errors pop up.
  1523.  
  1524.  There are always 'pairs':
  1525.  
  1526.  Mask *, *, Harry Twit, *, *, *
  1527.  Action Delete
  1528.  
  1529.  Any message that matches the MASK will be deleted.
  1530.  
  1531.  --
  1532.  
  1533.  Mask *, *, *, 60:*/*.*, *, *
  1534.  Action Move !c:\bink\msgs\net2
  1535.  
  1536.  Any message addressed to a zone 60 address will be moved to the specified
  1537.  JAM area.
  1538.  
  1539.  --
  1540.  
  1541.  Mask *, *, *, *, *, +r
  1542.  Mask Move $c:\msgs\received
  1543.  
  1544.  All received messages will be moved to the specified Squish area.
  1545.  
  1546.  --
  1547.  
  1548.  Mask *, 2:281/527.0, *, *, *, +f
  1549.  Action Packmail 2:281/527.0 *
  1550.  
  1551.  This takes all file request messages, generated by 2:281/527, and
  1552.  properly generates a request out of it. The request will be addressed to
  1553.  the system that is also found in the 'destination address' field of the
  1554.  message (that makes sense) :-)
  1555.  
  1556.  
  1557.  Mask *, 2:281/527.0, *, 1:*/*.*, *, +l
  1558.  Action Packmail 2:281/527.0 1:138/211.0
  1559.  
  1560.  This will take all messages from 281/527, addressed to any zone 1 system,
  1561.  and pack them in a mailpacket addressed to 1:138/211.
  1562.  
  1563.  
  1564.  Mask *, 2:281/527.99, *, *, *, +l-c-h-d-a-f-u
  1565.  Action Packmail 2:281/527.99 2:281/527.0
  1566.  
  1567.  This will take all messages that originate from 2:281/527.99, that have
  1568.  the local bit set, and that are NOT crash, hold, direct, file attach, file
  1569.  request or update request. In other words: all 'normal' messages. These
  1570.  message are packed in a packet addressed to 2:281/527.0.
  1571.  
  1572.  In effect, all 'normal' messages would be routed to 2:281/527.0. And
  1573.  considering that 2:281/527.99 is a point off of 2:281/527, that makes sense:
  1574.  all normal messages are routed through the Boss node. File requests, crash
  1575.  messages and such are not: they need to be sent directly to the
  1576.  destination. That could be done with the following Mask/Action lines:
  1577.  
  1578.  Mask *, 2:281/527.99, *, *, *, +l
  1579.  Action Packmail 2:281/527.99 *:*/*.0
  1580.  
  1581.  If the above line would be placed in NetMgr.cfg *below* the Mask we just
  1582.  saw, we would only get to this mask if the message is indeed crash or file
  1583.  request and the like: otherwise they would already have been packed with
  1584.  the previous Mask/Action.
  1585.  
  1586.  This mask takes all message originating from 2:281/527.99 with the local
  1587.  flag set, and routes them to the Bossnode of the system found in the
  1588.  destination address of the message.
  1589.  For file requests, crash messages and comparable types of messages, this
  1590.  is usually the correct action: requests have to be dropped at the system
  1591.  directly in order to get the files. Crash messages are usually not routed
  1592.  (because you want to deliver them ASAP).
  1593.  And because points usually don't have a system online at all times, the
  1594.  messages are routed to the Bossnode (that often is online at all times)
  1595.  of that point.
  1596.  
  1597.  
  1598.  
  1599.  It is also possible to specify SEVERAL actions for one mask:
  1600.  
  1601.  Mask *, *, Pietje Puk, 2:281/527.0, *, *
  1602.  Action Bounce 2:281/527.0, c:\txt\newaddr.txt
  1603.  Action File c:\msgs\pietje.txt
  1604.  Action Forward Art, 2:281/527.0, Pietje Puk, 2:300/1.0, Readdressed mail, +l
  1605.  Action Delete
  1606.  
  1607.  Take a while to check this out. What it does is this:
  1608.  
  1609.  Whenever a mail addressed to 'Pietje Puk' on 2:281/527 is encountered,
  1610.  this message will be bounced back to the sender. The contents of the file
  1611.  'c:\txt\newaddr.txt' will be added at the top of the message (possibly
  1612.  explaining that Pietje now has a new email address).
  1613.  
  1614.  Then, the contents of the message will be written to a file (pietje.txt).
  1615.  
  1616.  The message will also be forwarded to 'Pietje Puk' on '2:300/1', which is
  1617.  Pietje's new netmail address (so he gets his message anyway).
  1618.  
  1619.  And finally, the original message is deleted.
  1620.  
  1621.  
  1622.  You can also use more than one Mask, and combine it with one or more
  1623.  actions!
  1624.  
  1625.  For example:
  1626.  
  1627.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  1628.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  1629.  Action Move $c:\fastecho\rcvdsent
  1630.  
  1631.  This will take all messages FROM Gerard van Essen (2:281/527) that are
  1632.  'sent', and also all message TO Gerard van Essen (2:281/527) that are
  1633.  received and moves these to a Squish message area (rcvdsent). In other
  1634.  words: all received and sent netmail is moved out of my primary netmail
  1635.  area.
  1636.  
  1637.  This means, that either the first Mask has to match, OR the second mask
  1638.  has to match. If either of them matches, he action will be performed. This
  1639.  is known to confuse users, if you also use 'NOT' in a certain mask. Some
  1640.  examples will hopefully clear this up a bit:
  1641.  
  1642.  Mask Gerard van Essen, *, *, *, *, *
  1643.  Action Delete
  1644.  
  1645.  This will delete a message if it is written by Gerard van Essen.
  1646.  
  1647.  Mask !Gerard van Essen, *, *, *, *, *
  1648.  Action Delete
  1649.  
  1650.  This will delete a message if it is NOT written by Gerard van Essen.
  1651.  
  1652.  Mask Gerard van Essen, *, *, *, *, *
  1653.  Mask Pietje Puk, *, *, *, *, *
  1654.  Action Delete
  1655.  
  1656.  This will delete a message if it is written by Gerard van Essen, OR if it
  1657.  is written by Pietje Puk. If any of the two masks match, the action will
  1658.  be performed.
  1659.  
  1660.  Mask !Gerard van Essen, *, *, *, *, *
  1661.  Mask Pietje Puk, *, *, *, *, *
  1662.  Action Delete
  1663.  
  1664.  This will delete a message is it is NOT written by Gerard van Essen, OR if
  1665.  it is written by Pietje Puk. If any of the two masks match, the action
  1666.  will be performed.
  1667.  
  1668.  In this case, a message written by 'Gerard van Essen' does not match the
  1669.  first mask (that one matches only messages that are NOT written by Gerard
  1670.  van Essen), nor does it match the second mask (that one only matches
  1671.  messages written by Pietje Puk). The 'Action Delete' will not be
  1672.  performed.
  1673.  
  1674.  A message written by 'Jos Verstappen' does match the first Mask (Jos
  1675.  Verstappen is 'NOT Gerard van Essen' so that is a match with the first
  1676.  mask. The 'Action Delete' is performed.
  1677.  
  1678.  Mask !Gerard van Essen, *, *, *, *, *
  1679.  Mask !Pietje Puk, *, *, *, *, *
  1680.  Action Delete
  1681.  
  1682.  This will delete a message if it is NOT written by Gerard van Essen, OR if
  1683.  it is NOT written by Pietje Puk. If any of the two masks match, the action
  1684.  will be performed.
  1685.  
  1686.  In this case, a message written by 'Gerard van Essen' does not match the
  1687.  first mask (that one matches only messages that are NOT written by Gerard
  1688.  van Essen), but it does it match the second mask (that one matches
  1689.  messages NOT written by Pietje Puk). And since 'Gerard van Essen' is 'NOT
  1690.  Pietje Puk', it matches the second Mask.
  1691.  The 'Action Delete' will be performed.
  1692.  
  1693.  A message written by 'Jos Verstappen' does match the first Mask (Jos
  1694.  Verstappen is 'NOT Gerard van Essen' so that is a match. The 'Action
  1695.  Delete' is performed.
  1696.  
  1697.  As you can see, ANY message matches one of the above masks!
  1698.  If a message is written by "gerard van essen", it will match the second
  1699.  mask.
  1700.  If a message is written by "pietje puk", it will match the first mask.
  1701.  If a message is written by anyone else, it will match either of the masks.
  1702.  So a message always matches at least one of the masks. With the above
  1703.  example, all messages in the netmail area would be deleted.
  1704.  
  1705.  
  1706.  Finally, you can also combine several masks with several actions.
  1707.  
  1708.  Mask Gerard van Essen, 2:281/527.0, *, *, *, +s
  1709.  Mask *, *, Gerard van Essen, 2:281/527.0, *, +r
  1710.  Action File c:\msgs\oldmail.txt
  1711.  Action Delete
  1712.  
  1713.  This will write all received and sent netmail to a file, and then delete
  1714.  it.
  1715.  
  1716.  ┌─────────────────────────┬────────────────────────────────────────────
  1717.  │ NetMgr's scanning logic │
  1718.  └─────────────────────────┘
  1719.  
  1720.  For each message found in the netmail area, NetMgr will scan the defined
  1721.  masks (for a certain 'ScanDir', see below) and check whether any of them
  1722.  matches.
  1723.  
  1724.  As soon as a match is found, all 'Actions' for that 'Mask' are performed
  1725.  (you can have more than one action for each Mask, as you now know).
  1726.  
  1727.  After all these Actions are performed, NetMgr will *not* scan for any more
  1728.  matching masks. It will simply go to the next message in the netmail area
  1729.  and start scanning for a match for that next message again.
  1730.  
  1731.  This means, that if you have TWO masks that actually match a certain
  1732.  message, only the first one that is encountered will be found (and as a
  1733.  result only the actions that belong to that first mask will be performed).
  1734.  
  1735.  As an example, take these two mask/action combinations:
  1736.  
  1737.  Mask *, *, Pietje Puk, *, *, *
  1738.  Action Copy c:\fd\netmail
  1739.  
  1740.  Mask *, *, *, *, *, +c
  1741.  Action ReWrite *, *, *, *, *, -c
  1742.  
  1743.  Clearly, the user wants to reset all 'crash' bits with the second
  1744.  mask/Action combination.
  1745.  
  1746.  However, whenever a message to 'Pietje Puk' is encountered, NetMgr will
  1747.  perform the action for that mask (and copy the message to c:\fd\netmail)
  1748.  and then stop scanning.
  1749.  So in that case, the second mask will never be evaluated. Even if it does
  1750.  match (a crashmail message), the action for the second Mask will never be
  1751.  performed. If a message to Pietje Puk is marked as 'crash', it will be
  1752.  copied to the netmail area with the crash bit set.
  1753.  If you want to reset the crash bit, even for message to Pietje Puk, you
  1754.  can simply add the rewrite to the first mask as well, like this:
  1755.  
  1756.  Mask *, *, Pietje Puk, *, *, *
  1757.  Action ReWrite *, *, *, *, *, -c
  1758.  Action Copy c:\fd\netmail
  1759.  
  1760.  Mask *, *, *, *, *, +c
  1761.  Action ReWrite *, *, *, *, *, -c
  1762.  
  1763.  In this case, even messages to Pietje Puk will have their crash bit reset.
  1764.  Using this technique, anything you want can still be done. Just copy the
  1765.  Action statement and add them to the other masks as well.
  1766.  
  1767.  
  1768.  ┌────────────────────────┬──────────────────────────────────────────────
  1769.  │ eXtended Masks (XMASK) │
  1770.  └────────────────────────┘
  1771.  
  1772.  NetMgr offers another kind of mask: the eXtended mask (XMASK). As the
  1773.  name implies, these masks offer more than a standard mask. Xmasks allow
  1774.  the user to specify more criteria for the search.
  1775.  
  1776.  If this is the first time you are looking into NetMgr, it might be a
  1777.  good idea to either skip this section, or just glance through it a bit
  1778.  to see what is possible.
  1779.  You can do a lot with just standard masks, and it might be wise to play
  1780.  around with them a bit before going a step further and dive into
  1781.  extended masks as well.
  1782.  
  1783.  XMASKS take a bit more room than a standard mask. They can be used
  1784.  together with standard masks (even mixed within the same config).
  1785.  
  1786.  To define an extended mask, use the XMASK keyword. An XMASK definition
  1787.  always starts with this keyword, and always ends with a line with only
  1788.  'End' on it. Between these two lines, search criteria are defined.
  1789.  
  1790.  An example:
  1791.  
  1792.  Xmask
  1793.    from   Gerard van Essen
  1794.  End
  1795.  
  1796.  This defines an XMASK, that looks for messages that are FROM: 'Gerard
  1797.  van Essen'.
  1798.  
  1799.  You can specify more than one criterion. The number of criteria allowed
  1800.  for a mask is only limited by available memory.
  1801.  
  1802.  For a message to be a match, it must satisfy _all_ requirements that are
  1803.  defined. So, if you have:
  1804.  
  1805.  Xmask
  1806.    from   Gerard van Essen
  1807.    to     pietje puk
  1808.  End
  1809.  
  1810.  A message is only a match when it is from 'Gerard van Essen' _and_ to
  1811.  'pietje puk'.
  1812.  
  1813.  The following keywords can be used in an XMASK:
  1814.  
  1815.  from      - who the message is from
  1816.  to        - who the message is to
  1817.  subject   - the subject of the message
  1818.  attr      - attributes of a message (like +a-p etc, like a standard mask)
  1819.  kludge    - a search text to be found in the kludges of a message
  1820.  body      - a search text to be found in the body of a message
  1821.  
  1822.  bodybytes <n> - how many bytes of the message body must be searched to find
  1823.                  the string(s) specified to find in the body.
  1824.  bodylines <n> - how many lines of the body to search, or actually
  1825.                  paragraphs, separated by a CR (ASCII 13, '\r').
  1826.  
  1827.  orig      - origination address of the message (like 2:281/527.0 - always 4D)
  1828.  dest      - destination address of the message (like 2:281/527.0 - always 4D)
  1829.  
  1830.  olderwritten <n>   - 'Date written' of the message must be older than n days.
  1831.  olderprocessed <n> - 'Date processed' of the message must be older than n
  1832.                        days (JAM, Squish, SDM).
  1833.  olderread <n>      - 'Date msg read by recipient' of the message must be
  1834.                        older than n days (JAM only).
  1835.  
  1836.  
  1837.  When searching for a string (from, to, subject, body, kludges), you can
  1838.  also enclose a string in either single or double quotes. This gives you
  1839.  the opportunity to search for trailing and/or leading spaces.
  1840.  
  1841.  Even when quotes are used, the ~ (substring) and ! (NOT search) tokens
  1842.  are still supported, just like in normal MASKs. These tokens must be
  1843.  entered inside the quote, so "~gerard" will look for the substring
  1844.  'gerard' to be present anywhere.
  1845.  
  1846.  
  1847.  AND and OR searches.
  1848.  --------------------
  1849.  
  1850.  Specifying a certain keyword more than once, gives you an AND search. As
  1851.  mentioned before, _all_ requirements that are defined must be met. So
  1852.  specifying ...
  1853.  
  1854.  Xmask
  1855.    body "gerard"
  1856.    body "timed"
  1857.  End
  1858.  
  1859.  ... will look for messages that have 'gerard' AND 'timed' in the body.
  1860.  
  1861.  However, you can also do an OR search, by specifying more than one
  1862.  element on the same line, always enclosed in quotes and separated by the
  1863.  OR keyword, like this:
  1864.  
  1865.  Xmask
  1866.    body "gerard" OR "timed"
  1867.  End
  1868.  
  1869.  This will look for messages that have 'gerard' in the body, OR that have
  1870.  'timed' in the body.
  1871.  
  1872.  You can also do a similar thing with addresses:
  1873.  
  1874.  Xmask
  1875.    orig 2:*/*.* OR 1:*/*.*
  1876.  End
  1877.  
  1878.  This will look for message originating from either zone 2 or zone 1.
  1879.  You can also do an AND search with addresses:
  1880.  
  1881.  Xmask
  1882.    orig 2:*/*.*
  1883.    orig !2:281/527.*
  1884.  End
  1885.  
  1886.  This will look for messages originating from zone 2, and NOT from node
  1887.  2:281/527 or any of its points.
  1888.  
  1889.  NetMgr also allows the OR construction for attributes. So something
  1890.  like this is also possible:
  1891.  
  1892.  XMASK
  1893.      From Gerard van Essen
  1894.      Orig 2:281/527.0
  1895.      Attr +c OR +a+l OR +f-c
  1896.  END
  1897.  
  1898.  This mask will match all messages that are flavoured crash, or are
  1899.  flavoured 'attach' and 'local', or flavoured 'request' but NOT crash.
  1900.  
  1901.  Please note that this construction is not valid for the attributes that
  1902.  need to search the nodelist (# and @). You can specify these attributes
  1903.  like this, but they are checked once, separately from the other
  1904.  attributes.
  1905.  So you cannot specify:
  1906.  
  1907.  Attr +c-@ OR -c+@
  1908.  
  1909.  or something similar. You can only specify these attributes once and they
  1910.  will then be carried over to all other attribute masks. In other words,
  1911.  specifying this:
  1912.  
  1913.  Attr +c-@ OR +l
  1914.  
  1915.  will actually be expanded to:
  1916.  
  1917.  Attr +c-@ OR +l-@
  1918.  
  1919.  
  1920.  Using files as input for a search item.
  1921.  ---------------------------------------
  1922.  
  1923.  Finally, for from, to, subject, kludges, body, orig and dest, you can
  1924.  also specify a filename as input. The filename must be preceded by a
  1925.  '<', like this:
  1926.  
  1927.  to  <c:\data\names.txt
  1928.  
  1929.  The file itself should consist of a number of lines, all with one
  1930.  string/address to look for. If any of the strings/addresses are found,
  1931.  this will be considered a match (so that is an 'OR' search).
  1932.  
  1933.  In the case of the example with names.txt above, the file could look
  1934.  like this:
  1935.  
  1936.  -=-
  1937.  Areafix
  1938.  Areamgr
  1939.  SQafix
  1940.  -=-
  1941.  
  1942.  Any message addressed to 'Areafix', OR 'Areamgr' OR 'SQafix' will be a
  1943.  match.
  1944.  Leading and trailing spaces on a line in the file will be stripped.
  1945.  Quotes are not allowed. However, use of the '~' and '!' tokens _is_
  1946.  allowed.
  1947.  
  1948.  
  1949.  Using an XMASK.
  1950.  ---------------
  1951.  
  1952.  One or more XMASKs must be combined with one or more actions (they are
  1953.  just like a standard MASK in this respect):
  1954.  
  1955.  XMASK
  1956.    from  Gerard van Essen
  1957.  End
  1958.  Action Delete
  1959.  
  1960.  So apart from the fact that an XMASK is spread over more than one line,
  1961.  using it a the same as a standard MASK.
  1962.  
  1963.  You can also define an XMASK, give it a name, and use it later on in the
  1964.  .cfg file. To define an XMASK, use the 'DefineXmask' keyword:
  1965.  
  1966.  DefineXmask <mask name>
  1967.    ...
  1968.    <mask criteria>
  1969.    ...
  1970.  End
  1971.  
  1972.  Like this:
  1973.  
  1974.  DefineXmask personal
  1975.     to "Gerard van Essen" OR "gerard van.essen" OR "art" OR "Geer art"
  1976.  End
  1977.  
  1978.  Later on, you can then use the XMASK named personal again:
  1979.  
  1980.  XMASK personal
  1981.  Action Move $c:\mail\personal
  1982.  
  1983.  This gives you the opportunity to make the Mask/Action combination a bit
  1984.  more compact and (hopefully) clear.
  1985.  
  1986.  The ability to define XMASKs without a directly connected action is also
  1987.  exploited to allow posting messages from the command line (see special
  1988.  section about this).
  1989.  
  1990.  
  1991.  ┌────────────────────────────────────┬─────────────────────────────────
  1992.  │ Areas to scan: the ScanDir keyword │
  1993.  └────────────────────────────────────┘
  1994.  
  1995.  There's one more important keyword in NetMgr.cfg, and that's the ScanDir
  1996.  keyword.
  1997.  
  1998.  This will give NetMgr an area to Scan for messages that match a Mask.
  1999.  
  2000.  Example:
  2001.  
  2002.  ScanDir c:\fd\netmsgs
  2003.  
  2004.  The default is a *.MSG area, but:
  2005.  
  2006.  A '$' in front of an area indicates a Squish style area.
  2007.  A '!' in front of an area indicates a JAM style area.
  2008.  A '#' in front of an area indicates a Hudson style area.
  2009.  
  2010.  You can have as many of these as you like, NetMgr will scan each and every
  2011.  one of them. But, just as a certain action is related to a certain mask,
  2012.  certain action/mask combinations are related to a ScanDir statement.
  2013.  
  2014.  When a ScanDir statement is found in NetMgr.cfg, all Mask/Action
  2015.  combinations following that ScanDir up to the next ScanDir statement will
  2016.  (only) be valid for that particular ScanDir.
  2017.  
  2018.  ScanDir c:\fd\netmail
  2019.  
  2020.  Mask A
  2021.  Action ..
  2022.  Action ..
  2023.  
  2024.  Mask B
  2025.  Action ..
  2026.  
  2027.  Mask C
  2028.  Action ..
  2029.  
  2030.  ScanDir c:\fd\usenet
  2031.  
  2032.  Mask D
  2033.  Action ..
  2034.  
  2035.  In the above example, c:\fd\netmail will be scanned for Mask A, B and C,
  2036.  but not for Mask D.
  2037.  c:\fd\usenet will (only) be scanned for Mask D.
  2038.  
  2039.  You can also specify more than one ScanDir, followed by one or more Masks.
  2040.  All ScanDirs will be scanned for those masks.
  2041.  
  2042.  ScanDir c:\fd\usenet
  2043.  ScanDir $c:\fd\netmail
  2044.  
  2045.  Mask E
  2046.  Action
  2047.  
  2048.  In the above example, both c:\fd\usenet and $c:\fd\netmail will be scanned
  2049.  for mask E.
  2050.  
  2051.  
  2052.  Renumbering *.MSG areas.
  2053.  ------------------------
  2054.  
  2055.  For *.MSG areas, you can specify the optional 'renum' keyword when you
  2056.  define the area using the 'ScanDir' keyword.. After scanning the area,
  2057.  NetMgr will then renumber the area (and adjust the lastread pointer
  2058.  when necessary).
  2059.  
  2060.  Example of such a definition:
  2061.  
  2062.  ScanDir c:\fd\netmail renum
  2063.  
  2064.  
  2065.  ┌───────────────────────┬───────────────────────────────────────────
  2066.  │ Automatic AKAmatching │
  2067.  └───────────────────────┘
  2068.  
  2069.  NetMgr has AKAmatching capabilities, that can be used in several
  2070.  places.
  2071.  
  2072.  In order to let NetMgr do this, add all the addresses you might want to
  2073.  use to NetMgr.cfg (multiple 'homeaddress' statements are allowed).
  2074.  By default, NetMgr can do the matching for you without any further info.
  2075.  
  2076.  This option is interesting if you have more than 1 address.
  2077.  NetMgr can then be ordered to find the most appropriate address to use
  2078.  when writing a message.
  2079.  
  2080.  Say, for example, that you have two addresses: 2:281/527 and
  2081.  60:100/112.
  2082.  
  2083.  If you write a messages to 2:500/133, you probably want to use
  2084.  your 2:281/527 address.
  2085.  If you write a message to 60:100/1, you probably want to use
  2086.  your 60:100/112 address.
  2087.  
  2088.  In this case, NetMgr would try to find the address (AKA) that 'matches'
  2089.  the destination address best.
  2090.  
  2091.  It first looks for a matching zone, and if more than one match
  2092.  is found, it'll try to find an address where both 'zone' and
  2093.  'net' match. If there is still more than one match after that,
  2094.  it will just take the first match.
  2095.  
  2096.  If you want to make exceptions to these matching rules, or if you want to
  2097.  do AKAmatching _within_ a certain net, you can force NetMgr to use
  2098.  certain AKA by using the AKAFORCE keyword in NetMgr.cfg.
  2099.  
  2100.  Where does it work?
  2101.  
  2102.  First of all, NetMgr can pick the correct AKA to use when generating a
  2103.  new message using one of the BOUNCE, XBOUNCE, MakeMsg or Forward
  2104.  actions.
  2105.  
  2106.  In order to let NetMgr pick an appropriate address, use '@myaka' instead
  2107.  of a 4D address. For example:
  2108.  
  2109.  Action Bounce @myaka c:\txt\bounce.txt
  2110.  
  2111.  Or:
  2112.  
  2113.  Action Xbounce c:\txt\bounce.txt The Bouncer, @myaka, *, *, Go away!, *
  2114.  
  2115.  You can also use the AKA matching with REWRITE. This is probably only
  2116.  useful when you are currently using NetMgr already to do AKAmatching with
  2117.  several masks. You may now be able to do it with one mask/action:
  2118.  
  2119.  Mask Gerard van Essen, *, *, *, *, +l
  2120.  Action Rewrite *, @myaka, *, *, *, *
  2121.  
  2122.  
  2123.  Finally, you can also use it for the PackMail and MoveMail actions, for
  2124.  the origination address:
  2125.  
  2126.  Action PackMail @myaka *
  2127.  
  2128.  This will pack all mail directly to their destination, and use a matching
  2129.  AKA in the packet header as origination address. Please note that this
  2130.  (obviously!) does not have any effect on the addresses used within the
  2131.  packed messages! Only the packet header is affected by this!
  2132.  
  2133.  
  2134.  ┌──────────────────────────────┬────────────────────────────────────
  2135.  │ Other keywords in netmgr.cfg │
  2136.  └──────────────────────────────┘
  2137.  
  2138.  
  2139.  HOME
  2140.  ====
  2141.  
  2142.  Example:
  2143.  
  2144.  Home 2:281/527.0
  2145.  
  2146.  Your address. The zone is used as a default value for 'zoneless' messages
  2147.  (only *.MSG style areas).
  2148.  It is also used for Binkley style netmail packing: netmail for the zone of
  2149.  the 'home' address is placed in the directory defined with the 'OutBound'
  2150.  keyword in NetMgr.cfg.
  2151.  
  2152.  It is allowed to put in this statement more than once. This can be
  2153.  useful if you want to use NetMgr's AKAmatching capabilities (see
  2154.  special section on AKAmatching elsewhere in this document).
  2155.  
  2156.  
  2157.  ORIGIN
  2158.  ======
  2159.  
  2160.  Origin   NetMgr, (c) 1992-'94  Gerard van Essen
  2161.  
  2162.  
  2163.  An origin line, will be used for EchoCopy and EchoMove.
  2164.  
  2165.  INTLFORCE
  2166.  =========
  2167.  
  2168.  If you add this to your NetMgr.cfg, timEd will _force_ an INTL kludge
  2169.  on any netmail it somehow writes (this includes messages touched
  2170.  through a REWRITE, COPY/MOVE etc).
  2171.  
  2172.  
  2173.  AKAFORCE
  2174.  ========
  2175.  
  2176.  Format:
  2177.  
  2178.  AKAFORCE <mask> <address to use>
  2179.  
  2180.  With this statement, you can influence NetMgr's AKAmatching
  2181.  capabilities. In several places, you can let NetMgr do AKAmatching
  2182.  automatically. However, in some cases the automatic matching might not
  2183.  come up with the address you wanted. With AKAforce, you can force
  2184.  NetMgr to use a certain address in certain situations.
  2185.  
  2186.  example:
  2187.  
  2188.  AKAFORCE 50:*/*.* 49:500/1
  2189.  
  2190.  This means: always use 49:500/1 as address when mail is sent to any zone
  2191.  50 address. This forcing will take precedence over 'automatic'
  2192.  akamatching.
  2193.  
  2194.  
  2195.  LOG
  2196.  ===
  2197.  
  2198.  Log c:\tc\netmgr\netmgr.log
  2199.  
  2200.  
  2201.  The location and name of your logfile. Leave this keyword out if you don't
  2202.  want a logfile.
  2203.  
  2204.  
  2205.  FRODOLOG
  2206.  ========
  2207.  
  2208.  If the keyword 'Frodolog' is included in NetMgr.cfg, NetMgr will generate
  2209.  a logfile that looks like the logfile that FrontDoor generates. If you
  2210.  leave this keyword out, NetMgr will generate a Binkley style logfile.
  2211.  
  2212.  
  2213.  JAMLOG
  2214.  ======
  2215.  
  2216.  For JAM areas, NetMgr now write NETMAIL/ECHOMAIL.JAM. Add the keyword
  2217.  'JAMLOG' to NetMgr.cfg and give the directory to put the files in.
  2218.  
  2219.  Example:
  2220.  
  2221.  JamLog c:\fd\msgbase\
  2222.  
  2223.  
  2224.  HUDSONPATH
  2225.  ==========
  2226.  
  2227.  The location of your Hudson message base. Use this only if you actually
  2228.  have a Hudson base.
  2229.  
  2230.  Hudsonpath C:\Tosser\Msgbase
  2231.  
  2232.  
  2233.  NODELIST
  2234.  ========
  2235.  
  2236.  This gives the path to the Version7 nodelist. You may need this keyword if
  2237.  you want to use the special nodelist attributes ('@' and '#') that NetMgr
  2238.  supports to check whether an address is listed in the nodelist or not.
  2239.  Leave this out if you do not have a Version 7 nodelist.
  2240.  
  2241.  
  2242.  FDNODELIST
  2243.  ==========
  2244.  
  2245.  This gives the path to the Frontdoor or Intermail nodelist. You may need
  2246.  this keyword if you want to use the special nodelist attributes ('@' and
  2247.  '#') that NetMgr supports to check whether an address is listed in the
  2248.  nodelist or not. Leave this out if you do not have a FrontDoor or
  2249.  Intermail nodelist.
  2250.  
  2251.  
  2252.  GIGONODELIST
  2253.  ============
  2254.  
  2255.  This gives the path to the GIGO nodelist index. You may need this keyword
  2256.  if you want to use the special nodelist attributes ('@' and '#') that
  2257.  NetMgr supports to check whether an address is listed in the nodelist or
  2258.  not. Leave this out if you do not have a GIGO nodelist. NetMgr includes a
  2259.  special compiler made by Jason Fesler (1:203/7707) to generate GIGO
  2260.  indexes.
  2261.  
  2262.  The GIGO index is pretty small (less than 100 kB for the current world
  2263.  nodelist), so if you do not have a Version7 nodelist nor a Frodo nodelist,
  2264.  you might want to make one.
  2265.  
  2266.  
  2267.  NODELISTCACHE
  2268.  =============
  2269.  
  2270.  To speed up nodelist access to regularly checked nodes, there is a simple
  2271.  cache system for the nodelist checking: the last few nodes that were
  2272.  checked in the nodelist will be cached in a small file that is saved to
  2273.  disk at exit. For a new run, NetMgr will read this file and keep it in
  2274.  memory to check it before actually doing a lookup in the nodelist on
  2275.  disk. The number of nodes that are 'remembered' in such a way is
  2276.  configurable with the keyword 'CacheSize' (see below).
  2277.  
  2278.  The 'NodeListCache' keyword gives a path (not a filename, just the path)
  2279.  to store this 'cache file' with nodes. The name of this file will always
  2280.  be 'nodes.buf'.
  2281.  
  2282.  * Important: When you update/recompile your nodelist, erase the 'cache
  2283.    file', as the data that is cached may be invalid after the nodelist
  2284.    update! A node that is marked as 'unlisted' in the cache, may actually
  2285.    be listed after the nodelist is updated, and v.v.!
  2286.  
  2287.  
  2288.  CACHESIZE
  2289.  =========
  2290.  
  2291.  With this keyword you can define the number of nodes to keep in the
  2292.  nodelist cache. If you usually have mail to 100 different addresses in
  2293.  your netmail area, set it to at least 100.
  2294.  
  2295.  Example:
  2296.  
  2297.  CacheSize 250
  2298.  
  2299.  
  2300.  OUTBOUND
  2301.  ========
  2302.  
  2303.  This has to point to your Binkley style primary outbound directory. It is
  2304.  required if you want to use the netmail packing capabilities that NetMgr
  2305.  offers (PackMail action).
  2306.  
  2307.  NetMgr can create names for outbound directories other than the default
  2308.  zone (names like: C:\BT\OUT.006) itself, so one 'OutBound' statement is
  2309.  all you need to specify in order to send mail to all zones.
  2310.  Domains are not supported.
  2311.  
  2312.  Example:
  2313.  
  2314.  OutBound c:\bt\out
  2315.  
  2316.  If my the zone of my primary address (as specified in the Home keyword in
  2317.  NetMgr.cfg) is for example 2:, this will put all mail for zone 2: in the
  2318.  directory "c:\bt\out". Mail for zone 1 will be put in "c:\bt\out.001" etc.
  2319.  
  2320.  
  2321.  ┌──────────────────────────────────────────────────┬───────────────────────
  2322.  │ Posting files as a message from the command line │
  2323.  └──────────────────────────────────────────────────┘
  2324.  
  2325.  In order to post a file as a message, use the POST command on the
  2326.  commandline.
  2327.  
  2328.  To do a post, you first need to define an XMASK with DefineXMask in
  2329.  NetMgr.cfg. In that mask, specify "from", "to", "subject", and "orig" for
  2330.  echomail messages. For netmail messages, you need to add "dest" as well.
  2331.  Adding 'attr' is allowed, but not required. If you don't specify any
  2332.  attributes, NetMgr will default to (only) the 'local' attribute.
  2333.  
  2334.  When generating the message, NetMgr will use the info in this XMASK to
  2335.  generate the header for the message.
  2336.  
  2337.  On the command line, you specify which xmask to use, what file to use as
  2338.  body, the area to post in, and whether or not the area is an echomail
  2339.  area. To do this, the following command line options are available:
  2340.  
  2341.  -x : specify XMASK to use
  2342.  -a : specify area to use (use leading !, # or $ to indicate msgbase format)
  2343.  -e : specified area is an echomail area
  2344.  -f : ASCII file to use as body for the message
  2345.  
  2346.  Full example:
  2347.  
  2348.  Provided the following XMASK is defined in NetMgr.cfg:
  2349.  
  2350.  DefineXmask netpost
  2351.  
  2352.     from    Gerard van Essen
  2353.     to      NetMgr User
  2354.     subject Answer to your query
  2355.     orig    2:281/527.0
  2356.     dest    2:2/0.0
  2357.  
  2358.  End
  2359.  
  2360.  The following command line...
  2361.  
  2362.  NetMgr POST -xnetpost -a$c:\fd\netmail -fc:\txt\canned.rep
  2363.  
  2364.  ... would generate a new netmail message in the Squish style area
  2365.  'c:\fd\netmail', with the header specified (i.e.: to 'NetMgr User', from
  2366.  'Gerard van Essen' etc), and with the textfile 'c:\txt\canned.rep' as
  2367.  the body.
  2368.  
  2369.  NetMgr will start up, read the config, open the area, post the message,
  2370.  and then exit immediately (without scanning the netmail area as is
  2371.  normally done).
  2372.  When the -e command line parameter is used, NetMgr will add tear- and
  2373.  origin lines as well.
  2374.  
  2375.  Provided the following XMASK is defined in NetMgr.cfg:
  2376.  
  2377.  DefineXmask rules
  2378.  
  2379.     from    Moderator
  2380.     to      All
  2381.     subject The monthly rules
  2382.     orig    2:281/527.0
  2383.  
  2384.  End
  2385.  
  2386.  The following command line...
  2387.  
  2388.  NetMgr POST -xrules -a!c:\echo\artware -fc:\txt\artware.rul -e
  2389.  
  2390.  ... would generate a new echomail message in the JAM style area
  2391.  'c:\echo\artware', with the header specified (i.e.: to 'All', from
  2392.  'Moderator' etc), and with the textfile 'c:\txt\artware.rul' as the body.
  2393.  
  2394.  
  2395.  ┌───────────────────────────────────┬─────────────────────────────────────
  2396.  │ Binkley style outbound management │
  2397.  └───────────────────────────────────┘
  2398.  
  2399.  NetMgr also offers some outbound management capabilities, usable from
  2400.  the command line. You can use one of the following commands on the
  2401.  command line:
  2402.  
  2403.  ■ POLL   : create a poll packet for a certain node.
  2404.  ■ GET    : create a filerequest for a certain node.
  2405.  ■ UPDATE : create an update request for a certain node.
  2406.  ■ SEND   : create a file attach for a certain node.
  2407.  ■ CHANGE : change mail status for mail waiting for a certain node.
  2408.  
  2409.  To support this, the following command line options are used:
  2410.  
  2411.  -s  : Status (also called 'flavour') of request/attach.
  2412.  -n  : New status for mail (used for 'CHANGE').
  2413.  -p  : Password to use for file request.
  2414.  -#  : Node address of node to request files from / send files to.
  2415.  -f  : File to send/request.
  2416.  
  2417.  The 'POLL'   command needs: -# and -s.
  2418.  The 'GET'    command needs: -#, -f and -s (optional: -p).
  2419.  The 'UPDATE' command needs: -#, -f and -s (optional: -p).
  2420.  The 'SEND'   command needs: -#, -f and -s.
  2421.  The 'CHANGE' command needs: -#, -s and -n.
  2422.  
  2423.  For the '-s' and '-n' options, the following flavours can be used:
  2424.  normal, crash, imm, hold, dir.
  2425.  
  2426.  Examples:
  2427.  
  2428.  NetMgr POLL -#2:281/527 -scrash
  2429.  
  2430.  Poll node 2:281/527, crash status.
  2431.  
  2432.  
  2433.  NetMgr GET -#2:500/133 -fnewfiles -shold -psecret
  2434.  
  2435.  Request from node 2:500/133, with 'hold' status, the file 'NEWFILES' and
  2436.  use 'secret' as password for this request.
  2437.  
  2438.  
  2439.  NetMgr SEND -fc:\autoexec.bat -simm -#1:138/211
  2440.  
  2441.  Attach the file c:\autoexec.bat, with 'immediate' status, to 1:138/211.
  2442.  
  2443.  
  2444.  NetMgr CHANGE -snormal -ncrash -#2:281/527.5
  2445.  
  2446.  Change the flavour of all mail destined for 2:281/527.5 flavoured
  2447.  'normal' to a new flavour of 'crash'.
  2448.  
  2449.  For any of the above to work, you need to have the 'OutBound' keyword
  2450.  defined in NetMgr.cfg.
  2451.  
  2452.  
  2453.  ┌───────────────────────────────┬─────────────────────────────
  2454.  │ Other Command line parameters │
  2455.  └───────────────────────────────┘
  2456.  
  2457.  There are three other command line parameters:
  2458.  
  2459.  -D
  2460.  
  2461.  For 'debugging' purposes you can start netmgr with the -d command line
  2462.  switch. This will send NetMgr's interpretation of your config file to
  2463.  stdout.
  2464.  While scanning your netmail area, it will also send some info about the
  2465.  headers of the messages to stdout.
  2466.  You can easily redirect it to a file (netmgr -d > debug.txt) for
  2467.  inspection.
  2468.  
  2469.  In case of any problems with NetMgr, use this switch to determine what
  2470.  exactly is the problem!
  2471.  
  2472.  --
  2473.  
  2474.  -C
  2475.  
  2476.  Here you can specify the name of an alternative Config file. For example:
  2477.  
  2478.  NetMgr -Cc:\netmgr\mycfg.txt
  2479.  
  2480.  --
  2481.  
  2482.  -Q
  2483.  
  2484.  Enables 'quiet' mode. Hardly anything is written to the screen in this
  2485.  case. This speeds up processing a bit.
  2486.  
  2487.  
  2488.  ┌─────────────┬─────────────────────────────────────────────────────────
  2489.  │ Errorlevels │
  2490.  └─────────────┘
  2491.  
  2492.  Three possibilities:
  2493.  
  2494.  0   : No errors, no work done.
  2495.  1   : No errors, something done (move, copy, bounce or whatever. Anything.)
  2496.  254 : Error occurred (out of memory, config error etc).
  2497.  
  2498.  
  2499.  
  2500.  Some bits and pieces..:
  2501.  
  2502.  * NetMgr was compiled using Watcom C/C++ v10.0.
  2503.  
  2504.  * NetMgr source code is not and will not be available.
  2505.  
  2506.  
  2507.  
  2508.  The author can be reached...
  2509.  
  2510.  The best thing is to hook into the ARTWARE support echo. I give support for
  2511.  my products there. It can be found in several places (see support.txt).
  2512.  It's also on the American Backbone!
  2513.  
  2514.  
  2515.  Gerard van Essen
  2516.  FidoNet: 2:281/527
  2517.  Contrast BBS, 31-70-3234903 (V34+, V32bis, V32Terbo, V.FC, HST 16k8)
  2518.  Internet: art@users.toolnet.org
  2519.  
  2520.  
  2521.  Have fun.
  2522.  
  2523.