Tristero
                                - A Mailing List Manager for cc:Mail

(c)1995 Rhizomatics
--------------------------------------------------------------------



Index
-----
        Features
        Description
        Set-Up
        Sending commands to Tristero
        Sending Messages to a List
        Creating a new list
        PostMaster Commands
        User commands
        SuperUser Commands
        Automatic Responses
        Emulating other mailbots
        Gatewaying Internet Mail to Bulletin Boards
        Mail Digests
        Lists within Lists
        Moderated lists
        Friendlier Messages
        File Repository
        Reducing Mail Clutter
        Optimizing Delivery
        Controlling Access
        Configuring the Gateway
        Supplied Files
        Creating New Language Resource Files
        Potential Problems
        Version History
        Support
        Ordering
        Licensing and Other Tedious Legal Bits
        Acknowledgements
        More Information on Mailing List Management Software
        Other Rhizomatics Products



Features
--------

	A cc:mail MLM (*) which provides similiar functionality to the
	Unix & VMS systems ListServ, ListProc and Majordomo:-

             Subscriptions
		dynamic mailing list creation, subscription
                remote subscription to cc:mail bulletin boards from
                        cc:mobile or internet addresses
                multiple list inputs 
                automatic welcome, farewell, readme messages and file lists
                built-in user help
                multiple language support
                open, closed or hidden mailing lists
                new list announcement
                confirmation of posting for all or receipt requested mail

             Mail Presentation
		Internet RFC header minimization
		Colourizing of message text, quotations & RFC Header
                mail digests at set intervals
		digest summaries
		optional message archiving
		upload and download of archive files
		indexing and searching of archives

             Integration
		access control
		gateway internet mail to bulletin boards
                gateway bulletin boards to internet lists
                proxy command sending to server mailhosts
                Bypass the 256 address limit of cc:mail mailing lists
		Handles non-standard mail produced by Link to SMTP
		send ADE updates to host post office

              Administration
                remote list configuration
                remote command processing and file fetching for superuser
                hierarchial lists (lists within lists)
                list moderation
                detection and breaking of mail loops
                optional truncation of mammoth posts
		redirection of admin commands missent to mailing-lists

	(*)     MLM - Mailing List Manager


Description
-----------

	In addition to operating as an MLM in it's own right, Tristero
	can also be used as a local gateway to remote public mailing lists.
	This is essential in cc:mail to reduce external mail costs (only
	receive one copy of each message per mailing-list rather than per
	user subscribing to it), link cc:mail bulletin boards to mailing
        lists and enforce some control on list access. Similarly, Tristero
        may be used to allow user-controlled access to specified cc:mail
        bulletin boards, or simply as a means of archiving bulletin
        board messages for later searching and retrieval.

        Using Tristero as a proxy, or firewall ListServer in this manner
        also brings the benefits of RFC822 header minimization, and the
        colourization of both RFC headers and quoted text, which makes
        internet mail much more readable from cc:mail client software -
        importantly, it makes a single point of contact for e-mail users
        with the world of internet mailing lists: one set of commands to
        learn, and options such as digesting available even if the host
        list cannot support it; and for the administrator, control over
        mail usage and abusage.

	Tristero will operate with both cc:mail and external mail users.
	It has been updated to work with both the Lotus Link to SMTP
	and the IMA Internet gateways - Internet users may send subscribe
	and other admin commands, and send and receive mail to/from lists.

	One futher use of Tristero is as a central depository of files;
	members of a mailing list may request indexes and individual
	files from the archive associated with the list - this archive
	contains, by default, mail digests and welcome files, but may
	also be used to store any other files.

	All configuration files are stored in Windows(tm) style INI
	files - these may be manually edited by mail administrators
	or maintained automatically by the program in response to
	commands sent as mail messages to the Postmaster.

Set-Up
------

	The suggested method of installing is to create a directory
	named Tristero as a sub-directory of the router directory. Into
	this load the contents of the zip file, Tristero.ZIP, with the
	exception of the batch file, Tristero.BAT (or Tristero.CMD for
        OS/2 systems) which goes into the router directory. Tristero has
        also been used successfully with beta copies of Windows 95. Example
	batch files for both DOS and OS/2 are supplied in the ZIP package.

        Typical directories:-

                        m:\ccrouter
			m:\ccrouter\tristero

        (Note that Tristero will automatically create subdirectories as
        required, and will add a default archive (00000000) and a log
        directory (logs) when first run.)

	A PostOffice should be defined using the cc:mail Admin command,
	(the default name here is used as Tristero, the PO may be given
	any name allowed by cc:mail, so long as the batch file is renamed
	to suit, and the name included in the GateWayPO INI value) :-

		Name           Type     Address         Comment
		----           ----     -------         -------
		Tristero        P       TASKMGR         Description


	N.B. An actual cc:mail post office (complete with CLANDATA,
	MLANDATA etc) is *not* created; Tristero acts as a post office
	in it's own right, and is defined in the same way that, say, an
	external Ms-Mail or Internet post office would be within cc:mail.

	Multiple aliases may also be set up. To do so, adjust the INI
	value GateWayPO, and the cc:mail directory as the example below:-

		GateWayPO=Tristero,ListServ,majordomo,library

		Name           Type     Address         Comment
		----           ----     -------         -------
		ListServ        p       Tristero        Description
		majordomo       p       Tristero        Description
		library         p       Tristero        Description

	An entry in the call list is also required

		Time    Post Office     Conditions
		----    -----------     ----------
		Auto    Tristero        Min Messages = 1

	A second call entry, to run early in the morning and with no
	minimum messages, may be added to ensure prompt delivery of mail
	digests if there is light mailing-list traffic - Tristero will
	automatically send these out the first time it is executed each day.

	Declaring an alias user for the automatic command handler is
	useful, but not essential. (If doing so, ensure the user name
	given is one of the values in the ListProcNames in the INI file).

                ListProcNames=ListProc,majordomo,postmaster,administrator,librarian

		User           Type     Address         Comment
		----           ----     -------         -------
		ListProc        l       Tristero        Mailing List Manager
                Librarian       l       Tristero        Mailing List Manager


Sending commands to Tristero
----------------------------

	Send a message to Postmaster at Tristero or to any of the alias
	names set up in the ListProcNames value of Tristero.INI. It is
	suggested that aliases are used to give compatibility to other
	common systems, e.g. MajorDomo, ListProc, ListServ. Send the
	commands in the body of the message, each on a line of its own.

	Sending the single word HELP will result in a reply being sent
	from the Tristero gateway with an explanation of available commands.
	Note that many of the commands have synonyms, to reduce the
        frequency of rejected messages, and to cope with users accustomed
        to the varying command sets of Internet listservers. For instance,
        SUBSCRIBE may also be rendered as JOIN or SUB; GET as FETCH or FTP.

	Also, the [Admin Subjects] section of the INI file may be used to
	automatically redivert those irritating subscription commands sent
        to the mailing list rather than the mailbot. Also, users accustomed
        to majorodomo systems may send sub and unsub commands to, e.g.,
        yoyodyne-chat-request rather than to Tristero or ListServ - these
        will automatically be redirected to the automatic mailbox, and if
        the listname is omitted from the subscribe, unsubscribe, index,
        info or get commands it will automatically be filled in with the
        -request prefix, e.g. yoyodyne-chat.

        Other majordomo supported suffixes are '-owner' and '-approval' -
        the latter is used for the moderators of moderated lists, and the
        former may be used to send mail to the owner of the prefixed list.
        These three automatic suffixes are only recognized if there is not
        already a Tristero ending thus.
        list


Sending Messages to a List
--------------------------

	Address messages to: listname at Tristero

	The listserver will automatically forward this message
	to everyone on the list.

	For frequently used mailing lists (or lists which will be
	accessed by foreign mail systems which cannot directly
	address the Tristero post office) it will be useful to
	create an alias user:-

		User           Type     Address         Comment
		----           ----     -------         -------
		listname        l       Tristero        Description


	N.B. Tristero can do this automatically if the import statement
	for the Tristero.ADE file is enabled in the batch file. It will
        also send ADE (Automatic Directory Exchange) messages if a list
        is deleted, or it's description changed. An ADESYNC command is
        available, either in the form 'ADESYNC' available only to SuperUsers, which sends out ADE entries
        for all lists; or in the form 'ADESYNC listname' which sends out
        only the specified update, and is available as a command to
        ListOwners and PostMasters.


