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 ---------------------------------------------------- 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.