Tristero -< - A Mailing List Manager for cc:Mail (c)1995 Rhizomatics ------------------------------------------------------------------- Features -------- A cc:mail MLM (*) which provides similiar functionality to the Unix & VMS systems ListServ, ListProc and Majordomo:- dynamic mailing list creation, subscription remote list configuration built-in user help open or closed mailing lists access control gateway internet mail to bulletin boards new list announcement Internet RFC header minimization Colourizing of message text, quotations & RFC Header multiple language support 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 automatic welcome, farewell, readme messages and file lists remote command processing and file fetching for superuser proxy command sending to server mailhosts mail digests at set intervals digest summaries optional message archiving upload and download of archive files indexing and searching of archives detection and breaking of mail loops 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. 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. 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. Example batch files for both DOS and OS/2 are supplied in the ZIP package. 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 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). 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. User Type Address Comment ---- ---- ------- ------- ListProc 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. 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 messages if a list is deleted, or it's description changed. 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 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. Others may then join the list by sending:- SUBSCRIBE listname The listowner may also add or remove names directly:- ADD listname user@bloggs.com at internet ADD listname #ccmail bulletin-board REMOVE listname jean at accounts If the list has been set to CLOSED, then the above 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. Other owner commands:- SET listname CLOSED SET listname OPEN SET listname TITLE new description of list SET listname REPLY reply address SET listname PROXY remote-listserver-address KILL listname filename PROXY Tristero command line for remote listserver PUT 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. 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] 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. 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 LANG language (permanently set their language) GET listname filename SEARCH listname search-text 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*' 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. 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. 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 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. 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 om. 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. 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) 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 messages descrivbed above; Tristero 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. 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,flag1,flag2 Examples:- joe deboss at Silver-HQ,SuperUser,,,, Administrator At *,PostMaster,,,, * At Accounts,ListOwner,money-l,,, *.jp At Internet,,,Japanese,, Mike Crynon At Accounts,ListOwner,*,English,, The `flag1' and `flag2' fields are for future expansion; future releases of Tristero will add further levels of access, and also automated commands for assigning and revoking access privileges. 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 privilegs 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. 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 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. Configuring the Gateway ----------------------- The globals section of 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). An example INI file is given:- [Config] GateWayPO=Tristero,ListServ RegNum=1000000 RegName= SMTPGateWay= 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=Joe DeBoss At Silver-HQ NextListNo=1 LogType=S [Options] OpenCreation=0 DenyReceipt=0 BreakLoop=1 ForwardPrefix= ForceLowPriority=0 SetAck=0 SetBlind=1 RedirectCserve=0 AnnounceList= RFCMin=0 NormColor=70 RFCHilite=78 QuoteHilite=71 QuoteChars=:|{ [Lists] listname,listdescription,list owner,reply,membership filename,status,archive ... (repeated for each list) [Kill Subjects] kill-line-1 kill-phrase-2 #{Delivery of #{Receipt of #{!AM! ... [Admin Subjects] #{subscribe #{unsubscribe #{help}# admin-phrase-4 N.B. All settings are case-insensitive, with the exception of the kill subject texts. The [Config] settings in detail are:- 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. 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 an SMTP gateway, enter the 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. 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. 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 ForceLowPriority If set to 1, all mail will be marked as low priority 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. SetBlind If set to 1, mail will be addressed using the blind copy (bcc) mechanism, which preserves list privacy and reduces the size of message headers. If set to 0, 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. 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. 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:- A sample list entry would be: ccmail, Lotus ccmail discussion list, Andrew At POffice1,Poster,00000010,O,A The first field is the list name to which all list mail should be sent; the second is the description as seen in the LIST & INFO command. The owner name is set on initial creation, or by the SET list OWNER command. The reply address may have one of three settings:- Poster - original sender given as from address List - listname at Tristero given as sender joe@soap.com - joe@soap.com set as fixed reply address This is followed by the name of the INI file holding the list membership, the list status (O for Open, C for Closed, H for hidden) and the archive status (A for archivable, U for unarchivable). 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. 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 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. 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, 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. 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. Version History --------------- v3.0.3 Bug fixes: Return addresses in brackets not being correctly processed Digest files not being attached Shareware registration text corrupted 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 mutiple 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 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 ---------------------------------------------------- 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.