Creating a new list
-------------------

	Unless the gateway has been set to freely allow list
	creation with the CONFIG OPENCREATION admin command, it is only
	available to SuperUser or PostMaster equiavlent users, or
	users assigned ListOwner privileges for the list name.

	Send the following command to Postmaster at Tristero:-

		CREATE listname description of list

	e.g.	CREATE yoyodyne-chat	Discussion on Yoyodyne products

	The person creating the list is automatically subscribed to
	it and set as the list owner.  If an announcement list
	has been set, all members of the list will be informed of
        the new list creation. Note that list names are not limited
        to 8 characters, and may contain spaces - in the latter case
        the list name should be enclosed in double quotation marks.

	Others may then join the list by sending:-

		SUBSCRIBE listname

	The listowner may also add or remove names directly:-

                ADD Oedipa Maas At Yoyodyne
                ADD listname user@bloggs.com at internet
		ADD listname #ccmail-bulletin-board
                ADD listname [networks-l@swh.edu At Internet]
		REMOVE listname jean at accounts

        N.B. the bracketed address form is a special instance used
        for two-way client/server list connections - Tristero will
        forward to this address *only* mail which does not originate
        from the same post-office as the bracketed address. In this
        way a local list can be set to pass back only locally created
        mail back to an internet list, or two Tristero lists at separate
        post offices can be made members of each other, without having
        duplication or eternal loops of mail.

        A special version of this command is provided as a short-cut
        for creating a local client list for a remote host list on
        another listserv where both local and remote lists have the
        same name, e.g.

           CREATECLIENT ccmail-l listserv@vm1.okstate.edu At Internet

        The first parameter is the name of the Tristero list to be
        created; the second is the subscription address of the remote
        list - Tristero will use the default syntax for the host software
        (ListServ, ListProc, Tristero, majordomo or Mailbase) and assume
        that the host list has the same name as the local one. If the
        post office is omitted at the end of the subscription address,
        'At Internet' will be automatically added.

        If the list has been set to CLOSED, then the ADD command is the
        only way in which new members may be added. Additionally, users
	may not mail to, or list the membership of a closed list to
	which they are not subscribed. Any attempts to subscribe will
        be automatically forwarded to the listowner for consideration.

	Other owner commands:-

		SET listname CLOSED
		SET listname OPEN
                SET listname HIDDEN
                SET listname MODERATED
                SET listname APPROVAL
		SET listname TITLE new description of list
		SET listname REPLY reply address
		SET listname PROXY remote-listserver-address
                SET listname PROXY-TYPE majordomo | listserv | mailbase | etc
		KILL listname filename
                PROXY listname command-line-for-remote-listserver
                PROXYBBS listname SUB #ccmail-bulletin-board
                PROXYBBS listname UNSUB #ccmail-bulletin-board
		PUT listname
                ADESYNC listname
                
	The reply address can be set to the list name, the original
	message poster, or a fixed address. Setting reply to 'Poster'
	(the default) encourages mailing list members to follow up
	to the original poster, rather than cluttering the list with
	replies. Setting to a given address is useful, inter alia, for
	setting up local relays of internet mailing lists - the site
	admin has the choice of directing replies to the internal list
	or to the internet mailing list itself. Naturally, users may
	override the reply address; however, these options are useful
	to set defaults for the user who just hits reply.

	The KILL command allows the ListOwner to remove files or digests
	from the list archive - only ListOwner, PostMaster or SuperUser
	may do this.

	Typical PROXY command lines are:-

		PROXY ccmail-l SUBSCRIBE ccmail-l
		PROXY test-l SET NOMAIL

	The command line following the list name is in the syntax of
	the host listserv. The command is sent with the sender address
	of the list - this means that the remote listserver will choose
	the correct address for subscription processing, and obviates the
        need to create temporary cc:mail users to send from. If the command
        line is omitted, Tristero will create one based on the local list
        name and the remote subscription address, automatically adjusting
        the syntax for mailbase, listproc, listserv and majordomo systems.

        The PROXYBBS commands will add the specified list into, or remove
        from, the named cc:Mail bulletin-board on the post office from which
        Tristero is run. In order for this function to operate, aliases
        for Tristero lists must be present in the post office directory, and
        the ADE import line enabled in the Tristero batch file - Tristero
        automatically maintains these aliases if the ADE import is used. For
        Tristero, the bulletin board is just another contributing subscriber;
        several bulletin boards may be gatewayed into a single list, or one
        into several, and combined with proxy subscriptions to remote lists.
        Additionally, bulletin board mail may be archived and filtered.
        


PostMaster Commands
-------------------

	PostMaster commands are only available to SuperUser, or to
	users assigned PostMaster or SuperUser equivalence.

		DESTROY listname
		SET listname ARCHIVED
		SET listname UNARCHIVED
		SET listname OWNER newowner at newpostoffice
		SET listname TYPE OPEN
		SET listname TYPE CLOSED
		SET listname TYPE HIDDEN
		SET LANG language FOR user-name
		GRANT access-right TO user [FOR list-name]
		REVOKE access-right FROM user [FOR list-name]
                SET password [FOR user]

	If a list is destroyed, all members of the list will have
	theis subscriptions automatically cancelled, and will receive
	an e-mail informing them of this action. In addition, if an
	announcement list has been set up, all members will be informed
	of the removal of the list. Likewise, if the archiving of a list
	is switched off, all digest users will be automatically switched
	back to standard posting, and receive an e-mail to this effect.

	If the 'FOR list-name' is omitted from a GRANT or REVOKE statement
	the default is set to all lists ('*'). Also, the 'TO' or 'FROM'
	keywords may be omitted. Note that the user-name for the
	SET LANG, GRANT and REVOKE commands may be a standard cc:mail
        user address, or a wildcarded address. A '*' wildcard may also
        be used on the INFO command, to return membership for all lists.


User commands
-------------

	Users may send the following commands:-

	      HELP            (for a list of commands and their usage)
	      LISTS           (for a list of available mailing lists)
	      LANG english    (set the language for all admin responses)
	      INFO listname   (for the membership, owner & status of a list)
	      SUBSCRIBE listname
	      UNSUBSCRIBE listname
	      SET listname DIGEST period
			       (period may be DAY, WEEK, FORTNIGHT, MONTH
			       or a numeric value. The default is 1 day; this
			       will be set if SET list DIGEST ON is set)
	      SET listname DIGEST OFF
	      SET listname DIGEST SUMMARY (set to summary-only digest)
	      SET listname DIGEST NOSUMMARY (switch off subject summary)
	      SET listname DIGEST FULL (set back to summarized digests)
              SET listname DIGEST CATCHUP (skip unread digest postings)
              SET listname DIGEST REWIND  (set digest back one period)
              SET listname NOMAIL
              SET listname MAIL
              SET listname POSTPONE (ListProc synonym for NOMAIL)
              SET * NOMAIL      } (as above, but acts on all lists)
              SET * MAIL        }
              SET NOMAIL        }
              SET MAIL          }
	      SET LANG language  (permanently set their language)
	      GET listname filename
	      SEARCH listname search-text
              PASSWORD password
              SETPASS password

SuperUser Commands
------------------

	      CONFIG GET              Reply with attached INI & LOG files
	      CONFIG OPENCREATION     Allow anyone to create lists
	      CONFIG CLOSEDCREATION   Allow only SuperUser to create lists
	      CONFIG ANNOUNCE list    Set `list' to be the announcement list
	      CONFIG ANNOUNCE         Switch off automatic announcements
	      CONFIG ATTACH x:\jjk.x  Send back file x:\jjk.x
	      CONFIG COMMAND dir *.l* Execute command `dir *.l*'
              CONFIG SORT             Sort lists in alphanumeric order
              CONFIG OPTIMIZE list    Bunch recipients by post office
              CONFIG OPTIMIZE *       As above, for all lists
              CONFIG SECURITY         Report security and language settings
              ADESYNC

	Note that care should be taken that remote command execution does
	not result in a condition which prevents Tristero or the cc:mail
	Router from continuing. As a preventative measure, Tristero will
	answer Y to any command, e.g. DEL, requesting a yes/no response.
	Output from the execution of the command will be returned in the
	automatic reply.

	Attempts by anyone else to execute SuperUser commands will be
	logged, and a warning sent to the SuperUser.


Automatic Responses
-------------------

        Tristero will send an automatically generated mail on the
        following circumstances:-

Mail To User
        Post to a mailing list rejected
        Over-long post truncated
        Added to a mailing list by superuser, listowner or postmaster
        Removed from a mailing list by superuser, listowner or postmaster
        Destruction of mailing list to which user subscribed
        Removal of archiving from list, and subsequent switch from digest mode
        Post to mailing-list sent with Receipt Requested set

