home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-14 | 88.2 KB | 2,703 lines |
-
-
- ITRACK 1
-
-
-
-
- -------------------------------------------------------------------
-
- ITRACK 1.0 A Messagetracker or more ? 14.Feb.1993
-
- A product of IMAIL INC
-
- -------------------------------------------------------------------
-
- (C) by Frank Prade 1992, Munich,
-
- Fido : 2:246/55.0
- Virnet : 9:494/0
- IntlNet : 57:4989/105
-
-
-
-
- --------> IMPORTANT !!! <---------
-
-
-
-
- If the program reports an error or does not work properly, please
- check the setup first. If you cannot determine the error, please
- let me know (with as much details as you can give me). If you have
- other reports, proposals, suggestions, please let me know.
-
- ITRACK 2
-
-
-
-
- ──────────────────────────────────────────────────────────────────
- COPYRIGHT
- ──────────────────────────────────────────────────────────────────
-
- This software and anything enclosed in the original archive are
- protected by both German and international copyright law and
- treaty provisions.
-
- ITRACK is NOT Public-Domain or Freeware, it is released as
- Shareware. If you intend to use this program after a trial
- period of 30 days, you must register ( see REGISTER.DOC ) your copy
- of ITRACK or stop using it.
-
- You are entitled and encouraged to give this program together with
- its documentation to anybody, if you do not change the contents
- of the archive or the program itself. Distributing of modified
- versions is prohibited.
-
- You are not allowed to charge for passing the program to another
- person or system.
-
- The distribution of the program by professionals is prohibited (who
- will violate one of the above restrictions), except you have the
- prior written permission of the author.
-
- Disclaimer and Warranty :
-
- This software is provided AS IS without any warranty, expressed or
- implied, including but not limited to fitness for a particular
- purpose.
-
- The author will not be liable for any direct or consequential
- damages due to loss of data or any other reason, the person using
- the software bears all risk as to the quality and performance of
- the software.
-
- If your local laws do not permit any of the statements made above,
- or if you do not agree with any of them yourself, then you are not
- licensed to use this program!
-
- Bug reports, questions and suggestions are appreciated by the
- author and can be send to :
-
- Frank Prade, 2:246/55.0 @ Fidonet, Marder's Node
- 9:494/0 @ Virnet
- 57:4989/105 @ IntlNet
-
- ITRACK 3
-
-
-
-
- ──────────────────────────────────────────────────────────────────
- TRADEMARKS and COPYRIGHT's
- ──────────────────────────────────────────────────────────────────
-
- The following programs mentioned in this documentation are
- copyrighted.
-
- Turbo Pascal 6.0 Borland International
- Tosscan Joaquim H. Homrighausen
- IMAIL <= 1.35 Fabiano Fabris
- IMAIL > 1.35 Imail Inc.
- Remote Access Andrew Milner
- SuperBBS Aki Antmann
-
-
-
-
- ------------------------------------------------------------------
- HISTORY
- ------------------------------------------------------------------
-
-
- 1.0 This first Release Version
-
- 1.0 /G?? look into History.txt for Gamma History Changes
-
- ITRACK 4
-
-
-
-
- Overview
-
- 1 General 7
- 1.1 Requirements 7
- 1.2 General Syntax 7
- 1.3 Filepaths 8
- 1.4 Environment Variables 9
- 1.5 TIMEZONE Environment Variable 9
- 1.6 Expandable Strings 10
- 1.7 Wildcards 10
- 1.8 Nodenumbers 10
- 1.8.1 Nodenumber matching 10
- 1.8.2 Templates 11
- 1.9 Updating fido style messages (ITRTMP.#) 11
- 2 Syntax 12
- 2.1 General Configuration Statements 12
- 2.1.1 LOGFILE [<logfilename> [<logfileintros>]] 12
- 2.1.2 TEMPLATEPATH <Path-Name> 13
- 2.1.3 INCLUDEPATH <Path-Name> 13
- 2.1.4 TIMESTAMPPATH <Path-Name> 13
- 2.1.5 TIMEZONE <Offset> [<Begin> <End>] 13
- 2.1.6 MAINADDRESS <mainaddress> [<domain> [<pointnet>]] 13
- 2.1.7 SHARING Yes|No|ja 14
- 2.1.8 BINKLEY Yes|No|ja 14
- 2.2 DATA <datatype> [<blockname>] 14
- 2.2.1 DATA NODELIST [<blockname>] 15
- 2.2.2 DATA ADDRESS [<blockname>] 16
- 2.2.3 DATA READDRESSLIST [blockname>] 16
- 2.2.4 DATA READDRESSNAME [<blockname>] 17
- 2.2.5 Data ROUTING <blockname> 17
- 2.2.6 DATA FDSEMAPHOR [<blockname>] 18
- 2.2.7 DATA NAME [<blockname>] 19
- 2.2.8 DATA PASSWORDNAME [<blockname>] 21
- 2.2.9 DATA PASSWORDADDRESS [<blockname>] 22
- 2.2.10 DATA ADDRESSNAME [<blockname>] 22
- 2.2.11 DATA ADDRESSPACKER [<blockname>] 22
- 2.2.12 DATA LENGTHADDRESS [<blockname>] 23
- 2.2.13 DATA MESSAGEAGE [<blockname>] 23
- 2.2.14 DATA MESSAGELENGTH [<blockname>] 24
- 2.2.15 DATA PROCESSAGE [<blockname>] 24
- 2.2.16 DATA SYSTEM [<blockname>] 25
- 2.2.17 DATA POINT [<blockname>] 25
- 2.2.18 DATA PATH [<blockname>] 26
- 2.2.19 DATA ALIAS [<blockname>] 26
- 2.2.20 DATA FILEAREAS <blockname> 27
- 2.2.21 DATA ATTRIBUTE [<blockname>] 27
- 2.2.22 DATA STRINGS [<blockname>] 31
- 2.2.23 DATA TIMESLOT [<blockname>] 31
- 2.2.24 DATA DAYOFWEEK [<blockname>] 32
- 2.2.25 DATA DATE [<blockname>] 32
-
- ITRACK 5
-
-
-
-
- 2.2.26 DATA DATEADDRESS [<blockname>] 32
- 2.2.27 DATA EVENT [<blockname>] 33
- 2.2.28 DATA FILES [<blockname>] 33
- 2.3 DATA MACRO 34
- 2.4 Data grouping statements 34
- 2.4.1 ANDGROUP [<blockname>] 34
- 2.4.2 ORGROUP [<blockname>] 35
- 2.5 FIDOAREA <path> <area-name> [<systemlist>] 35
- 2.6 PKTAREA 35
- 2.7 TEXTAREA <filepath> <area-name> [<systemlist>] 36
- 2.8 COPYATTACH <PATH> 36
- 2.9 DELTRUNCATTACH 37
- 2.10 PACKER <packername> [<packer call>] 37
- 2.11 $INCLUDE <Filename> 37
- 2.12 RENUMBER <areaname> 37
- 2.13 PACKPKT [<semap>] <pktarea> <netmail> [<adresspacker>]37
- 2.14 Programming statements 38
- 2.14.1 SCAN <areaname> [<timestamp>] 38
- 2.14.2 SELECT[TO]|[FROM] <data> [..<data>] 39
- 2.14.3 POINTTO <point datablock> 40
- 2.14.4 POINTFROM <Point-Data-Block> 40
- 2.14.5 KILL 41
- 2.14.6 MOVE <areaname> 41
- 2.14.77 COPYAREA <areaname> 41
- 2.14.8 COPYGROUP <destination datablock> 41
- 2.14.9 CREATEGROUP <areaname> <destination datablock> 42
- 2.14.10 Reminder <areaname> <DATEADDRESS block> 42
- 2.14.11 READDRESSTO <readdresslist> [<template>] 43
- 2.14.12 READDRESSFROM <readdresslist> [<template>] 43
- 2.14.13 BOUNCE [<template>] 44
- 2.2.13 FORWARD [<template>] 44
- 2.14.14 ADDHEADER [<template>] 44
- 2.14.15 SETMESSAGETIME 44
- 2.14.16 EXEC <expandable string> 44
- 2.14.17 EXECONCE <expandable string> 44
- 2.14.18 TOUCH <expandable string> 45
- 2.14.19 TOUCHONCE <expandable string> 45
- 2.14.20 CHECKPATH <pathlistname> 45
- 2.14.21 FATTACH [<maxcount> [<maxlength>]] <paths|aliases> ..45
- 2.14.22 FILEMOVE <Fileareas Blockname> 46
- 2.14.23 ADDINTL 46
- 2.14.24 ZONEGATE 47
- 2.14.25 CREATERETURN [<Template>] 47
- 2.14.26 CREATEFORWARD [<Template>] 47
- 2.14.27 CREATEMAIL <Expandable String> 47
- 2.14.28 SPLIT <length> 49
- 2.14.29 CHANGEFROM <Expandable String> 50
- 2.14.30 CHANGETO <Expandable String> 50
- 2.14.31 CHANGESUBJECT <expandable string> 50
- 2.14.32 CHANGEATTR <expandable string> 50
-
- ITRACK 6
-
-
-
-
- 2.14.33 CLEARATTRIBUTE 50
- 2.14.34 SETATTRIBUTE <ATTRIBUTE blockname> 51
- 2.14.35 EXTLOG [<expandable string>] 51
- 2.14.36 LOGSTRING [<expandable string>] 51
- 2.14.37 WRITESTRING <filename> [<expandable string>] 51
- 2.14.38 TOSSCANFIX 51
- 2.14.39 IMAILFIX 51
- 2.15 Block Statements 52
- 2.15.1 BLOCK [<blockname>] 52
- 2.15.2 CALL <blockname> 52
- 2.16 Possible Template Macros 52
- 3 Calling Convention and Commandline-Parameters 56
- A. Credits 57
-
- ITRACK 7
-
-
-
-
- 1 General
-
- Is ITRACK a messagetracker or what else ???
-
- I don't think it is. I think it's a toolbox to handle messages and
- YOU will be able to program YOUR OWN messagetracker or more with
- it. :-))
-
- But what is a messagetracker for ?
-
- The main purpose for a messagetracker is to determine mails with
- unknown destination, and return them to the sender because of the
- costs of useless transportation. But if a program reads and
- analyzes the mail and writes them back, it would be nice to do some
- further processing like pointremapping, cosysop forwarding, looking
- for old messages or fixing the paths of routed files.
-
- ITRACK is designed to do the tasks you want in a flexible means
- programmable manner. That is maybe a problem for all of you not
- used in programming, but there will be sample configurations
- available.
-
- ITRACK works with a script like configuration file, with messages
- running through this Script like a program counter through a
- program. If new messages were created or multiple messages in an
- area scanned then the attached block is executed with all messages.
- Datablocks have no effect on the message.
-
- Please think about that. ITRACK itself will do nearly nothing for
- his own.
-
-
- 1.1 Requirements
-
- At least you need a Computer running MS-Dos Version 3.2 or above.
- There should be a minimum of 200k free main memory, but then you
- will not be able to run larger configurations. Recommended free
- memory is 350k, 512k preferred. If you have restrictions on memory,
- you may use the overlayed version.
-
-
- 1.2 General Syntax
-
- All lines beginning with a ';' will be treated as comments, also
- all empty lines.
-
- All configuration tokens are case insensitive.
-
- ITRACK 8
-
-
-
-
- Throughout the documentation, reserved words or tokens are
- uppercase.
-
-
- <......> has to be replaced by the real data
- [......] optional data (or Parameters in a Macro Statement)
- Data1 | Data2 Choice
- (A,X,K) A set of Characters for example XET
- blockname Reference of a named block.
- datablock A block containing data
- #END# Unique end of a block
- #ELSE# Unique end of a select block with else branch
-
- All lines except lines in datablocks begin with a special token
- followed by optional data or an #END# or #ELSE# token, ending a
- logical block.
-
-
- Examples
-
- SELECT MY_OWN
- COPYGROUP Cosysop
- #ELSE#
- POINTTO
- #END#
-
-
-
-
- 1.3 Filepaths
-
- For your own security you should not define relative paths, but you
- may use environment variables in the configuration file.
-
- The default directory for ITRACK is the current directory or if
- specified the directory where the ITRACK environment variable
- points.
-
- The configuration ITRACK will working with maybe specified on
- commandline. If no commandline switch /C is given ITRACK searches
- for "ITRACK.CFG". If a path is specified with the /C switch, this
- path gets the default path.
-
- If the configuration is not found in the default path, ITRACK will
- look in the path where the program is located.
-
- The path where the main configuration file is found, then will be
- the default path.
-
- ITRACK 9
-
-
-
-
- 1.4 Environment Variables
-
- In the the configuration file it's possible to use environment
- variables as parameters for string data, not for numbers or
- nodenumbers.
-
- The syntax is nearly the same as in batchprogramming: %<name>%
-
-
- Example :
-
- Logfile %ITRACK%\ITRACK.LOG
-
- will be substituted by
-
- Logfile C:\ITRACK\ITRACK.LOG
-
-
- with the assumption that there is a statement like the following in
- your startup batches.
-
- SET ITRACK=C:\ITRACK
-
-
- 1.5 TIMEZONE Environment Variable
-
- Unless otherwise defined by the TIMEZONE (see below) statement
- ITRACK reads and evaluates the TZ environment variable to compute
- UTC (Universal Time Coordinated) which is the same as GMT
- (Greenwich Mean Time). This time is used in the vialine which is
- added when ITRACK processes a message for the first time. When no
- offset is given ITRACK assumes that you want to have the local
- timezone in the vialine.
-
- If no TZ variable is given ITRACK cannot assume something about the
- timezone. In this case the timezonename in the Via-Line is skipped.
-
- Examples : Local Time Time in Vialine
-
- TZ= 20:25:13.19 20:25:13.19
- TZ=CET-2 20:25:13.19 18:25:13.19 UTC
- TZ=EST 20:25:13.19 20:25:13.19 EST
- TZ=EST+5 20:25:13.19 01:25:13.19 UTC
-
- ITRACK 10
-
-
-
-
- 1.6 Expandable Strings
-
- This is a string that is expanded during runtime with message or
- other data the same way as in templates and used for further
- actions.
-
- If you want to use a template macro in an expandable string you
- have to use %% to circumvent the environment expansion if an
- environment variable of the same name exists while reading the
- configuration.
-
- Example :
-
- Hi %%FROMNAME%%
-
-
-
- 1.7 Wildcards
-
- If wildcards are mentioned while comparing strings, * will match
- all number of characters including none, and ? will match one
- single character.
-
-
- 1.8 Nodenumbers
-
- Nodenumbers are written as : ZONE:NET/NODE.POINT
-
- If a field is missing the default value of 0 is assumed. Throughout
- the whole configuration there will be no implicit assume of a
- nodenumber field other than 0. For that if you want to match all
- points you have to explicit write something like "2:246/55.*"
- except those cases where you are able to chose relaxed compare with
- the tilde character.
-
-
- 1.8.1 Nodenumber matching
-
- Because of the needs of some sysops i have implemented some
- extended matching functions on nodenumbers used in DATA blocks to
- select messages.
-
- For this i am using implicitly all defined nodelist's (sorry about
- that).
-
- There are two special wildcards you may use in nodenumbers.
-
- The '*' character is used to match on all numbers and is equivalent
- to -1.
-
- ITRACK 11
-
-
-
-
- The '#' character is used to define whole regions or hubs in a
- special manner. If the '#' is encountered at the node position of
- the nodenumber the netnumber must be a regionnumber or '*' and then
- all Nodes in this region will match. If you define '#' as
- pointnumber too, only region independant nodes will match.
-
- If only the pointnumber is wildcarded with '#', the rest of the
- nodenumber will be assumed a HUB or HOST and only Nodes directly
- under this hub will match. In this case all Points will match too.
-
- Examples :
-
- 2:241/0.# Matches all nodes directly under the Host
- and not in a Hub Segment of Net 2:241
-
- 2:241/7000.# Matches all Nodes in the Hub Segment of
- 2:241/7000
-
- 2:24/# Matches all Nodes in Region 2:24 (no Points)
- 2:24/#.* Matches all Nodes and Points in 2:24
-
- 2:24/#.# Matches all Nodes and Points in 2:24/*.*
- 2:*/#.# Matches all RC's and Independant Nodes
- in Zone 2
-
-
- 1.8.2 Templates
-
- Templates are files containing text and macros whom you may include
- in messages. In statements using templates, there is always an
- internal default template defined. If the template file is not
- found, this internal template will be used. Templates are defined
- as 8 character name of the file containing the template with an
- extension of ".TPL".
-
-
- 1.9 Updating fido style messages (ITRTMP.#)
-
- While updating messages a file named ITRTMP.# is temporarily used,
- with '#' replaced by a unique number. If the erasure of the old
- message fails because of locking violations, this file remains in
- the mail directory.
-
- ITRACK 12
-
-
-
-
- 2 Syntax
-
-
- 2.1 General Configuration Statements
-
-
- 2.1.1 LOGFILE [<logfilename> [<logfileintros>]]
-
- Default : Logging Disabled
-
- When the Logfilename is missing logging is disabled
-
- You may use this statement only on the toplevel, that means not in
- beetween of any block, of an ITRACK configuration (but you can use
- it as often as you want) to enable and disable logging in different
- files for different sections of the configuration.
-
- The logfileintros were written in the first column of a
- logfileentry. The specified logfileintros are disabling the
- corresponding group of information. If nothing is specified all
- logging levels will be used.
-
- The possible Logfile Intros :
-
- Log_Intro = '$'
- Log_Warning = '?' Warnings
- Log_Intro_Error = '!' Errors
- Log_Intro_Copy = '%' Copying of messages
- Log_Intro_Move_Kill = '&' Moving killing of messages
- Log_Intro_Debug = '@' Some infos for debugging
- Log_Intro_Wrong = '^' Bouncing, forwarding of mail
- Log_Intro_Scan = '"' Scanning Header of Message
- Log_Intro_Nodelist = '#' Nodelist compile
- Log_Intro_Change = '+' Change Message
- Log_Intro_Exec = '*' Execute Program
- Log_Intro_Write = 'W' Write Message
- Log_Intro_Update = 'U' Update Message
- Log_Intro_Pack = 'P' Packing Functions
- Log_Intro_Stats = '=' Runtime Statistical Output
- Log_Intro_Extended = '~' Normal Messageinfo in extended Log
- Log_Intro_Ext_F = 'F' Flags Info in extended Log
- Log_Intro_Ext_T = 'T' Time Info in extended Log
- Log_Intro_Ext_S = 'S' Subject Info in extended Log
- Log_Intro_Ext_M = 'M' Expanded Macro String in extended
- Log
-
- Example :
-
- LOGFILE ITRACK.LOG UW
-
- ITRACK 13
-
-
-
-
- 2.1.2 TEMPLATEPATH <Path-Name>
-
- Defines the Pathname of the directory where the templatefiles will
- be located. Default is the path where the main configuration file
- is located.
-
-
- 2.1.3 INCLUDEPATH <Path-Name>
-
- Defines the pathname of the default includedirectory where the
- includefiles will be located, when no path is given in the $INCLUDE
- statement. Default is the path where the main configuration file is
- located.
-
-
- 2.1.4 TIMESTAMPPATH <Path-Name>
-
- Defines the pathname of the directory where the timestampfiles will
- be located. Default is the path where the main configuration file
- is located.
-
-
- 2.1.5 TIMEZONE <Offset> [<Begin> <End>]
-
- With this statement you are able to define the offset of the local
- timezone to UTC in MINUTES. The optional <Begin> <End> defines the
- beginning and ending of the dayligth savings time. If a year is
- specified in this specification of the daylight savings time, this
- statement is only working within this year. Itrack uses always the
- last matching statement.
-
- Example :
-
- TIMEZONE -600
- TIMEZONE -600 24.03.1992 26.09.1992
- TIMEZONE -600 24.03 26.09
-
-
-
- 2.1.6 MAINADDRESS <mainaddress> [<domain> [<pointnet>]]
-
- This statement has to exist at a minimum of one time at the
- toplevel of an ITRACK configuration, because with this statement
- the default addresshandling is initialised. But you are allowed to
- use different MAINADDRESS statements in different parts of the
- configuration.
-
- ITRACK 14
-
-
-
-
- The Domain is an optional statement for the main domain name. The
- domain name is only used in Via and Msgid lines.
-
- Example :
-
- MAINADDRESS 2:246/55 Fidonet
-
-
-
- 2.1.7 SHARING Yes|No|ja
-
- With "Sharing = Yes" ITRACK uses sharingmodes to open files to
- minimise conflicts with other programs. If you want sharing be used
- at once (configuration files for example) use the /S commandline
- parameter.
-
- Example :
-
- SHARING Yes
-
-
-
- 2.1.8 BINKLEY Yes|No|ja
-
- With "BINKLEY = Yes" ITRACK is changing the functionality of a few
- commands. At the moment only CHECKPATH and PACKPKT will be
- affected. In CHECKPATH the character ^ will be put before the
- filepath when the KFS flag is specified and # with the TFS flag
- respectively. The same applies for the PACKPKT command.
-
- Example :
-
- BINKLEY Yes
-
-
-
- 2.2 DATA <datatype> [<blockname>]
- <DATA-Item>
- #END# DATA
-
- DATA defines blocks of data of different types for later use.
-
- Blockname assigns a name to this datablock for later reference.
-
- If you are selecting messages with datablocks the block selects the
- message if one entry in the block is matching. That means with
- every entry in the block has an OR function.
-
- ITRACK 15
-
-
-
-
- 2.2.1 DATA NODELIST [<blockname>]
- <Ext> [Exception handling] <Path> [Nodelist1 ... ]
- ...
- #END# DATA
-
-
-
- This datablock defines sets of nodelists. Normally you will only
- need one set with all of your relevant nodelists. <Ext> defines the
- Fileextensions of the Remote-Access or SuperBBS compatible nodelist
- index files. Usually Remote-Access uses an index file named
- NODEINC.RA and NODEIDX.RA located in the same directory as the
- nodelists. ITRACK is able to share these index files if you specify
- "RA" as extension.
-
- The names of the used nodelists are stored in the index files, so
- it isn't necessary to define the list of included nodelists if you
- want to share the index file with another program which is
- responsible for the creation of the index files, but then you are
- responsible for up to date index files.
-
- If ITRACK detects that the index files are out of date, ITRACK will
- abort, except if it detects a list of nodelist names in the
- configuration. In this case ITRACK will compile a new set of index
- files, but without cost imformation.
-
- In the list of index files you may use the full filename, or a * as
- extension. In this case ITRACK searches the nodelist directory for
- the newest file with numeric extension.
-
- Exception handling optionally defines the mode of operation if a
- nodelist error is detected. This happens if a nodelist is missing
- or ITRACK is not able to create and maintain its index. Possible
- statements are ABORT IGNORE DISABLE.
-
- If ABORT is defined, an error on this nodelists causes ITRACK to
- immediately aborts operation. This is the default mode.
-
- If IGNORE is defined, an error on this nodelists causes ITRACK to
- always return false if a selection is made. That means ITRACK works
- the same way as if this nodelists were not defined at all and
- possibly all mail for addressees in those nodelists bounced.
-
- If DISABLE is defined, the nodelist will return always true if an
- error is encounterd during initialisation. That normally means that
- no mail will be bounced.
-
- ITRACK 16
-
-
-
-
-
- Example:
-
- DATA NODELIST Nodelist
- ITR ABORT c:\FD\Nodelist Nodelist.*
- ITV DISABLE c:\FD\Nodelist VIRNODES.*
- ITI IGNORE c:\FD\Nodelist INTNODES.*
- RA c:\FD\Nodelist
- #END# DATA
-
-
- 2.2.2 DATA ADDRESS [<blockname>]
- <Fido-Address>
- ...
- #END# DATA
-
- This defines a list of addresses, one for each line. You may use
- wildcards for address matching functions.
-
- Example:
-
- Data Address Cosysop
- 2:246/55.1
- 2:246/55.2
- #END# DATA
-
-
- 2.2.3 DATA READDRESSLIST [blockname>]
- <address 1> <address 2>
- ...
- #END# DATA
-
- This defines a list of addresses. Two for each line. Wildcards are
- allowed for address matching functions. The address 2 is used in
- READDRESS functions.
-
- Example:
-
- DATA READDRESSLIST Changes
- 2:2411/1 2:2401/1
- 2:2411/4401 2:2401/10
- #END# DATA
-
- ITRACK 17
-
-
-
-
- 2.2.4 DATA READDRESSNAME [<blockname>]
- <address 1> <address 2> <name>
- ...
- #END# DATA
-
- This defines a list of addresses and names. Two addresses and one
- name for each line. Wildcards are allowed for address matching.
- Address 2 is used in READDRESS functions.
-
- Address 1 and the name are matched against the message and the
- second address is written to the messageheader in READDRESS
- functions. I know it's a little bit confusing that the name is
- located at the end of the line, but because a name is an unlimited
- field it has to be located at the end of a line.
-
- Example:
-
- DATA READDRESSNAME Changes
- 2:241/0 2:2401/1 Dieter Soltau
- 2:241/4401 2:2401/10 Klaus-Dieter Thelen
- #END# DATA
-
-
-
- 2.2.5 Data ROUTING <blockname>
- <destination> [<target 1> [<target 2> [...]]]
- ....
- #end# data
-
- The Data ROUTING Block is a possibility to define the routing
- targets for messages with a variety of wildcard functions.
-
- Destination is the routing focus for the messages matching the
- targets.
-
- The routing block is matched from top to bottom. That means the
- first match from top will be the routing destination. For that you
- should specify the most specific routing at top.
-
- The routing block may be used with SELECT commands where a message
- will be selected if there is a match in the target area's of the
- block. With this you may select only messages for packrouting if
- they were specified in the routing block.
-
- Additions for the Target Nodenumber matching :
-
- If you specify -2 or # in the pointfield of a target Nodenumber
- then the Rest of the Nodenumber will be assumed a Hub, Host, Region
- or Zone entry in the nodelist. The address will match to all nodes
- in the direct segment of this Hub, Host, Region or Zone.
-
- ITRACK 18
-
-
-
-
- If you specify -2 or # in the nodefield of a nodenumber, then the
- rest of the nodenumber will be assumed a region and all nodes of
- that region will match.
-
- Examples :
-
- 2:241/0.# Matches all nodes directly under the host
- and not in a hub segment of net 2:241
-
- 2:241/7000.# Matches all nodes in the hub segment of
- 2:241/7000
-
- 2:24/# Matches all nodes in region 2:24
- 2:24/#.* Matches all nodes and points in 2:24
-
-
-
- Additions for destination matching:
-
- If a field of a destination is a wildcard, the field of the routed
- message is substituted, but if you define -2 or # as the net- or
- nodenumber then the respective region- or hubnumber is substituted.
-
-
- Example :
-
- 2:241/# 2:241/*.*
- All mail for 2:241/*.* is hub routed.
-
-
- There is NO implicit handling for the destination node and you will
- have to specify them in the target list too.
-
- As you may have experienced right now, i hate implicit handling,
- because you don't see explicitly what will be done. Maybe your
- thought's of what should be done implicitly are differing from
- mine. And that's the main reason for me, never to implement
- implicit handling where applicable.
-
- Another reason for sure is laziness while programming :-))
-
-
- 2.2.6 DATA FDSEMAPHOR [<blockname>]
- <path> [<routing>] [<tasknr 1>] [<tasknr 2>]
- ...
- #END# DATA
-
- This data group specifies Frontdoor semaphor directories. This is
- used in PACKPKT and you are able to select messages on this group.
- When selecting with FDSEMAPHOR ITRACK returns true if a session
-
- ITRACK 19
-
-
-
-
- with the target system determined by routing is in progress.
-
- To be sure that the mail isn't send to another system then
- specified in routing, the Frontdoor routing should be the same as
- the ITRACK routing or destination systems with different routing
- should not be allowed to get there mail direct when. If a false
- selection with FDSEMAPHOR occured a semaphor file with task number
- 1 (default 255) is created and will be deleted when ITRACK is
- ending.
-
- If this data group is used in PACKPKT the task number 2 (default
- 254) is used to disable FD sessions only while ITRACK is packing
- mail to an old bundle. This sempahor is deleted when ITRACK
- finished the bundle. In this group for the tasknumber environment
- variables may be used.
-
- Example :
-
- DATA FDSEMAPHOR SEMAP
- %FLAGS% NETROUTING %TASK% 250
- #END# DATA
-
- SELECTTO SEMAP
- LOGSTRING !! session packrouting for %TO% skipped
- #ELSE# SELECTTO
- MOVE PKTMAIL
- #END# SELECTTO
-
-
-
- 2.2.7 DATA NAME [<blockname>]
- <name>
- ...
- #END# DATA
-
- This defines a list of names. One for each line.
-
- Wildcards like * or ? are allowed in names and always extended
- while comparing to name fields in messageheaders, even if no
- relaxed comparing is used (see SELECT statements).
-
- While comparing names only Characters and ciphers are used.
-
- Examples :
-
- DATA NAME Assholes
- Hans T*est
- #END# DATA
-
- DATA NAME Areafix
-
- ITRACK 20
-
-
-
-
- Areafix
- Areamgr
- Arealink
- Imail
- #END# DATA
-
- DATA NAME FileFix
- Raid
- #END# DATA
-
- ITRACK 21
-
-
-
-
- 2.2.8 DATA PASSWORDNAME [<blockname>]
- <password> <name>
- ...
- #END# DATA
-
- This defines a list of passwords with name.
-
- It's possible to select messages with name in the from or in the to
- address. The password is checked against the first word in the
- Subject line.
-
- If relaxed compare (~) is used, password compare is disabled and
- only the address is checked.
-
- Example:
-
- DATA PASSWORDNAME Request
- Test Hans Test
- 78678bb Herbert Freitag III
- #END# DATA
-
- ITRACK 22
-
-
-
-
- 2.2.9 DATA PASSWORDADDRESS [<blockname>]
- <password> <address>
- ...
- #END# DATA
-
- This defines a list of passwords with Addresses.
-
- It is possible to select messages with addresses in the from or in
- the to address. The password is checked against the first word in
- the subject line.
-
- If relaxed compare (~) is used, the password compare is disabled.
-
- Example:
-
- DATA PASSWORDADDRESS Request
- Test 2:246/55
- 78678bb 2:246/10
- #END# DATA
-
-
-
- 2.2.10 DATA ADDRESSNAME [<blockname>]
- <address> <name>
- ...
- #END# DATA
-
-
- This defines a list of addresses in conjunction with a name.
-
- Example:
-
- Data ADDRESSNAME My_Own
- 2:246/55 Frank Prade
- 9:494/0 Frank Prade
- 57:4980/105 Frank Prade
- #END# DATA
-
-
-
- 2.2.11 DATA ADDRESSPACKER [<blockname>]
- <destination> <packer name> [<flags>]
- ...
- #end# DATA
-
- This defines packers and mail flags for various destinations. You
- may select on this block too. If you want to have a default packer,
- you should define a line like : *:*/*.* ARC as last item in the
- block.
-
- ITRACK 23
-
-
-
-
- All packers have to be defined before with the PACKER command (see
- below).
-
- The defined flags ( ! possible of course ) are applied to create
-
- mail attaches. With that you change or set some flags other than
- the default setting. For example if you want compressed mail sent
- with KFS you should define KFS !TFS here.
-
-
-
-
- 2.2.12 DATA LENGTHADDRESS [<blockname>]
- <length> [<address>]
- ...
- #END# DATA
-
- This defines a list of addresses in conjunction with a "LENGTH" in
- bytes.
-
- LENGTHADDRESS matches on fileattach messages with filepaths in the
- subjectline where the sum of the Filelengths of the matched Files
- are greater than "LENGTH" in bytes. If relaxed (~) is used only
- addresses will be checked.
-
- Example:
-
- Data LENGTHADDRESS My_Downlinks
- 200000 2:246/55
- 40000 57:4980/105
- #END# DATA
-
-
-
- 2.2.13 DATA MESSAGEAGE [<blockname>]
- <DAYS> [<MINUTES> [<Nodenumber>]]
- ...
- #END# DATA
-
- This defines a list of message ages in days and optinally minutes.
- If minutes are defined you may optionally define a nodenumber with
- wildcards.
-
- MESSAGEAGE matches on messages with an age greater than the age
- defined. To determine the age of a message the TIME string in the
- messageheader is used. If this TIME string has an invalid format
-
- ITRACK 24
-
-
-
-
- the message will never match. If the nodenumber is given the
- nodenumber has to match with relaxed rules applying.
-
- Example:
-
- Data MESSAGEAGE Old_Messages
- 30
- 2 0 2:246/551.*
- #END# DATA
-
-
-
- 2.2.14 DATA MESSAGELENGTH [<blockname>]
- <length> [<Nodenumber>]]
- ...
- #END# DATA
-
- This defines a list of messagetext length in bytes. You may
- optionally define a nodenumber with wildcards.
-
- MESSAGELENGTH matches on messages with a length greater than the
- length defined. If relaxed compare is used only the optional
- nodenumber is compared.
-
- If the nodenumber is given the nodenumber has to match with relaxed
- rules applying.
-
- Example:
-
- Data MESSAGEAGE Old_Messages
- 30
- 2 0 2:246/551.*
- #END# DATA
-
-
-
- 2.2.15 DATA PROCESSAGE [<blockname>]
- <DAYS> [<MINUTES> [nodenumber]]
- ...
- #END# DATA
-
- This defines a list of process ages in days and optionally minutes.
- If minutes are defined you may optionally define a nodenumber with
- wildcards.
-
- PROCESSAGE matches on messages with an age greater than the age
- defined. To determine the "PROCESSAGE" of a message the time in the
- last vialine string is used, but only if it's a vialine of the
- ITRACK of this system. That means that this message have to be
- processed for the second time and the LASTVIA flag must be set. If
-
- ITRACK 25
-
-
-
-
- the nodenumber is given the nodenumber have to match to with
- relaxed rules applying.
-
- If this vialine string has an invalid format, the message will
- never match.
-
- Example:
-
- Data PROCESSAGE Old_Messages
- 0 300
- 2 100 1:*/*.*
- #END# DATA
-
-
-
- 2.2.16 DATA SYSTEM [<blockname>]
- <address> <domain> <zonelist>
- ...
- #END# DATA
-
- This defines a list of addresses in conjunction with a domain name
- and a zone matching list. Those lists were primarily used in
- conjunction with the definition of netmail areas to define your
- system's addresses and the zone matching used in that area.
-
- Example:
-
- DATA SYSTEM System
- 2:246/55 FidoNet 1 2 3 4 5 6 7
- 9:494/0 Virnet 9
- 9:494/300 Virnet
- 9:494/301 Virnet
- 57:4980/105 IntlNet 57 58
- #END# DATA
-
-
-
- 2.2.17 DATA POINT [<blockname>]
- <pointnumber> <2D|4D> <name>
- ...
- #END# DATA
-
- This defines a list of points with pointnumbers, 2D or 4D
- capability and name.
-
- Please be careful when selecting with pointlists. Pointlists only
- match on the pointnumber the other fields of a nodenumber are
- ignored. For that you have to select on your system's addresses
- before.
-
- ITRACK 26
-
-
-
-
- Example:
-
- DATA POINT Points
- 1 4D Frank Prade
- 4 2D Gert Doering
- 5 2D Hermann Reissig
- 6 4D Andreas Lenze
- 7 4D Hans-Juergen Schlabs
- 8 4D Werner Mueller
- 9 4D Roland Polzer
- 10 4D Juergen Mittermueller
- 14 4D Peter Bolch
- 15 4D Stephan Floerke
- #END# DATA
-
-
- 2.2.18 DATA PATH [<blockname>]
- <path>
- ...
- #END# DATA
-
- This defines a list of paths. At the moment mainly for inbound path
- correction for in-transit file attaches and the fattach function.
-
- Example:
-
- DATA PATH Inbound
- C:\Inbound
- C:\Badfiles
- C:\Twitfiles
- #END# DATA
-
-
-
- 2.2.19 DATA ALIAS [<blockname>]
- <magic> <fileName>
- ...
- #END# DATA
-
- This defines a list of magic aliases. At the moment only for the
- fattach function. Fattach only changes the subject if the file is
- actually there.
-
- Example:
-
- DATA ALIAS Aliases
- Files c:\files\0246055.arj
- NewFiles c:\files\n246055.arj
- #END# DATA
-
- ITRACK 27
-
-
-
-
- 2.2.20 DATA FILEAREAS <blockname>
- <filearea path> <filearea name> [[<path>\]<files.bbs>]
- #END# Data
-
- Defines fileareas (path and name) especially for the FILEMOVE
- command explained later. This block may also be used in FATTACH.
-
- The filearea name will be used as a match in the FILEMOVE function
- to distinguish the destination area.
-
- The optional Files.bbs pathname changes the default FILES.BBS name
- of the descriptions file. If a path is given, this path will be
- used, otherwise the file will be located in the filearea.
-
- Example :
-
- Data FILEAREAS
- c:\files\windows WINDOWS
- c:\files\DESQVIEW DESQVIEW FILES.XYZ
- c:\files\FIDO FIDO c:\CDROM\FILES.CD
- #END# Data
-
-
-
- 2.2.21 DATA ATTRIBUTE [<blockname>]
- <attribute's>
- ...
- #END# DATA
-
- This defines lists of attributes. If you are selecting messages
- with an Attribute block, then messages are matched if all
- attributes of one line are matching. The conclusion is that you
- have an AND combination of the attributes in One line and a OR
- combination with the various lines, that have to match on the
- message attributes.
-
- If an attribute token is preceded by a '!' character the attribute
- matches if it is NOT set.
-
- When using an ATTRIBUTE block in SETATTRIBUTE all attributes
- preceded by a '!' were used to reset that attribute.
-
-
- Valid attributes
-
- Normal message attributes :
-
- PRIVATE Mail is private
- CRASH Mail is crash
- RECEIVED Mail is received
-
- ITRACK 28
-
-
-
-
- SENT Mail is sent
- FILE Mail is a file-attach
- INTRANSIT Mail is in-transit
- ORPHAN Mail is orphan (normally set by external programs)
- KILLSENT Mail is kill/sent
- LOCAL Mail is local
- HOLD Mail is hold
- RES1 Reserved Flag
- REQUEST Mail is a file-request
- RRQ Mail is a return-receipt-request
- ISRR Mail is an answer to a return-receipt-request
- AUDIT Mail is an audit-request
- UPDATE Mail is an file-update-request
-
- ITRACK 29
-
-
-
-
- Extended Attributes in flags Kludge
-
- DIR Mail is direct
- IMM Mail is immediate
- XMA Mail is Xmail (to be compressed)
- CFM Confirmation Request
- ZON ZoneGate
- KFS Kill File Sent
- TFS Truncate File Sent
- IT1 ITRACK 1 ( you may use these as you want )
- IT2 ITRACK 2 ( but please in rare conditions )
- IT3 ITRACK 3 ( only local )
- LOK Locked this Message should not be sent.
- ITRACK now handles locked Messages the same as any
- other Message but in Fidostyle locked Message are
- Readonly.
-
- ITRACK 30
-
-
-
-
- Internally used attributes. Those attributes are not written in any
- way to the message, and used only for internal purpose while
- processing the message.
-
- NULL Mail isn't containing text, only kludges and/or
- tearlines.
- LOOP This mail contains an ITRACK vialine of this system
- in front of others via's
- LOOP2 This mail contains two ITRACK vialines of this
- system in front of others via's
- LOOP3 This mail contains three ITRACK vialines of this
- system in front of others via's
- SEEN This mail contains an ITRACK vialine
- LASTVIA The last vialine is by ITRACK of this System
- TO2D The TO Address is a 2D Point Address
- FROM2D The FROM Address is a 2D Point Address
- CHECKEDPATH Will be set of CHECKPATH if the Subject was Changed
- INVKLUDGES If set all Kludges except Msgid Pid and addressing
- Kludges will be invalidated (Mainly for the
- Vialines).
- USER1 Use it as you want :-))
- USER2 Use it as you want :-))
- USER3 Use it as you want :-))
- INTL Intl Line was found or Addintl executed. If reset
- no Intl Line is written to the new message. If only
- the INTL Attribute is set maybe no Intl Line will
- be written because the internally hold Intl-Address
- is perhaps not valid, for that ADDINTL is
- preferred.
- INTERZONE This flag will be set when, while reading the
- message, ITRACK determines that the message will go
- in another zone as the origin zone. It does not
- depend on whether the message is Zonegate addressed
- or not.
- CHANGED A scanned Message will only be written to disk if
- the CHANGED Attribute is set. The CHANGED Attribute
- will be set if a operation changes the contents of
- a message. The first change to a message is the
- detection that the last Vialine was no local
- ITRACKvialine. And for that the changed Flag is
- set. If you don't want a message to be rewritten by
- ITRACK set reset the changed flag.
- ADDLF All internally generated lines (like INTL) will be
- delimited by CR-LF.
- REPEATSCAN The SCAN Block will be repeated with this Message
- for a maximum of two times. (used by bounce)
-
- ITRACK 31
-
-
-
-
-
- Example:
-
- DATA ATTRIBUTE Cleanup
- SENT
- RECEIVED
- #END# DATA
-
-
-
- 2.2.22 DATA STRINGS [<blockname>]
- <expandable string 1>
- <expandable string 2>
- ...
- ...
- #END# DATA
-
- This defines pairs of expandable strings. The expandable strings
- are expanded and compared when selecting. If relaxed comparing is
- used the comparing algorithm with wildcards will be used, where
- string 1 may contain Wildcards.
-
- Without Relaxed comparing the strings have to be completely equal,
- not even upper and lower case should differ.
-
-
- 2.2.23 DATA TIMESLOT [<blockname>]
- <time> <length>
- ...
- #END# DATA
-
- Defines time slots with time and length which could be used with
- selections. The time slot returns true if the current time is in
- the slot. It's no problem to define slots wrapping over midnight.
-
- Example :
-
- DATA TIMESLOT CrashEvent
- 20:30 30
- 23:00 120
- 07:00 1:30
- #END# DATA
-
- ITRACK 32
-
-
-
-
- 2.2.24 DATA DAYOFWEEK [<blockname>]
- [SUN][MON][TUE][WED][THU][FRI][SAT]
- ...
- #END# DATA
-
- Defines a set of weekdays for use with selections. DAYOFWEEK
- returns true if the current day is in one of the lists
-
- Example :
-
- DATA DAYOFWEEK Weekend
- Sat Sun
- #END# DATA
-
-
-
- 2.2.25 DATA DATE [<blockname>]
- <day>[.<month>[.<year>]] [dayofweek list]
- ...
- #END# DATA
-
- Defines a date for use with selections. DATE returns true if the
- current day matches with one of the specified dates. You may use *
- as wildcard for every field and * is the default for non specified
- fields.
-
- Optional you may additionally define a list of weekdays. If no
- weekday is specified, all days are matching. Otherwise only the
- specified weekdays will match.
-
- Example :
-
- DATA DATE BombingRuns
- 1.1.92
- 13.*.* Fri
- #END# DATA
-
-
-
- 2.2.26 DATA DATEADDRESS [<blockname>]
- <date> [dayofweek list] <template> <address> <name>
- ...
- #END# DATA
-
- This DATA block defines the necessary data for the REMINDER
- function. <date> and <dayofweek list> are specified as in the DATA
- DATE block or DAYOFWEEK blocks.
-
- When used with select, this block will match on the current date
- and if no relaxed compare is used on the full name and address.
-
- ITRACK 33
-
-
-
-
- When using this block with the REMINDER, ITRACK creates mails to
- all destinations defined with a matching date. The template will be
- added as message text.
-
- Example :
-
- DATA DATEADDRESS Reminder
- 11.1.* BIRTHDAY 2:246/55 Frank Prade
- 13.*.* Fri BECAREF 2:246/47 Andreas Klein
- #END# DATA
-
-
-
- 2.2.27 DATA EVENT [<blockname>]
- <time> <timestamp>
- ...
- #END# DATA
-
- Defines an event for use with selections. The event returns true if
- the current time is later than time but only once a day. Timestamp
- is the name of a *.TIM file used to determine the last match. It's
- possible to use one timestamp for more than one event.
-
- Example
-
- DATA EVENT Maintenance
- 10:13 MAINT
- #END# DATA
-
-
-
- 2.2.28 DATA FILES [<blockname>]
- <expandable string>
- ...
- #END# DATA
-
- This defines a list of files by expandable strings. With these you
- may select on there existance. The selection will match if one of
- the files exists. You may use wildcards for the filenames
-
- Example:
-
- DATA FILES Semaphor
- C:\FD\FLAGS\FDINSESS.*
- #END# DATA
-
- SELECTTO !Semaphor
- RENUMBER NETMAIL
- #END# SELECTTO
-
- ITRACK 34
-
-
-
-
- 2.3 DATA MACRO
- <macroname> [<expansion>]
- ...
- #END# DATA
-
- You may define one DATA MACRO block that contains macro's for
- expansion in templates or expandable strings. Only the first DATA
- MACRO block encountered will be used.
-
- Example :
-
- DATA MACRO
- SYSTEMNAME Marder's Node
- TIMEZONE %TZ%
- #END# DATA
-
-
-
- 2.4 Data grouping statements
-
- The following statements are for the use with selections, to group
- different datablocks in a logical manner.
-
-
- 2.4.1 ANDGROUP [<blockname>]
- <data-blocks>
- ...
- #END# ANDGROUP
-
- Example :
-
- ANDGROUP ProcessNodelist
- DATA DAYOFWEEK
- THU
- #END# DATA
- DATA EVENT
- 20:30
- #END# DATA
- #END# ANDGROUP
-
- ITRACK 35
-
-
-
-
- 2.4.2 ORGROUP [<blockname>]
- <datablock>
- ...
- #END# ORGROUP
-
- Example :
-
- ORGROUP ProcessNodelist
- DATA DAYOFWEEK
- THU
- #END# DATA
- DATA TIMESLOT
- 20:30 30
- #END# DATA
- #END# ORGROUP
-
-
-
-
- 2.5 FIDOAREA <path> <area-name> [<systemlist>]
-
- This defines a Fido-style netmail area. Area-Name is the name for
- later reference in Scan for example. systemlist is the reference to
- a DATA System block, which is used for AKA-matching when reading in
- this Area.
-
- Examples:
-
- FIDOAREA c:\fd\testmail Netmail System
- FIDOAREA O:\fd\Loop Loop System
- FIDOAREA O:\fd\Savemail Savemail System
-
-
-
- 2.6 PKTAREA
-
- PKTAREA <path> <area-name> [<systemlist>] [<routing>] [<passwords>]
-
- This area currently is outbound only. This means no scan on
- PKTAREA. All other actions on areas are possible with PKTAREA. The
- routing block is used to determine the node where the packet should
- be addressed to. If no match is found or no routingblock specified
- the PKT is addressed to the node the message is addressed to.
-
- If you don't want messages to be packed in PKT's which have no
- matching line in the routing block you may use an SELECTTO
- <ROUTING>. PKTAREA uses a non relaxed nodenumber compare and you
- have to use .* if you want points to be included. ITRACK is in
- nearly no instance using an assumption about what node or
- pointnumbers should be used. An empty field is always assumed 0 and
-
- ITRACK 36
-
-
-
-
- not *.
-
- In the PKTAREA only PKT's were created with this function. No
- fileattach will be created or compression will take place. All
- mails destined to one node will be packed into one PKT file during
- one run of ITRACK.
-
-
- 2.7 TEXTAREA <filepath> <area-name> [<systemlist>]
-
- This defines a TEXT-style area. Area-Name is the name for later
- reference. Systemlist is the reference to a DATA System block,
- which is used for AKA-matching. TEXTAREA is outbound only and no
- scan possible.
-
- Filepath defines the filename with full path, where the messagetext
- of the message will be written to. If you define # as filename,
- # is replaced by "1" and incremented if the file exists. Otherwise
- the messagetext is appended to the file.
-
- ITRACK will not look for the largest number in the directory like
- in fidostyle areas.
-
- There will be no header information written to the file, but you
- may add a header to the message before.
-
- Examples:
-
- TEXTAREA c:\test\text.lst textmail System
- TEXTAREA O:\fd\Looptext\#.txt Loop System
- TEXTAREA O:\fd\Save\#.SAV Savemail System
- TEXTAREA PRN PRINTER System
-
- COPYAREA TEXTMAIL
- ADDHEADER TEXTHDR
- #END# COPYAREA
-
-
-
- 2.8 COPYATTACH <PATH>
-
- This command copies attached files to PATH and truncates or deletes
- the files according to the state of the KFS or TFS flag.
-
- ITRACK 37
-
-
-
-
- 2.9 DELTRUNCATTACH
-
- This command truncates or deletes attached Files according to the
- state of the KFS or TFS flag.
-
-
- 2.10 PACKER <packername> [<packer call>]
-
- The packer command defines the syntax of a packer to be used for
- compressed mail.
-
- You have to use a "moving" packer command. Because my spawning unit
- does not return errorlevels, i have no possibility to otherwise
- check a successful pack. For that i am looking for a disappearing
- file and an appearing archive indicating a successful compression.
-
- If no packer call is given i am assuming uncompressed mail to be
- attached.
-
- Example :
-
- PACKER ARJ ARJ M -Y
-
-
-
- 2.11 $INCLUDE <Filename>
-
- Includes a configuration file. If a path is given this path will be
- used. Otherwise the include file will be searched in the default
- includedirectory.
-
-
- 2.12 RENUMBER <areaname>
-
- Renumbers the area areaname.
-
- Example :
-
- Renumber Netmail
-
-
- This statement should not be used within a SCAN block or ITRACK is
- renumbering the area on every processed message.
-
-
- 2.13 PACKPKT [<semap>] <pktarea> <netmail> [<adresspacker>]
-
- This command looks for *.PKT files in the respective PKTAREA and
- compresses the mail bundle to a compressed mail file if the node is
- matched in the adresspacker block and a packer call is given in the
-
- ITRACK 38
-
-
-
-
- respective packer.
-
- Otherwise the PKT file is attached uncompressed. If more than one
- uncompressed PKT for one destination is found they will be merged
- together.
-
- If a new bundle is created a file attach is created in the
- "netmail". The mail is created with LOCAL, KILLSENT, PVT, FILE,
- LASTVIA and if compressed with a TFS Flag or for uncompressed mail
- with KFS Flag.
-
- I am not verifying if the PKT Files laying around are really 2+
- packets and the destination node is extracted from the PKT's
- header. For that ITRACK should not pack mail created by processors
- creating non 2+ compatible PKT's.
-
- ITRACK writes ITRACKMAIL as from name in the message header and
- triggers upon this name when scanning for older attaches. It is not
- intended to mix the netmailpacking of ITRACK and a echomail-tosser.
- If you want to have Netmail and Echomail packed together by ITRACK,
- only ITRACK should pack in this area.
-
- You may have more than one PKTAREA with packed mail. ITRACK looks
- for the path in the subject line when scanning for older attaches
- if they match.
-
- When packing starts in a PKTAREA ITRACK looks for all 0 length
- files with an extension other than the extension of the current
- day, regardless if it's an unknown extension, and deletes those
- files. For that no timestamp files are possible in a PKTAREA (but
- as I think this will never be really necessary).
-
- If the Binkley option is set the filename in the subjectline is
- changed according to KFS , TFS attribute.
-
- Semap specifies a semaphor data group. Itrack checks and sets
- semaphores while packing mail for background processing. At the
- moment only FDSEMAPHORE for Frontdoor is supported.
-
-
- 2.14 Programming statements
-
- Now the main programming statements for your ITRACK configuration.
-
-
- 2.14.1 SCAN <areaname> [<timestamp>]
- [<executionlist>]
- #END# SCAN
-
- Scan takes all of the message in the predefined Area "areaname" and
-
- ITRACK 39
-
-
-
-
- executes the statements with them, as long as the message isn't
- deleted. When the message is killed, all remaining statements in
- the executionlist will be skipped.
-
- Timestamp defines a name of up to 8 Characters of an optional
- timestamp file, located in your main configuration or timestamp
- directory. Scan only works on messages newer as the timestamp.
- Timestamp is set to the current date/time when scan finished.
-
- Example:
-
- SCAN Netmail Normal
- ...
- #END# SCAN
-
-
- 2.14.2 SELECT[TO]|[FROM] <data> [..<data>]
- [<execution-list>]
- [#ELSE# SCAN
- [<else-execution-list>] ]
- #END# SELECT[TO]|[FROM]
-
- Selects messages based on the data statements and executes the
- execution-list if selected or the optional else-execution-list.
-
- SELECT matches the data with the from and the to part of a message,
- opposed to SELECTTO and SELECTFROM, which are only comparing with
- the TO or the FROM part.
-
- When selecting with data not containing address or name information
- you should use SELECTFROM or SELECTTO too, because with SELECT the
- compare is done twice.
-
- The syntax of the data statements is as follows :
-
- [&][!][~]<datablockname> | [&][!][~]@<datatoken> <data>
-
- The first statement references a predefined data block.
-
- The other possible syntax defines a direct data definition. Here
- the datatoken is followed by the contents of one line of data as
- explained in the previous DATA sections. This statement has to be
- the last data on the select line.
-
- If Data is preceded by a '!' the message is selected if data does
- NOT match that message.
-
- The '&' character defines a AND combination as opposed to the
- default OR combination. Normal boolean precedence rules apply here.
-
- ITRACK 40
-
-
-
-
- The '~' character defines that relaxed matching rules are applied
- when comparing data to messages. For example if comparing Addresses
- the point number is ignored with relaxed comparing.
-
- Possible select data blocks :
-
- ADDRESS
- ADDRESSNAME
- NAME
- SYSTEM
- ATTRIBUTE
- POINT
- NODELIST
- PASSWORDNAME
- PASSWORDADDRESS
- PATH
- ALIAS
- READDRESSLIST
- READDRESSNAMELIST
- ROUTING
- LENGTHADDRESS
- DATEADDRESS
- STRINGS
- MESSAGEAGE
- PROCESSAGE
- TIMESLOT
- DAYOFWEEK
- DATE
- EVENT
- ANDGROUP
- ORGROUP
-
-
-
- 2.14.3 POINTTO <point datablock>
-
- This statement first checks if the message is addressed to a point
- (name matching) and changes the pointaddress accordingly and then
- sets the TO2D Flag if specified in the point datablock.
-
- This statement should only be applied to messages preselected TO
- your relaxed system because PointsTo only looks on the Point Number
- and the name when working.
-
-
- 2.14.4 POINTFROM <Point-Data-Block>
-
- This statement checks if the message is originating from a
- pointnumber OR a name in the pointlist defined in the point
- datablock and then strips the FROM2D attribute if set.
-
- ITRACK 41
-
-
-
-
- This statement should only be applied to messages preselected FROM
- your relaxed system because POINTFROM only checks the pointnumber
- and the name.
-
-
- 2.14.5 KILL
-
- Unconditionally deletes the message.
-
-
- 2.14.6 MOVE <areaname>
-
- Moves the message to the area "areaname".
-
-
- 2.14.77 COPYAREA <areaname>
- [<executionlist>]
- #END# COPYAREA
-
- Copies the message to the area "areaname" and executes the
- executionlist on the newly created message.
-
-
- 2.14.8 COPYGROUP <destination datablock>
- [<executionlist>]
- #END# COPYGROUP
-
- Forwards a copy of the message to all systems contained in
- destination datablock and executes the executionlist on the newly
- created message.
-
- If the new address contains a -1 or * then this part of the
- fidoaddress is not changed.
-
- If there is no name in destination datablock, the old name remains.
- If there is no address in destination datablock, the old address
- remains.
-
- ITRACK 42
-
-
-
-
- Destination datablock can be the name of a datablock or a datatoken
- preceded by @ with direct data behind.
-
- Example:
-
- COPYGROUP Cosysop
- #END# COPYGROUP
-
- COPYGROUP @ADDRESSNAME 2:246/47 Andreas Klein
- #END# COPYGROUP
-
- Possible Group-Data
-
- ADDRESS
- ADDRESSNAME
- NAME
- SYSTEM
- POINT ( Here the active Main-Address is used
- for Addressing )
- READRESSLIST
-
-
-
- 2.14.9 CREATEGROUP <areaname> <destination datablock>
- [<executionlist>]
- #END# CREATEGROUP
-
- See COPYGROUP except that the old messagetext is dicarded.
-
- Example:
-
- CREATEGROUP Netmail Cosysop
- #END# CREATEGROUP
-
- CREATEGROUP Netmail @AddressName 2:246/47 Andreas Klein
- #END# CREATEGROUP
-
-
-
- 2.14.10 Reminder <areaname> <DATEADDRESS block>
- [<execution-list>]
- #END# CREATEGROUP
-
- Creates a message to all systems contained in the DATEADDRESS block
- which have a matching date specified in the specified area and
- executes the execution-list on the newly created message. There
- will be a header added specified in the DATEADDRESS block.
-
- Destination address datablock could be the name of a datablock or a
- datatoken preceded by @ with direct data behind.
-
- ITRACK 43
-
-
-
-
-
- Example:
-
- Reminder Netmail Birthdays
- #END# Reminder
-
- Possible datablocks :
-
- DATEADDRESS
-
-
-
- 2.14.11 READDRESSTO <readdresslist> [<template>]
-
- Readdresses messages originating from the first address in a
- readdresslist line to the second address in a readdresslist line.
-
- If there is -1 or * in a new part of an address, this parts does
- not change.
-
-
- Example:
-
- READDRESSTO Changes
- READDRESSTO @ReAddressList 2:246/* 2:2446/*
-
- A templateheader is added but redefinition of the
- template is only possible without directdata.
-
-
-
- 2.14.12 READDRESSFROM <readdresslist> [<template>]
-
- Readdresses messages from the first address in a readdress block
- line to the second address in a readdresslist line.
-
- If there is -1 or * in a new part of an address, this parts does
- not change.
-
- Example:
-
- READDRESSFROM Changes
- READDRESSFROM @ReAddressList 2:246/* 2:2446/*
-
- A Template-Header is added but redefinition of the
- template is only possible without Direct Data.
-
- ITRACK 44
-
-
-
-
- 2.14.13 BOUNCE [<template>]
-
- Adds an optional template to the message and bounces the message.
-
- BOUNCE means that the message is readdressed to the old originating
- address and the matched systemaddress inserted as new originating
- address.
-
- Changed attributes :
-
- SET LOCAL,PVT,INVKLUDGE,REPEATSCAN
- RESET INTRANSIT
-
-
-
- 2.2.13 FORWARD [<template>]
-
- Adds an optional template to the message, and forwards the message.
-
- FORWARD means that the matched systemaddress is inserted as
- originating address in the message.
-
- Changed attributes :
-
- SET LOCAL,PVT,INVKLUDGE
- RESET INTRANSIT
-
-
-
- 2.14.14 ADDHEADER [<template>]
-
- Adds an optional template to the message.
-
-
- 2.14.15 SETMESSAGETIME
-
- Sets the time field of the message to the current date and time.
-
-
- 2.14.16 EXEC <expandable string>
-
- If this statement is encountered the string is expanded and
- executed as commandline immediately.
-
- ITRACK swaps almost all of the used memory to EMS, XMS or Disk as
- specified on the commandline.
-
-
- 2.14.17 EXECONCE <expandable string>
-
- ITRACK 45
-
-
-
-
- If this statement is executed once, at the end of an ITRACK run the
- expanded string is used as commandline and executed. While
- expanding the expandable string there is no active message any more
- and message related macro will give no result.
-
- ITRACK swaps almost all of the used memory to EMS, XMS or Disk as
- specified on the commandline.
-
-
- 2.14.18 TOUCH <expandable string>
-
- If this statement is executed, the expanded string is used as
- filename and the file touched.
-
-
- 2.14.19 TOUCHONCE <expandable string>
-
- If this statement is executed once, at the end of an ITRACK run the
- expanded string is used as filename and the file touched. While
- expanding the macro there is no active message any more and message
- related macros will give no result.
-
-
- 2.14.20 CHECKPATH <pathlistname>
- [<executionlist>]
- #END# CHECKPATH
-
- If the message is a fileattach the subject line is searched for
- files located in one of the paths in the pathlist. If the file is
- found, the subject line is changed accordingly. If the subject line
- contains more than one file and the new subject line will be too
- long, new file attaches are created for those files.
-
- The execution list is applied only on new created fileattaches, if
- the subject line grows above the limit.
-
- If the BINKLEY option is set the filenames in the subjectline will
- be changed according to KFS and TFS flag.
-
-
- 2.14.21 FATTACH [<maxcount> [<maxlength>]] <paths|aliases> ..
- <paths|aliases>
- [<execution-list>]
- #END# FATTACH
-
- The subject line is searched for files located in one of the paths
- in the pathlist. If the file is found, the subject line is changed
- accordingly. If the subject line contains more than one file and
- the new subject line will be too long, new file attaches will be
- created for the files.
-
- ITRACK 46
-
-
-
-
- File wildcards are expanded over all found files and all given
- paths. Maxcount specifies the maximum number of files that are
- created (maybe in case of *.* :-))
-
- All mails are created with a FILE attribute.
-
- The execution list is done with all newly created and the original
- mail if one file is found. After the execution of the execution
- list the original mail is written at once and internally marked
- deleted. That means the rest of the config is skipped for this
- mail.
-
- If NO file is found the mail remains untouched and runs further
- through the script.
-
- The first path's/alias blockname must NOT begin with a number.
-
-
- 2.14.22 FILEMOVE <Fileareas Blockname>
- <expandable string with areaname>
- [<expandable string for description>]
- #END# FILEMOVE
-
- This command moves the attached files to an area defined in the
- expandable string. The second optional expandable string is used as
- description in a FILES.BBS like file defined in the respective
- filearea.
-
- Example:
-
- FILEMOVE
- %LINE[1]%
- %LINE[2]%
- #end# FILEMOVE
-
-
-
- If the description string is not given the "Files.bbs" will not be
- updated or created.
-
- If the FILEMOVE was successful the RECEIVED attribute of the
- message is set.
-
-
- 2.14.23 ADDINTL
-
- Adds an INTL line when no INTL line was in the original message.
-
- While reading messages and no INTL line is in the message, ITRACK
- looks for Msgid/Reply kludges to determine the zones. If no zone is
-
- ITRACK 47
-
-
-
-
- found ITRACK uses the zone of MAINADDRESS.
-
-
- 2.14.24 ZONEGATE
-
- Takes the TO address of the intl line and puts her in the header.
- Nothing more, all the selection and surrounding stuff concerned
- with zonegates has to be done with other statements.
-
-
- 2.14.25 CREATERETURN [<Template>]
- [<execution-list>]
- #END# CREATERETURN
-
- Adds an optional template to the message and returns the message to
- sender like bounce, but the message text is discarded.
-
- Changed Attributes :
-
- SET LOCAL,PVT,INVKLUDGE
- RESET INTRANSIT
-
-
-
- 2.14.26 CREATEFORWARD [<Template>]
- [<execution-list>]
- #END# CREATEFORWARD
-
- Adds an optional template to the message and forwards the message
- to the recipient like FORWARD, but the message text is discarded.
-
- Changed Attributes :
-
- SET LOCAL,PVT,INVKLUDGE
- RESET INTRANSIT
-
-
-
- 2.14.27 CREATEMAIL <Expandable String>
- [<execution-list>]
- #ORIG# CREATEMAIL
- [<execution-list>]
- #END# CREATEMAIL
-
- The expandable String has to be a direct data definition when
- expansion is done and the data definition has to include a
- Nodenumber. If a name is include then the destination name is set
- accordingly.
-
- The first execution list is done with the newly created mail if the
-
- ITRACK 48
-
-
-
-
- creation was successful. The second execution list is done with the
- original mail which triggered the action, but only if a mail was
- successfully created and the mail is NOT deleted or moved in the
- first execution list.
-
- ITRACK 49
-
-
-
-
-
- Example :
-
- CreateMail %Line[1]%
- SetAttribute @Attribute Request
- ; Optional crash flag setzen
- ChangeAttr %OLDLine[2]%
- #ORIG# CreateMail
- ; Move response Mail to waiting area
- Move Responses
- #END# CreateMail
-
-
- If %LINE[1]% expands to "ADDRESSNAME 2:246/55 Frank Prade" a mail
- with destination 2:246/55.0 Frank Prade is created.
-
-
- 2.14.28 SPLIT <length>
- [<execution-list>]
- #ORIG# SPLIT
- [<execution-list>]
- #END# SPLIT
-
- This statement splits messages longer than lenght in bytes in
- pieces of length (only the messagetext is counted).
-
- The first execution list is done with the newly created splitted
- mails.
-
- The second execution list with the original mail if a splitting
- occured. Here the mail could be moved or killed to prevent further
- processing.
-
- Example :
-
- SPLIT 16000
- #ORIG# SPLIT
- MOVE Longmails
- #END# SPLIT
-
- ITRACK 50
-
-
-
-
- 2.14.29 CHANGEFROM <Expandable String>
-
- Changes the originating name and/or address according to the
- expanded string if the string contains a valid data statement with
- a name and/or nodenumber.
-
- Examples :
-
- CHANGEFROM ADDRESS 2:246/10
-
- CHANGEFROM NAME Heinrich Test
-
- CHANGEFROM ADDRESSNAME 2:248/999 Heinrich Test
-
-
-
- 2.14.30 CHANGETO <Expandable String>
-
- The same like CHANGEFROM for the originating address
-
-
- 2.14.31 CHANGESUBJECT <expandable string>
-
- Changes the subject to the expanded string.
-
-
- 2.14.32 CHANGEATTR <expandable string>
-
- Changes the attributes according to an ATTRIBUTE definition in the
- string.
-
- Example :
-
- CHANGEATTR %LINE[2]%
-
- Line 2 in the Message text :
-
- ATTRIBUTE CRASH FILE
-
-
-
- 2.14.33 CLEARATTRIBUTE
-
- Clears all message attributes ( not affecting ITRACK related
- attributes like CHANGED, ADDLF etc. ) of a message and sets the
- PRIVATE, LOCAL and CHANGED attribute.
-
- ITRACK 51
-
-
-
-
- 2.14.34 SETATTRIBUTE <ATTRIBUTE blockname>
-
- Sets the attributes of a message according to the attributes
- defined in attribute blockname. If an attribute is defined with '!'
- the attribute is reset.
-
-
- 2.14.35 EXTLOG [<expandable string>]
-
- Writes an extended log information in the logfile. The optional
- expandable String is expanded and logged.
-
-
- 2.14.36 LOGSTRING [<expandable string>]
-
- Writes the expanded string into the log. This statement is very
- usefull in debugging your ITRACK configuration.
-
-
- 2.14.37 WRITESTRING <filename> [<expandable string>]
-
- Appends the expanded string to the file specified by filename.
-
-
- 2.14.38 TOSSCANFIX
-
- Changes all single CR to CR-LF and replaces the tearline by blanks.
-
- Example :
-
- TOSSCANFIX
-
-
-
- 2.14.39 IMAILFIX
-
- Looks if there is a NON-kludge line longer than 40 Characters in
- front of a tearline. If the condition is true the TO name is
- changed to Wrong_Areafix. This is because of a bug in Imail 1.21
- handling too long strings with area tags.
-
- Example :
-
- IMAILFIX
-
- ITRACK 52
-
-
-
-
- 2.15 Block Statements
-
-
- 2.15.1 BLOCK [<blockname>]
- <function>
- ...
- <function>
- #END# BLOCK
-
- A block is a unit of functions and data and enables you to group
- functions and data to a logical unit and you are able to assign a
- name to this block for later reference.
-
- If ITRACK is called with the name of a block as commandline
- parameter, this block will be executed like all other statements in
- the configuration, as if the block statement is not existing.
-
- The other possibility to use blocks is using CALL statement.
-
- Example
-
- BLOCK Maintenance
-
- Renumber Netmail
-
- #END# BLOCK
-
-
-
- 2.15.2 CALL <blockname>
-
- Calls a predefined block
-
- Example:
-
- CALL maintenance
-
-
-
- 2.16 Possible Template Macros
-
- The following macros are possible in templates and expandable
- strings. The OLD- macros are referring to the original message if a
- copy etc. occurred that creates internally a NEW nessage. Macros
- are expanded recursive. That means if the expanded string contains
- a macro, this macro will be expanded too. Macros may contain a
- number of Parameters enclosed by square brackets. Most paramaters
- have to be numbers but also macros with text parameters exists.
-
- ITRACK 53
-
-
-
-
- Message related macros :
-
- %FROMNAME% From name of the message
- %FROM% From address of the message
- %INTLFROM% Intl from Address of the message
- %MSGIDFROM% Address located in the MSGID-kludge
-
- %TONAME% To name of the message
- %TO% To Address of the message
- %INTLTO% Intl to address of the message
- %REPLYTO% Address located in the REPLY-kludge
-
- %TIME% Time String of the message
-
- %SUBJECT% Subject of the message
-
- %SUBJECT[P1]% Gives you one word of the subject
- specified by P1.
- Example :
-
- Macro : %SUBJECT[2]
- Subject : Hi Volker this is a test
- Result : Volker
-
-
- %ATTRIBUTES% List of message attributes
- %LINE[P1,P2]% Returns the line of the text specified by
- P1, disregarding kludgelines. If P2 is
- specified the macro will return the word
- specified by P2.
- %MATCH[Wildstring,P2]% Looks if there is a matching token in the
- first column of a line in the message and
- takes the line or if P2 is given the
- specified word of the line.
- %TONODESTR[P1,P2]% This macro takes the destination
- nodenumber searches for the nodelistentry
- in the nodelists and returns the whole
- string if no Parameter is given. If P1 is
- given the macro returns the specified
- field. If P2 is given too the macro
- returns all fields from P1 to P2
- seperated, preceded and succeede by
- commas.
-
- ITRACK is always looking for the bossnode
- if a point is given.
-
- ITRACK 54
-
-
-
-
- Example :
-
- Macro : %TONODESTR[7,20]%
-
- Nodelist :
- ,My_Node,Munich,Frank_Prade,49-89684140,9600,CM,HST,V32B,XA
-
- Result : ,CM,HST,V32B,XA
-
- This is usefull with the following construct
-
- DATA STRINGS PEP
- *,PEP,*
- %TONODESTR[7,20]%
- #END# DATA
-
- %FROMNODESTR[Param1]% Same as %TONODESTR% for the originating
- node.
-
- %MSGLENGTH% Results the length of the messagetext
-
- The same for the original message
-
- %OLDFROMNAME%
- %OLDFROM%
- %OLDINTLFROM%
- %OLDTONAME%
- %OLDTO%
- %OLDINTLTO%
- %OLDTIME%
- %OLDSUBJECT%
- %OLDSUBJECT[Param]%
- %OLDLINE[Param1,Param2]%
- %OLDMATCH[Param1,Param2]%
- %OLDTONODESTR[Param1]%
- %OLDFROMNODESTR[Param1]%
- %OLDMSGLENGTH%
- %OLDATTRIBUTES%
-
- ITRACK 55
-
-
-
-
- System specific macros
-
- %SYSOP% Sysop name from the KEY
- %PROGRAM% Program name including version.
- %NODELIST% List of names of all nodelist definitions
- %NODELIST[P1]% Looks for the line P1 of the nodelist
- defintions and returns all nodelists
- defined in this line.
- %NODELIST[P1,P2]% Like %NODELIST[P1]% but only returns the
- nodelistname specified by P2.
- %SYSTEM% Matched System address
- %SYSTEMTIME% Current System time formatted as in
- Vialine
- %LOCALTIME% Local time as : 11:04:44
- %LOCALDATE% Local date as : Mon 1. Oct 1992
-
- ITRACK 56
-
-
-
-
- 3 Calling Convention and Commandline-Parameters
-
-
-
- ITRACK [/Option]|[-Option] <Block names>
-
- Block names names of blocks to be executed
-
- Options :
-
- /H Helpscreen
- /D Debug run. Only the Configuration is compiled and
- execution skipped
- /E Enable swapping of overlay to EMS
- /S Sharing mode is enabled at once
- /X Disables timestamp checking for configuration. If a
- .CTX file is available then it will be used.
- Usually for debugging purpose.
- /N Always compile nodelists.
- /A(EXT) enables swapping destination
- E = EMS X = XMS T = EXT
- /C<config> Main configuration. If a path is given, this path
- defines the directory where all timestamps and
- templates are located if not changed in
- configuration and the default search directory for
- configurations.
- If the ITRACK Environment variable is defined and
- there is no Path in /C then ITRACK looks there for
- the Configuration. The last resort for searching
- configurations is the path where ITRACK.EXE is
- located and the PATH environment variable.
-
- ITRACK 57
-
-
-
-
- A. Credits
-
- "This product uses the SPAWNO routines by Ralf Brown
- to minimise memory use while shelling to DOS and
- running other programs."
-
-
- Many thanks to my Alpha/Beta testers
-
- Mirko Mucko
- Andreas Brodowski
- Andy Kreuzer
- Mike Hartmann
- Thomas Waldmann
- Burkhardt Mueller
- Tobias Burchhardt
- Jochen Ott
- Ralf Hammeran
- Stefan Kaspar
- Peter Hampf
-
-
- Especially to my Alpha testers always going to the top,
- making setups i have never thought of. :-))
-
- Andreas Klein
- Stefan Rubner
- Markus Lomb
-