Mail To SuperUser
        Tristero<->Tristero mail loop
        Mail generating unknown error conditions
        Security violation attempt of superuser only functions

Mail to Announcment List
        Creation of mailing list
        Removal of mailing list

Mail to ListOwner
        Forwarding of subscription request for closed list


Emulating other mailbots
------------------------

        Tristero has built in aliases for all the most frequently used
        commands of the major mailing list managers - majorodomo, listserv
        listproc and mailbase. In addition the INI file allows the default
        names of both the gateway and the automatic mailbox to be customised
        and for any number of aliases to be set up. Suggested values are:-

        ListProcNames=ListProc,majordomo,postmaster,administrator,mailbase,listserv
        GateWayPO=Tristero,ListServ,majordomo,ListProc, mailbase

        A summary of the command aliases is given in the file 'Tristero.Sum'
        enclosed in the same ZIP distribution as this document. As described
        above, the '-owner','-approval' and '-request' suffixes are
        recognized and processed appropriately by Tristero.

        Additionally, the multiple language files (.LRI) which Tristero
        supports may be used to provide customized Help and command
        responses by providing 'Mailbase' or 'ListServ' as languages
        in addition to the supplied 'English' and 'German'.


Gatewaying Internet Mail to Bulletin Boards
-------------------------------------------

There is a common requirement to gateway Internet mailing lists onto
cc:mail bulletin boards - this usually involves some complicated
aliasing. With Tristero, create a mailing list in the usual way, then
use the SET list PROXY command to register the full cc:mail address of
the foreign ListServer. Next, use the PROXY list command to send the
subscription command. Optionally, the external mailing-list address may
be added as a list recipient, to enable two-way list gatewaying - if
doing this, place brackets, [ and ], around the address; this will
prevent Tristero from looping external mail back to the external list. Note
that some remote lists only accept postings from subscribed members: for
such lists, set the Reply Address to List rather than Poster - if it must
be Poster (i.e. for bulletin board presentation) a mail aliasing filter
such as Emptor must be used to change the sending address of all mail to
the internet list to be from the local list rather than the original sender.

Then add the bulletin board to be used to the mailing list, either by
direct editing of the INI file or sending an ADD command to the gateway.
Since this is a standard mailing list, users may also subscribe to it in the
usual fashion and receive the mail privately rather than via a bulletin
board - this is ideal for non-cc:mail users interfaced to the system, or
cc:mobile/cc:remote users.

Example of using Tristero to set up a two-way client mailing list, which
gateways internet mailing-list mail to a cc:mail bulletin board:


	CREATE ccmail-l cc:mail discussion list
	SET ccmail-l PROXY listserv@vm1.okstate.edu At Internet
	PROXY ccmail-l SUBSCRIBE ccmail-l
	ADD ccmail-l #bit.listserv.ccmail-l
	ADD ccmail-l [ccmail-l@vm1.okstate.edu At Internet]

N.B. - if a list is set to be CLOSED then *only* mail from defined members
will be accepted for propagation. Many internet mailing-lists set the
sender address to be the name of the original poster, not the actual
list sending address; to accept such mail, use the ACCESS.INI file to
define the access as in this example:-

"* At Internet","Poster","ccmail-l","","",""


The advantages of using Tristero as an interface to Internet mailing lists:-

     *   reduced transmission costs - receive just one copy of each mail
     *   strip unwieldy RFC headers
     *   make internet mail easier to read by colour-coding headers & quotes
     *   add cc:mail bulletin boards or mailing lists as recipients
     *   local control over subject filtering, return address setting
     *   proxy command sending of subscription/unsub commands
     *   standardization of admin commands for local users
     *   single point of subscription for users


Mail Digests
------------

Any list which has the archiving option set on may have digest mail sent
at periods determined by the user. At the top of each digest is a tally
of the number of messages, and number of individual subjects, and a list
of all the subjects. The complete post for each day of the period is
attached as a text item (file item if greater than 20K).

In addition to automatic digest sending, users may request manually any
given day using the GET command, and use the INDEX command to search for
keywords.

If archiving is switched off, all users with digest mail for that list
are informed, and their subscription automatically adjusted to the standard
method.

Digests are sent out the first time that Tristero is run on any day, i.e.
the first execution after midnight. Since digests are sent whether or not
there are any messages to be propagated (i.e. a TRISTERO.EXP file present),
it is advantageous to run Tristero at a set time early in the morning; this
will shift the processing load away from office hours, and guarantee that
digests are processed every day. A suggested call entry is:-


		Time    Post Office     Conditions
		----    -----------     ----------
		02:00   Tristero        [None]

Digest summaries present a 'topics du jour' list at the top of every
digest. Each subject is listed in order of occurrence, and multiple
subjects indicated with a count in brackets. Prefixes such as 'Re:' and
'Re [3]:' are ignored for the purposes of summarization. Users may
request summarized, unsummarized or summary only digests, and may also
set the 'last digest date' back or forward using REWIND & CATCHUP.


Lists within Lists
------------------

It's possible in Tristero, to set up hierarchial lists. This is similar in
concept to bankshot routing in cc:mail, but since Tristero can handle
mailing lists of any size, this is now an option rather than a necessity.
A master list may contain a list of departmental lists, which contain
a list of team lists, which contain a list of team members, and so on. The
members of the sub-lists receive all mail sent to the master list, but
have no other rights to the master list, unless it is set to type 'Open' or
they are explicitly granted rights via the GRANT command. This can be
used to implement both 'bankshot' type lists, and an alternative means
of setting up moderated lists (q.v.).

If this functionality is desired, the BREAKLOOP value of Tristero.INI
*must* be set to 0. If this flag is set to 1, then Tristero discards all
mail it receives from itself, with the sole exception of messages to
the automatic announcement list; such messages are logged and redirected
to the superuser. This is an ultra-safe setting to prevent the loop which
would result if two mailing lists were made members of each other. If
set to 0, Tristero will accept messages from one list to another; it will
still detect *error* messages received to itself from itself, log them
and redirect to the gateway superuser. Further, the two features of
forwarding subject prefix and subject keyword filtering, may be combined
as an alternative method of loop prevention.

As of v3.1.0, Tristero will now display full user lists for hierarchial
lists in response to the INFO (aka RECIPIENTS, REVIEW, WHO) command, up
to a maximum depth set by the INI value MaxListDepth. In executing this
command, Tristero also analyzes its list structure for mail loops and
reports these both to the screen and to the log.


Moderated Lists
---------------

As of v3.1, Tristero offers direct, but limited, support for moderated
lists - the current features are described as limited, in that there is
no mechanism to prevent multiple moderators forwarding a single post
several times to a list, and no means of preserving the original sender's
address after forwarding - this is a result of the limitations of cc:mail
vis-a-vis SMTP mail; full support is under active consideration for
inclusion in future releases of Tristero. However, such lists can be set
up already with the existing feature set, and new v3.1 options:

New Features in v3.1

        New list type 'Moderated' - as an 'Open' list in all respects
                with the exception of posting and file uploading, which
                are restricted to membership of the equivalent '-approval'
                list, if present, or to users explicitly GRANTed access

        New list type 'Approval' - as 'Hidden' type with the exception
                that postings and file uploads are accepted from
                non-members. However, all other actions are restricted
                and the list does not appear on the 'LISTS' display, nor
                can its membership be displayed by a non-member.

        Automatic diversion - if a user attempts to post to a list of
                *any* type to which she is barred, Tristero will check
                for the presence of an '-approval' suffixed version of
                the list, and send mail to that instead, permissions
                allowing. Note that neither the original, nor the
                '-approval' list need be of the new 'Moderated' and
                'Approval' types.

        -approval lists - these are a special case in two situations -
                a) diversion of mail sent to closed/moderated groups to an
                '-approval' suffixed version, and b) used as a membership
                lookup for posting permission for sends to Moderated only
                lists. Also, if the original list has the common '-l'
                suffix, this will be automatically stripped off, before
                the '-approval' is added. If a list is created with such
                a suffix, it will automatically be set to type 'Moderated'
                rather than the usual 'open' default.

Useful existing features

        GRANT and REVOKE
                'Recipient' and 'Poster' rights may be assigned to any
                list, user or group of users. These provide the equivalents
                of moderated and approval lists respectively.

        Hierarchical lists
                People may be made recipients of a sub-list rather than
                members of the list itself, thus making them recipients
                without necessarily having posting rights, while moderators
                or others with direct access are made members of the list
                itself - an alternative to moderated type lists.

        NOMAIL
                The NOMAIL commands, which may also be set by manual INI
                file editing with braces,{ and }, around the names of
                list members who are present on the list for access purposes
                but do not receive mail - an alternative to approval lists.


An example, with sample mailbot commands, is given below:-
               
        create a list, e.g. paranoia-l, with type moderated
                CREATE paranoia-l "Paranoia Discussion"
                SET paranoia-l MODERATED
        create another list called paranoia-approval with type approval
                CREATE paranoia-approval "Paranoia-l Moderator's List"
                SET paranoia-l APPROVAL
        add subscribers to the moderated list, paranoia-l
        add moderators to the approval list, paranoia-approval
        Tristero will automatically check for an '-approval' version
                of a list if a user attempts to post to the closed list
                and will redirect the mail to, e.g. paranoia-approval
                if the user has access to this one, or is open.
        Moderators receive mail from paranoia-approval and forward
                approved mail to paranoia-l.

Lists with type 'Moderated' are identical to 'Open' lists with the exception
that posts cannot be made to them by anyone other than a SuperUser, PostMaster
the ListOwner or member of the related '-approval' list. Anyone may subscribe
to this list, and members may search the archives or get files. Lists with
type 'Approval' are similar to 'Closed' lists with the exception that
non-members may post messages to them. As with closed lists, non-members may
not REVIEW the membership or perform any archive commands. It is recommended
that the Reply method for the moderated list is set to 'List', and for the
approval list that the Reply be set to 'Poster' and the ForwardPrefix used
to inform the moderator of the destination list. If Reply is set to 
'Poster' for the moderated list, then the moderator will appear as the
sender rather than the original sender. 

It is also possible to set up moderated lists using the standard features
mentioned above - the flexibility of Tristero's configuration provides a
number of means of separating mail-receipt from posting access. For instance,
'closed' lists may be useful for a list with both moderation and strictly
controlled access. Equally, the 'moderated' and 'approval' lists may be
used for purposes other than moderated lists; e.g. an 'approval' list can
be useful as a replacement for a cc:mail mailing list, to which anyone may
post, but the membership of which is controlled by the administrator. A
summary of their features is given below:-

                Type    Subscription    Posting
                ----    ------------    -------
                 O      Open            Open
                 C      Closed          Members only
                 M      Open            Members of -approval list only
                 A      Closed          Open
                 H      Closed          Members only

Friendlier Messages
-------------------

The following files may be stored in the archive directory for a list (this
has the same name as the member file, e.g. 00000002.ini & directory 000000002)
either by copying into the directory using operating system commands, or
attaching the files to a message sent to Tristero with a PUT command.

	readme.txt      Sent on an INFO list-name command
	welcome.txt     Sent to new subscribers
	farewell.txt    Sent to unsubscribing members
	index.txt       Sent when requesting a list index with INDEX

These files are only sent if present; no error will ensue if they are
missing. Also, a list need not be set for archiving to use these features.


File Repository
---------------

Every mailing list has an associated subdirectory created for it beneath
the directory in which Tristero executes. In here may be stored the
subscriber message file1 des!2)be$ above; Tpi3tero also uses it as a place
to archive messages, creating a file per day. This directory can also
be used to store any number of other files, text, binary, ZIP, graphics etc.
Files may be placed in the archive remotely using the PUT commands or by
copying the files into the directory using the operating system commands.
Users may request an INDEX of the files,  and send the GET or FTP commands
to retrieve a file. Further, the `index.txt' file may be used to give
descriptions of the files present. The exact nature of the automated
index is controlled by the Tristero.INI value IndexCommand; the default
is for a DOS dir - suggested alternatives are:-

	IndexCommand=dir /od         (to give a list in reverse-date order)
	IndexCommand=ndir            (display using the Novell NDIR command)
	IndexCommand=type index2.fil (take list from the file `index2.fil')

Likewise, the results of the SEARCH (synonyms GREP & FIND) command are
determined by the value of the SearchCommand INI value. This defaults to
grep, and a batch file of that name is supplied which provides basic
file searching using the DOS find command; more sophisticated grep programs
may be used in place of the grep.bat file. The command must take parameters
in the format, and send output either to the console or the file SEARCH.TMP :-

	command.exe wildcarded-path search-expression
	e.g. grep 00000001\*.* "this text"

	SearchCommand=grep
	SearchCommand=FileFind /X /O=search.tmp


A default archive is maintained in the 00000000 directory. This is defined
as the equivalent of an open list archive, with owner set to SuperUser. The
list name is omitted for this archive, e.g.

	GET filea.txt
	PUT picture1.bmp
	INDEX
	SEARCH xyz


Reducing Mail Clutter
---------------------

All mailing lists seem to suffer from members who send subscription
and other admin commands to the entire mailing list, rather than to the
automatic command processing mailbox. The [Admin Subjects] section of the
Tristero.INI file permits detection of these based on the subject contents.
The mail will be automatically rediverted and an entry made in the log. N.B.
that this feature operates differently when Tristero is being used as a
client for a remote host: if a Proxy address has been set, any messages with
admin subjects detected will be filtered out - this prevents foreign
mail users maladroit attempts to subscribe to the host list from being
doubly processed by the local list. A log will be made of the event.

Another common cause of mail clutter are automatic receipt and delivery
messages; the [Kill Subjects] section may be used to filter these out. More
powerful filtering may be performed by running Tristero in tandem with the
Emptor preprocessing gateway from Rhizomatics - a single batch file may
run Emptor followed by Tristero. Kill subjects may be used in combination
with forwarding prefixes to prevent mail loops; another use is to add the
posting address of a host list to the mailing list, and use prefixes and
kill lines to prevent mail from the host being sent back to the host.

Optimizing Delivery
-------------------

Tristero has a number of options and features to optimize both the
performance of the gateway itself, and the delivery of the resultant
mail. Internally, all responses read from the default language resource
(.LRI) file are cached, with the cache size set by the ResourceCacheSize
INI value. Further, digest postings are rebuilt from a cache for users
with identical list, period and last-sent settings, *if* the Digest.INI
file is ordered by user and period.

Delivery is optimized by maximizing the number of recipients per mail
message while remaining within the cc:Mail address header limits for
each batch of a large posting. The routing of such mail is further
expedited by having the propagation list bunched by post office - as
of v3.1.0 of Tristero, all new subscriptions are placed automatically
in such an order. A remote command called CONFIG OPTIMIZE (which may
take either a list name or the '*' wildcard as an argument) can be
used to order existing lists, or to sort INI propagation files generated
by other programs; note that this command can take several minutes to
process for large and unsorted lists, but there is very little overhead
for lists which have been previously optimized.

Controlling Access
------------------

Security privileges are assigned in two ways - de facto, and specifically
by means of the access.ini control file. The former includes the user
assigned as SuperUser, owners and members of lists. The latter allows
users, or groups of users, to be assigned superuser-equivalence rights,
postmaster rights, or listowner-equivalence rights. SuperUser and
PostMaster status affect the entire system; ListOwner rights are given
for individual lists on the system. Wildcards may be used for the user
name to assign by entire post office, or one user across many post offices.

The format of the ACCESS.INI file is as follows:-

user name,status,list,language,encrypted_password,flag

Examples:-

Benny Profane at Silver-HQ,SuperUser,"","","",""
Administrator At *,PostMaster,"","","",""
* At Accounts,ListOwner,money-l,"","",""
*.jp At Internet,"","",Japanese,"",""
Kurt Mondaugen At Accounts,ListOwner,*,English,"",""

The `flag' field is for future expansion; future releases of Tristero may
add further levels or types of access.

One line may be used to define the access level, or set the default
language, or both. If, due to wildcarding, a user fits several definitions,
the closest match will be found - an exact match (without wildcards) will
always override all other privilege definitions for a user.

Access privileges may be automatically set using the GRANT and REVOKE
commands. Note that if the file is left in an incomplete state after
a manual edit, this condition will be recitified by a GRANT, REVOKE
or SET LANG statement, with a warning placed in the log.

Valid Privileges:-

        SuperUser       SuperUser equivalence (global)
        PostMaster      Postmaster equivalence (global)
        ListOwner       ListOwner equivalence (for a given list)
        Member          Full subscription and posting rights for a list
        Poster          Posting but no subscription rights (as approval list)
        Recipient       Subscription but no posting rights (as moderated list)
        None            No rights

Access to the list as a whole is controlled by the SET TYPE command,
available to the Postmaster and Superuser. This defaults to OPEN, which
allows anyone to REVIEW, SUBSCRIBE or post to that list. CLOSED lists only
accept posts from subscribers, non-subscribers may not REVIEW the member
list, and all subscriptions must be processed via the ListOwner or
PostMaster. HIDDEN and APPROVAL lists operate as closed lists, with the
exception that they are not displayed by the LISTS command, and are not
acknowledged to exist in REVIEW commands sent by non-members.

A potential security problem is caused by the insecure nature of SMTP
(Internet) mail - it is a relatively trivial exercise to forge a sending
address from a Unix mail account. It is highly recommended that SuperUser
privileges are not given to non cc:mail users; if rights are to be granted
to internet users, passwords may be set and any privileged commands will be
rejected unless preceded by a valid 'PASSWORD pass' command. Passwords are
set using the 'SETPASS pass' or 'SETPASS pass FOR user at poffice'; the
former version allows currently passworded users to change their passwords,
the latter allows SUPERUSER and POSTMASTER equivalents to set passwords for
other users. The user specified may be a fully qualified address, or a
wildcarded user; the password must be alphanumeric and 4 characters or
greater in length and is case sensitive, e.g.

        SETPASS mondaugen FOR * At Internet
        SETPASS profane FOR *.edu At Internet
        SETPASS stencil FOR *
        SETPASS victoria FOR oedipa@yoyodyne.com At Internet

If a password has been set for a user, it must be provided for all
listowner, postmaster and superuser commands and additionally for
file archive uploading and deletions. Passwords are only required if
set for the user - if password access is to be the default method of
security, then ensure that a password has been set for user '*'. All
passwords are stored in encrypted format, and are never decrypted
during operation. For very secure systems it may be advisable to
completely hide the identity of the mailing list management software
being used; this is an option for registered users, further details
available by application to Rhizomatics.


Configuring the Gateway
-----------------------

The INI file has the following settings (this file, and the log, may be
retrieved by the SuperUser remotely with the CONFIG GET or CONFIG LIST
commands). Note that the form of the list definitions has changed
radically as of v3.1, and the SetBlind and ForceLowPriority options have
been replaced by CopyMethod and ForcePriority; however, Tristero will
automatically convert old INI files and no user intervention is
required. The optional variable, INIformat, can be used to keep the INI
file in a format which can be used by any version of Tristero; v3.1 can
read files with settings of N(ew),O(ld) or B(oth) - pre-3.1 only those
of O or B. An example v3.1 format INI file is given below :-

[Config]
RegNum=1000000
RegName=
GateWayPO=Tristero,ListServ
GateWayDomain=tristero.yoyodyne.com
SMTPGateWay=
INIFormat=N
ExportMethod=S
DefaultLanguage=English
ResourceCacheSize=20
AddressLimit=100
FirstDigest=01-01-1995
LastDigest=01-01-1995
ListProcName=Tristero,Listproc,Postmaster,ListServ,Administrator,MajorDomo
IndexCommand=dir
SearchCommand=grep
SuperUser=Oedipa Maas At Yoyodyne
NextListNo=1
LogType=S
LogLevel=2
LogScreen=1

[Options]
OpenCreation=1
DenyReceipt=0
BreakLoop=1
ForwardPrefix=
ForceLowPriority=0
MaxLines=300
SetAck=0
CopyMethod=B
EmptyDigest=1
RedirectCserve=0
AnnounceList=
RFCMin=0
NormColor=70
RFCHilite=78
QuoteHilite=71
QuoteChars=:|{

[Kill Subjects]
kill-line-1
kill-phrase-2
#{Delivery of
#{Receipt of
#{!AM!
...

[Admin Subjects]
#{subscribe
#{unsubscribe
#{help}#
admin-phrase-4

[List name-of-list]
Description=internet discussion list
Owner=Oedipa Maas At Yoyodyne
Reply=Poster
Type=O
File=00000012
Archive=A
NoRRQ=1
ForcePriority=L
Acknowledge=1
CopyMethod=B
ForwardPrefix=[Tristero]
EmptyDigest=1
MaxLines=250

... (repeated for each list)

N.B. All settings are case-insensitive, with the exception of the
kill subject texts.



The [Config] settings in detail are:-

INIFormat       Controls backward compatibility of v3.1 INI files with
                older versions of Tristero. The default is N(ew), which
                creates the INI file in v3.1 format only; O(ld) writes
                in pre 3.1 format and B(oth) maintains an INI file
                which may be read by any version of Tristero. v3.1 can
                work with any of these options; however, it is strongly
                recommended that the 'O' option be used only to recreate
                an old format INI file to run a previous version of Tristero.

ExportMethod    Set this switch to I if the ITEMSIZE parameter has been
                used on the cc:mail EXPORT command line. To maintain
                compatibility with older Tristero batch files, the default
                value is S for non-ITEMSIZEd exports.

GateWayPO       The name of the Tristero post office. Defaults to
                Tristero; a unique name may have to be chosen if
                registering the post office with the CompuServe hub.
                Multiple names may be given - in such a case, Tristero
                will respond to mail sent to any of the aliases, but
                will use the first given as the official one, used
                as the sender of all mail.

GatewayDomain   The full domain name of the Tristero gateway, if connected
                to the Internet; i.e. everything past, but not including,
                the at (@) sign.

RegNum          The registration number for the gateway. This will
                be supplied upon payment of the registration fee. The
                default number is 100000; the gateway is fully
                functional with this evaluation code.

RegName         The registered licensee name of the gateway. This is
                only activated with a valid registration number.

SMTPGateWay     If using the Link to SMTP gateway, enter the PO name here.
                Tristero will then be able to cope with the non-standard
                message format produced from such mail.

DefaultLanguage The resource file used by default for all message texts.
                There must be an xxxxxx.LRI file for the value xxxxxxx.
                Multiple files can be used for expert and beginners
                resources, in addition to language texts.

ResourceCacheSize This value controls the size of the pointer cache
                  for the default language resource file. A cache of
                  50 consumes less than 1K of system memory, and can
                  appreciably increase the speed of mail processing.

AddressLimit    Import for cc:mail imposes a limit of 4K for total
                address information. This value defaults to a safe limit
                of 100 addresses for any one message - if a message has
                4000 recipients, it will be sent as 40 identical messages
                each with 100 addresses. This value may be altered up or
                down; Tristero will now automatically detect if the
                address buffer limit is reached, and start a new batch.

MaxListDepth    Sets maximum level of nesting for displaying members of
                lists within lists using the INFO command. Does not affect
                depth to which posts will be proagated to such hierarchial
                lists. Warning - setting this value too high may cause
                Tristero to run out of file handles on systems with low
                FILES settings in CONFIG.SYS and very deep nesting; an
                explanatory error message will be displayed on screen and
                in the log in this event.

FirstDigest     The earliest date for which digest mail will be sent. Use
                this to limit processing and mail-load for very infrequent
                users. Defaults to the beginning of 1995.

LastDigest      The last date for which digests have been sent. Usually
                Tristero will send out digests just once per day, on
                the first occasion it is run. Since no input file is
                required to produce digests, a call-list entry with
                no minimum messages may be used to schedule digest
                processing for early in the morning.

ListProcName    Enter a name (or names) of the Tristero postmaster to
                whom automatic subscription etc requests should be
                directed. Multiple names should be separated by commas.
                The first name given is used as the sender name for
                any administrative replies or warning messages. By
                default, such messages are sent by PostMaster at Tristero.

IndexCommand    An operating system command or batch file executed
                to create an index of an archive. If set to no value,
                archive indexing will be disabled, and only an INDEX.TXT
                file will be sent if present.

SearchCommand   An operating system program or batch file executed to
                search the file archive of a given list. If left blank,
                archive searching is disabled.

SuperUser       This is the mail address of the gateway administrator,
                able to add or remove names from any list, destroy
                lists, send config commands, and - optionally - be
                the only user able to create new lists.

NextListNo      Holds the number of the INI file (format 00000006.INI) to
                be created for the next new mailing list. This is
                a gateway-maintained value.

LogType         This may be set to S, for a single logfile named
                Tristero.LOG held in the working directory, or set
                to D for a logfile to be written by day to the
                subdirectory LOGS beneath the working directory. The
                format of the file name is, e.g. LS950603.LOG.
                Alternatively, N will switch off logging.

LogLevel        Controls level of logging to disk. 0 is no log; 1 is
                date/time, 2 is error messages, 3 warning messages, 4
                process tracking and 9 for full debug. Default 2.

LogScreen       As LogLevel. Additionally, setting to loglevel 1 or
                greater enables the processing progress bar. Default 1.



The [Options] settings in detail are:-

OpenCreation    If set to 1, any user may create a new list; otherwise
                only SuperUser, super-user equivalents, postmasters and
                predefined listowners may do this. Also configurable
                remotely:-

			CONFIG OPENCREATION
			CONFIG CLOSEDCREATION

BreakLoop       All posts received by the Tristero gateway, which were
                received from the Tristero gateway (with the exception
                of posts to the Announcement List) will be diverted to
                the SuperUser if this switch is set.

ForwardPrefix   If given, this text will be used as a prefix for the
                subject line of all messages. This can be useful in
                identifying posts caught in a mail loop. A special
                format is recognized to use the mailing list name as
                the prefix, e.g. (using posts from list `dept-list'):

			#[List]#        sets a prefix of [dept-list]
			#{List}#        sets a prefix of {dept-list}
			# List #        sets a prefix of  dept-list

DenyReceipt     If set to 1, any Requests for Receipts will be removed

ForcePriority   If set to L, N or U all mail will be marked as low, normal
                or urgent priority respectively. If set to a blank value,
                Tristero will use the priority originally set by the poster.

MaxLines	Maximum number of lines permissible in a post to any list.
                Messages beyond this size will be truncated, and a warning
                message sent to the poster. Many listserv sites set this
                value to 255, to prevent lists being swamped by junk mail.
                To switch off this feature, set MaxLines to 0.

SetAck          If set to 1, messages sent to a list will be sent to
                all members, including the original poster. If set to
                0, the poster will not receive a copy of his message.

CopyMethod      If set to B, mail will be addressed using the blind
                copy (bcc) mechanism, which preserves list privacy
                and reduces the size of message headers. If set to
                C, the carbon copy (cc) method is used - this may
                be useful on small systems to allow users to know
                who else is receiving the message. Setting to T will
                enable the standard 'To' addressing mechanism - this is
                essential if return receipts are to be generated by the
                mailing list recipients.

EmptyDigest     If set to 1, then digests will be sent out for every
                period, with an explanatory message if there is no mail
                within the digest period. If set to 0, then no digest
                message is sent when there is no mail for the period.

RedirectCserve  If set to 1, mail received from the CompuServe cc:mail
                gateway will have it's sender address altered. If
                prefixed by 'INTERNET:' the prefix will be removed
                and the Post Office changed from 'CSERVE' to 'INTERNET';
                likewise if the prefix is 'X400:' the post office
                will be changed to X400. This is designed to be used
                with the Emptor external mail preprocessing gateways
                from Rhizomatics, in conjunction with the CIS mail hub.

AnnounceList    This can be set to null (default) or to the name of
                a Tristero mailing list. If set, all creations of new
                lists will be automatically announced to members of the list.
                This can be set remotely by SuperUser by sending:-

			CONFIG ANNOUNCE list-name

RFCMin          If set to 1, the RFC header on Internet mail will be
                minimized to newsgroups, followups and message-id.

NormColor       This is a cc:mail colour value. If set, all posts will
                have their standard text changed to this colour. The colour
                values are found in the Appendix of the Lotus cc:mail
                IMPORT/EXPORT manual. Standard value is 70, which is
                white (7) background with black (0) text.

RFCHilite       Another colour value. This controls the colour of the
                RFC header on internet mail.

QuoteHilite     This is the cc:mail colour of quoted text.

QuoteChars      Specifies a list of characters, any of which being present
                in the left-most margin of an e-mail message body, detect
                quoted text, with colour changed accordingly.


The [Lists] settings in detail are:-

Description     List description as appearing in LISTS display

Owner           Address of list owner (used for security permission
                and forwarding of subscription requests to closed lists)

Reply           Sets the sender address, and thereby the address to which
                any replies from users are sent by default. Options:-

                Poster  -       original sender given as from address
                List    -       listname at Tristero given as sender
                Forwarded -     Tristero listname used internally as sender
                                (does not appear on bulletin boards)
                Tristero -      Automatic mailbot address
                Owner -         Address of list owner
                joe@soap.com -  joe@soap.com set as fixed reply address

                If any of these options are suffixed with a '*', the 'List'
                address will appear as a secondary reply address in
                addition to the standard option as the sender address.

Type            Open, Closed, Hidden, Moderated or Approval

File=00000012   File name of INI config, and directory name of
                archive

Archive=A       A for archived, U for unarchived

NoRRQ ...       The other settings are overrides for the default settings
                set in the [Options] section, and only appear when differing
                from the standard settings. If omitted, the global values
                are used; these are also set as defaults for new lists.

The [Kill Subjects] settings in detail are:-

Any word or phrase given on a line will be searched for in any position
of a message subject - any such message will then be filtered out. This
is useful in detecting nuisance mail and breaking mail loops.

One extra feature of kill subjects permits phrases to be found only
at the beginning or only at the end of a subject. Examples:-

#{Rule:                 filters only subjects beginning with `Rule:'
subscribe               filters subjects with `subscribe' in any position
MS-Mail}#               filters subjects ending with `MS-Mail'
#{CONFIG GATEWAY}#      filters subjects exactly equal to `CONFIG GATEWAY'



The [Admin Subjects] settings are:-

These are in exactly the same format as the Kill Subjects, with the
same means of determining phrases found in the beginning, end or anywhere
within a subject. All mail with such phrases in the subject will be
rediverted to the automatic command processor, thus preventing the
mailing list being cluttered up with missent sub/unsub messages.




Supplied Files
--------------

Tristero.BAT            Batch file executed by Router
Tristero.CMD            OS/2 Command file executed by Router2
Tristero.EXE            Executable program
Tristero.INI (*)        Initialization file. N.B. if this file is missing
                        a new one will be automatically created with
                        values set to defaults

DIGEST.INI   (*)        Mailing List members with digest option set
PROXIES.INI  (*)        Stores the proxy addresses for each list
ACCESS.INI   (*)        Access control file
ENGLISH.LRI             Language resource file for default language
GREP.BAT                Supplied file search utility. Can be replaced
                        by another program, or omitted if the INI value
                        SearchCommand is set to blank.

QUOTE.EXE               A freeware program which puts quotation marks at
                        the beginning of a text file - used to protect
                        ccmail.und files when importing in a batch file

Tristero.LOG (*)        A log file of all config and forwarding transactions
                        (if the LogType=D option is set, the log file will
                        be written per day into the LOGS subdirectory).
Tristero.EXP            The cc:mail export file used as the input to Tristero
Tristero.IMP (*)        A cc:mail import file with forwared messages
Tristero.ADM (*)        A cc:mail import file with results of admin commands
Tristero.REJ            An import header to cover any undeliverable imports
Tristero.ADE (*)        Directory Updates output file

(*)     Files marked are automatically created by Tristero

TRISTERO.TXT            This documentation file
TRISTERO.SUM            A summay of mailbot commands, with synonyms


Creating New Language Resource Files
------------------------------------

	Tristero is supplied with an English language resource file. This
	contains the text of all messages sent to users. This file may
	be freely edited, and multiple versions kept. Entries are of
	three types, and may be separated by blank lines :-

	tag001* This is a free format help line

	tag002=This is a single line string, referred to as tag002

	tag003:
	tag003:This is a multiple line message. As many lines, (blank
	tag003:or otherwise) as are specified with the tag, will be
	tag003:displayed on the user message.

	Be careful not to delete or rename the first six characters,
	which form the 'tag' of the resource. Tristero will not fail
	if these cannot be found, but will display blank values.

	Performance of message processing is improved if comment lines
	of the working version of the resource file are minimized, and
	if tags are ordered according to frequency of use.


Potential Problems
------------------

An inherent problem in all mail rules systems and automatic mail
processing gateways is the creation of endless mail loops, when an
e-mail is automatically bounced ad infinitum between two mailbots. To
minimize the possibility of this happening with the Tristero gateway, the
`BreakLoop' and `DenyReceipt' switches are provided. The latter suppresses
the auto-receipt feature of cc:mail, and the former will filter out all
messages received by the Tristero gateway, which also originated with
the gateway. Further, a prefix can be placed on the subject of all mail
propagated to list members to identify it as sourced from Tristero. It
is recommended that the "INFO *" command be used to check for possible
internal mail loops if BreakLoop is set to 0, and thus permitting the
sending of mail from one Tristero list to another.

The [Kill Subjects] section of the INI file can be used to filter out
both mail loop messages, and the automated replies from server-rules
packages, such as Absentee Manager (tm). Each phrase should be placed
on a line of its own in the INI file, and every subject will be searched
for the presence of the string - messages with it present will be
returned to sender (for non-proxy lists), and details recorded in the
log. Moreover, a count of suspected mail loops, bad addresses and
filtered mail will be given both on the screen at execution time, and
in the log file.

Using Tristero as a client/server gateway must be done with care to
ensure that external mailing-lists are not mail-bombed or set into mail
loops. The [Kill Subjects] section is useful to prevent receipts or
automatic out-of-the-office replies being forwarded to a list. Also,
square brackets placed around a recipient address, will prevent that
recipient from receiving mail sent from the same post office or gateway.
Setting MaxLines is also a useful way to prevent list members being hit
by giant posts - the post will be truncated and a warning sent to the
poster. Internally, a limit of 20 errors is set for incoming administrative
posts, which prevents huge posts consuming up mailbot processing time.

If manually editing INI files, be careful when using screen-based editors;
many of them do no automatically put line-feeds at the end of new-lines, in
which case, make sure that the Return/Enter key is pressed at the end of
each line; if not, Tristero will be unable to determine when one line starts
and another ends, and may report premature end-of-file errors; however, it
will not terminate and will attempt to rectify the problem automatically.
This is not a problem if Tristero is doing all it's own INI file maintenance.

If Router runs out of memory while executing Tristero, ensure that the
SWAP parameter is placed on the command line, either to SWAP/EMS if the
router has expanded memory, or to SWAP/c:\temp to a directory on a local
or network drive. Also ensure that the router executing Tristero has
rights to create and delete files in the Tristero directory and the
subdirectories beneath, and that none of the files asterisked above
have been marked read-only.

An inherent problem in the text-based nature of the cc:Mail Import/Export
suite is the sensitivity to certain keywords if present in a message. For
instance, if a line of a user's text begins 'File item: blah blah', this
is sufficient for cc:mail to treat the rest of the message as a text item.
As of v3.1, Tristero can now support export item sizing, which produces a
file for Tristero to process with real keywords and quoted keywords clearly
distinguished. To implement this, add the keyword 'ITEMSIZE' to the
EXPORT command line of the batch file which runs Tristero and set the
INI variable 'ExportMethod' to a value of 'I' (any other value tells Tristero
not to use item sizing). Note that Tristero does not support ITEMSIZE for
re-importing mail to cc:mail - DO NOT use the ITEMSIZE keyword on the
IMPORT command line - instead, Tristero protects any quoted keywords within
messages in such a way that cc:mail Import can distinguish them without the
necessity of selecting the ITEMSIZE keyword. Itemsizing is a minor processing
overhead and its guarantee of transparent processing makes it highly
recommended for all Tristero implementations. Since, if the ExportMethod is
set to I, Tristero will reject any messages without item size values, it is
essential that this is not selected unless the EXPORT command line is also
changed for itemsizing - otherwise, all mail will be ignored.




Version History
---------------

v3.1.4
        Fixed bug which caused system error on first list CREATE command
        LIST SORT and OPTIMIZE commands now prevented being run with no lists
        HELP command now gives full internet address for subscription commands
        SET PROXY adds on SMTPGateway value or 'Internet' if no Post Office given
        Automatic recreation of missing ACCESS.INI file fixed
        ADD LIST will now automatically increment NextListNum if a manually
                altered conflicts with an existing file
        Colourizing now applied to all admin messages
        SET PROXY & PROXY-TYPE commands now return host list processor type

v3.1.3
        Fixed bug which caused 'no list known' to appear for some commands
        Fixed bug which caused some commands to refuse to recognize SuperUser
        Fixed problems in converting old format Tristero.INI files
        Fixed problem when adding the very first list, and adding multiple names
        Improved format for announcement message
        Added more Debug Level 4 detail for auto command processing

v3.1.2
        Fixed digest.ini period field error on nomail subs
        Fixed SET DIGEST CATCHUP & REWIND not being applied

v3.1.1
        Now ignores header information in forward items sent to mailbot
        Improved processing speed
        Adapted to work with new CompuServe mail hub delivery format
        Fixed error causing some mail to be reflected to proxy host
        Added LogLevel & LogScreen INI variables to control logging

v3.1
        Enhancements:
                New INI format for list definition, making config easier
                        to read, and giving more options configurable by
                        list rather than globally. Conversion to this
                        new format is handled automatically by Tristero.
                Support for ITEMSIZE parameter in EXPORT commandline, and
                        automatic protection of keywords quoted in messages.
                Added new progress indicators
                New commands to optionally enforce password security for
                        all privileged operations
                New PROXYBBS list SUB & UNSUB commands to use Tristero as
                        a client list for cc:mail bulletin boards
                New CREATECLIENT command to simplify setting up a client
                        list to a remote internet mailing list
                PROXY command can now automatically generate a command
                        string if omitted for most common MLMs, using
                        a PROXY-TYPE where set, or based on the sub address
                New SET PROXY-TYPE to override Tristero's judgement
                        of remote MLM software identity
                CONFIG GET command now amended to return ACCESS.INI and
                        PROXIES.INI files if present
                New CONFIG SORT command to sort mailing list displays
                                New STOP & END commands to signal end of command list
                New CONFIG SECURITY command added to report on access levels,
                        password settings and default languages
                New CONFIG OPTIMIZE command to order lists by post office
                        for optimization of onward routing
                ADD and SUBSCRIBE commands updated to keep lists tuned
                        without necessity of rerunning CONFIG OPTIMIZE
                New SET DIGEST REWIND and SET DIGEST CATCHUP commands to
                        go back digest period, or skip waiting mail
                Limited support for Majordomo style list moderation added:
                        will now check for users' access to listname-approval
                        if restricted from posting to listname, and divert
                        mail automatically to the approval list. New list
                        types for Moderated and Approval lists.
                Improved list of lists display
                New INFO * command for info on all lists
                INFO command now recurses hierarchial lists, subject
                        to maximum depth set by new INI value MaxListDepth
                Support spaces within list names; commands now updated to
                        recognize long list names within quotation marks
                Added new Mailbase compatible synonyms and added processing
                        to cope with F=MAIL suffix on ListServ style commands
                SetBlind replaced by CopyMethod INI option to allow
                        choice between cc, bcc and plain 'to' addressing
                ForceLowPriority replaced by ForcePriority INI option to
                        give choice between L,N,U priorities, or leave
                        blank to avoid overriding user-set mail priority
                New INI variable GateWayDomain - if present the full internet
                        addresses for posting and processing are given on
                        list info & announcements and digest summaries
                New options for reply address - Owner, Tristero, Forwarded
                        and '*' suffix for inclusion of list address
                Improved handling of mail sent to non-existent or
                        unsubscribe mailing lists
                Increased resilience in dealing with locked/damaged
                        digest files and missing INI files
                Increased effectiveness of resource cacheing
                Support of '-owner' suffixes for sending mail to list owner
                Updated help messages, and added new help section for
                        PostMasters or equivalents

        Bug Fixes:
                Superuser & Postmaster equivalence not recognized
                for some SET commands

v3.0.5
        Enhancements:
                MaxLines option added to control message size
                Now accepts admin requests sent in majordomo format (i.e.
                    to 'listname'-request) and redirects to automatic
                    mailbox with default list of 'listname'
                Increased ListServ compatibility.
                Now able to cope with all .LRI files missing.
		
         Bug fixes:
                Set TYPE HIDDEN command not accepted
                Hang when REMOVEing under certain circumstances
                Hang when processing message lists > cc:mail buffer
		Added missing batch and tristero.rej files to zip package

v3.0.4   Bug fixes:
               PUT file not working
               INDEX not returning INDEX.TXT file when present
               SuperUser equivalence sometimes unavailable via access.ini
               CompuServe redirection not performed on auto commands
               Fixed corrupted licence registration text

         Enhancements:
               ADESYNC command for updating cc:mail directories
               Tidied up 'INFO list' response
               Added subscription indicators to LISTS command
               Added SET NOMAIL/MAIL for listserv compatibility
               Added EmptyDigest option

v3.0.3   Bug fixes:
               Return addresses in brackets not being correctly processed
               Digest files not being attached
               Stopped message filtering leak on #{-prefixed searches
               CCMAIL.UND now dellivered correctly to superuser

          Enhancements:
               Digest topic summary added
               New HIDDEN list type
               Auto-forwards subscribe requests for closed lists
			to the list owner for approval
               SetBlind parameter for choice of cc or bcc addressing
               SetAck parameter for optional mail to poster
               Receipt requests now acknowledged

v3.0.2    Enhancements:
               Added command SET LANG language FOR user
               Added GRANT and REVOKE command for access rights
               Auto-fixing for manually edited ACCESS.INI
               Two-way mailing-list client/server gatewaying

          Bug fixes:
               PUT & INDEX no longer always working on default archive
               ADD command fixed
               More error recovery added

v3.0.1       Renamed product to Tristero. version incremented.

          Enhancements:
	     *  added access control
	     *  added OS/2 command file
	     *  SET PROXY and PROXY commands added for sending commands
     		to a host ListServer being gatewayed locally by Tristero.
	     *  PUT command added to upload files to archives
	     *  default archives added
	     *  Multiple aliases for GateWay Post Office
	     *  SEARCH command added to perform archive searching.
	     *  Increased statistics and error diagnostics.
	     *  Now recovers from file errors caused by manual INI file
	    	editing and warns on log and screen.
	     *  Now halts processing of admin messages after 20 errors
             *  Support for multiple languages, and new LANG keyword
	     *  Improved presentation of digest messages.
	     *  Added automatic divertion of missent mail admin commands

        Bug fixes:
		SET commands which were being denied to ListOwner now fixed.
		Mail loop of messages from list set with 'List' return
		address stopped.
		ListOwner & SuperUser re-subscription bug fixed
		admin response problem with IMA Internet gateway fixed

v2.9.7  Enhancements:
	      * customize forwarding prefix to be a fixed string, or the
		    mailing list name.
	      * Archiving may now be switched on and off for each list
    		by the list owner.
	      * Individual users may set their subscriptions to digest
	    	mode, with a variable posting period.
	      * ADE option to import list names and changes to main PO
		    directory.
	      * Remote command execution and file downloading.
	      * Automatic welcome, farewell, readme messages and file lists.
	      * Archive downloading and indexing commands added.
	      * Additional security measures added.

        Bug fixes:
                fixed bug which caused an error if a .BAK file existed
                for a list being updated with new or expiring subscriptions.

v2.9.6
        Bug fixes:
                fixed problem when destroying a list
                corrected batch file for import of admin messages

        Enhancements:
             *  customization of Tristero automatic mail address allowed
             *  now able to cope with mail from Link to SMTP
             *  can now batch mail in bundles determined by AddrLimit, to
	    	cope with cc:mail limitations on recipients per message
             *  added distribution statistics.

v2.9.5
        Bug fixes:
                Fixed command interpretation of mail with RFC headers
                Fixed problems with log file naming and directory creation
                Tightened up case detection

        Enhancements:
	      * increased statistics output
	      * customizable reply addressing
	      * extra checks built in to prevent mail looping

v2.9.3  First shareware release

v2.x.x  Added automated administrative commands

v1.x.x  Simple forwarding of mail to pre-programmed lists



Support
-------

Problems and suggestions for enhancements should be sent to:-

	Rhizomatics

	e-mail: jey@cix.compulink.co.uk
	compuserve: 100010,2007
	tel: 44 141 946 1363

	snail-mail:     62 Fergus Drive
			North Kelvinside
			Glasgow G20 6AW
			Scotland


When reporting a problem, please supply the log file, export file and
import file. Also, a description of the PC (O/S, network, drivers etc) is
useful in tracking down problems.


Ordering
--------

	Tristero may be registered at a cost of
					$100 (or UKP75) per router

	Please contact Rhizomatics to arrange payment and supply
	of the latest version of the software, together with a
	registration key.



Licensing and Other Tedious Legal Bits
--------------------------------------

LIMITED WARRANTY

	Tristero is provided shareware, as-is, for live evaluation. There
	are no time-bombs or restrictions in the code. If you find it
	useful, you are requested to send the modest registration fee
	Rhizomatics. This fee is per router upon which Tristero runs,
	not per Post Office served; it entitles the user to run the
	software, but not to reverse-engineer, alter or sell onto
	other parties. The cost or guarantee of support is not
	included in the license. Rhizomatics will attempt, as able,
	to fix problems reported, and enhance functionality where
	requested.

	Rhizomatics shall not be liable for material, equipment, data
	or time loss, caused directly or indirectly by proper or
	improper use of the Tristero software. In cases of loss,
	destruction, or corruption of data, Rhizomatics shall not be
	liable.  Rhizomatics does not take any other responsibility.
	Rhizomatics makes no other warranty.


COPYRIGHT AND LICENSE

	Tristero is the property of Rhizomatics and may be copied
	other than for purposes of backup only as an intact ZIP
	file with this document.

	Proprietary Rights - This software and documentation are
	copyrighted by and proprietary to Rhizomatics.  You acknowledge
	that the Software and Documentation contain valuable trade
	secrets and other proprietary information belonging to Rhizomatics
	You agree to hold the software in confidence and undertake
	not to disclose registration numbers to another party.

	NO REVERSE COMPILATION IS ALLOWED - You may not modify,
	translate, disassemble, or decompile the software, or of any
	copy, in whole or in part.

	This software is licensed as stated above.  The license does
	not constitute ownership of the software, only the right to
	use it. Tristero is copyrighted under international intellectual
	property laws.


Acknowledgements
----------------

cc:mail is a registered trademark of Lotus Development Corporation
OS/2 is a registered trademark of IBM
DOS, MS-DOS and Windows are registered trademarks of Microsoft Corporation
Absentee Manager is a registered trademark of Davis Communications
CompuServe is a registered trademark of H&R Inc
ListProc is a trademark of CREN
ListServ is a trademark of l-Soft International

For background information on the global Tristero network, read:-

	_The Crying of Lot 49_; Pynchon, Thomas



More Information on Mailing List Management Software
----------------------------------------------------

	<news:comp.mail.list-admin.software>
	<news:comp.mail.list-admin.policy>
	<news:comp.mail.misc>
	<news:bit.listserv.lstsrv-l>
	<ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/software-faq>


Other Rhizomatics Products
--------------------------

Emptor - The External Mail Prepocessing Gateway

	Provides filtering of mail by sender name, destination name
	or subject. Alias users, auto subject prefixes, sending name
	conversion, sending post office aliasing and gateway aliasing
	also supported. In addition, file and fax items may be optionally
	uuencoded or MIMEd into text items of configurable size.

	Emptor is especially useful with the CompuServe mail hub - binary
	files may be sent, and the CIS hub disguised as, e.g., post
	offices named Internet and X400 and the need for the user to
	prefix with INTERNET: or X400: removed. A facility is provided
	for users sending messages across MHS systems to access mail
	gateways with addresses which would otherwise be mangled. Emptor
	also makes subscribing to internet mailing lists much easier, removing
	the need to temporarily create accounts or to have double aliases.

	Filtered messages may be dropped or forwarded to a given address
	on a per filter basis. Also, address formats for RFC821 and X400
	may be checked, and common user problems such as forgetting to
	bracket mail for certain gateways, or putting commas into CompuServe
	addresses automatically rectified. Full logging, and remote
	configuration reception are also provided.

	Emptor is shareware; satisified users may wish to obtain a
	registration number, priced at $50 per router.

ccQWK  - QWK Packet Import for cc:mail

	ccQWK permits the bulk loading of messages from Bulletin Board
	Systems, using the ubiquitous QWK packet format. Since many BBSes
	now carry UseNet news in addition to private BBS networks, this
	provides a cost effective means of bringing in news to cc:mail.

	Each message area of the BBS may be mapped to a cc:mail user,
	bulletin board or mailing list. UseNet mail may have the RFC
	header removed, minimzied and colourized. In addition, the colour
	of quoted text and the background may be set, together with a
	list of quote characters. The sending address may be taken from
	the QWK full name, or extended QWK internet name; in addition
	any prefix and gateway name for internet access may be automatically
	added to the sender's name, thus enabling replies to be made thru
	the standard cc:mail to Internet gateway.

	In addition, messages may be filtered out according to the subject
	text, and long messages - often broken up by BBS software - may be
	healed into a single message again. The gateway may be run manually,
	placed as a regular job in the router call list, or - preferably -
	set to run when a message is sent to the gateway with an attached
	packet of mail - in this case the results of the processing will
	be mailed as a reply to a given address.

	ccQWK is shareware - satisfied users are requested to register
	at a cost of $50 per router.


TimeSheet Filler for Windows

	TimeSheet Filler helps to automate the weekly chore of filling
	out timesheets, automatically remembering your name, department,
	employee code, and your regular time codes and descriptions. It will
	also automatically work out the period of the last sheet, and set
	the start and end dates for the next time sheet. A target number may
	be set, to which the entries will be automatically adjusted upon
	double-clicking the totals box.

	A setup box allows for the deletion and sorting of stored timecodes,
	setting of automatic capitalization, selection of print font and
	entry of personal details. Output can be as a timesheet to any
	standard Windows printer driver, or as a CSV file for spreadsheet
	import. The INI file is held locally, but a personal directory
	can be given for use on a network.

	TimeSheet Filler is AmnestyWare. If you like it, you are requested
	to send a donation to Amnesty International to help those filling
	in time in very uncomfortable and abusive situations around the world.

