Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!pad-thai.aktis.com!GZA.COM!jik From: jik@GZA.COM (Jonathan I. Kamens) Newsgroups: comp.mail.misc,comp.sources.wanted,comp.answers,news.answers Subject: Mail Archive Server software list Supersedes: Followup-To: comp.mail.misc Date: 23 Jul 1993 01:00:14 -0400 Organization: Geer Zolot Associates Lines: 578 Approved: news-answers-request@MIT.Edu Distribution: world Expires: 5 Sep 1993 05:00:10 GMT Message-ID: NNTP-Posting-Host: pad-thai.aktis.com Xref: senator-bedfellow.mit.edu comp.mail.misc:13584 comp.sources.wanted:26913 comp.answers:1391 news.answers:10620 Archive-name: mail/archive-servers Version: $Id: archive_servers,v 1.55 1993/07/12 12:24:37 jik Exp $ A Summary of Available Mail Archive Server Software --------------------------------------------------- Mail archive servers are programs which receive incoming mail messages, interpret them, and take action based on them. For example, two tasks which might be performed by mail servers are handling subscriptions to mailing lists and redistributing messages sent to the lists; and delivering files to users based on incoming requests This posting focuses, primarily, on mail servers which run under UNIX. For each server listed below, I provide the following information, if known: Name Author Maintainer Latest known version How to get it Implementation language Supported platforms Comments If you can fill any of the blanks or have comments about anything written below, or if you have new servers to add to the list, please let me know. If you would like to ask me to change this posting in some way, the method I appreciate most is for you to actually make the desired modifications to a copy of the posting, and then to send me the modified posting, or a context diff between my posted version and your modified version (if you do the latter, make sure to include in your mail the "Version:" line from my posted version). Submitting changes in this way makes dealing with them easier for me and helps to avoid misunderstandings about what you are suggesting. There are two sections below. The first describes the various archive servers, and the second lists known sites from which the archive servers can be obtained, and how to access them. The "How to get it" fields of the archive server descriptions refer to the site listings. John Bazik , Stephen R. van den Berg , Warren Burstein , Nigel Metheringham , Mike Northam , Chip Salzenberg , and Serge Vakulenko provided comments about and corrections to this posting. ------------------------------------------------------------------ Archive Server Summary ---------------------- Name: Almanac Authors: Erik Bennett and Chris Hansen Maintainer: almanac-admin@oes.orst.edu Implementation language: C (configured with Bourne shell) How to get it: ftp from /pub/almanac-x.x.tar.Z at oes.orst.edu (where x.x is the current version) Latest know version: 1.4 Supported platforms: SunOS, HP/UX, UTek, AIX (RS 6000), most BSD 4.3 Comments: (Chris Hansen ) Requires sendmail and gdbm Can split files on user-defined size limit Good user & admin documentation Has blacklist Logging (through syslog) and usage utilities Comes with supplement for automatic mailing list management Load checking or queuing left to sendmail Main advantage is configuration table: Maps user commands to shell commands Can have any number of user commands Encoding, Filtering, Compression all configurable Most other things configurable (Possible disadvantages: Table can get complicated. Good knowledge of shell advised). Name: B-Server Author: Budi Rahardjo Implementation language: bourne shell How to get it: Get "b-server.shar" from grasp1. Comments: (Dave Shaver ) - Don't need to create system-wide alias (uses sendmail .forward file) - One shell script - Can refuse to provide service to certain people - Has file and request limits - 4 user commands: help, index, send, get Comments: (john.Latala@Waterloo.NCR.COM) - Only does text files Name: Bart (Brode's Archive Retrieval Thang) Author: Jon Brode Latest known version: beta release How to get it: Send E-mail to and ask for it. Implementation Language: C Support platforms: Expects BSD, sendmail and ndbm, but might work with some tweaking in other environments. Comments: (from author) Beta release can be obtained from the author but should not be redistributed; the final release will have more lenient distribution conditions. Runs from alias or .forward file Very careful about not overloading server. (does load checking on BSD machines, in addition to the other things) 5 commands: help, index, path, send, sendb ("sendb" automatically encodes the file, "send" determines whether the file needs to be encoded first) Can request files by parts. Useful for requesting files larger than quota and retrieving pieces that get lost in the mail Can do per-user quota checking. It has a man page! Has uuencode encoding built into C code, does not support other encoding types yet. No user error notification on bad requests. Name: Clarkson Author: Michael DeCorte How to get it: Get "archive-server" from CLARKSON. Implementation language: bourne shell, awk Comments: (Tom Fitzgerald ) Advantages: Most flexible options for archiving, compressing, encoding and slicing result. Very nice load-limiting. Disadvantages: Many BSDism's (I tried porting it to SysV without much luck). Can't return several requested items, one item per mail message. It insists on packaging up all requests into a single archive, splitting the archive at random points and mailing the result. Can't store items compressed and have them mailed back to the requestor decompressed. Name: DECWRL Author: Brian Reid. Implementation language: bourne shell, awk, a little bit of C How to get it: (1) Get "decwrl.shar" from grasp1. (2) Get "/pub/src/mail/archive.tar.Z" via anonymous ftp from ftp.cs.widener.edu (slightly modified). Comments: (Dave Shaver ) - Written with many shell scripts and a few AWK scripts - Very careful about not overloading server machine (Remember, this used to run on an over-worked VAX.) - Very easy to install; best of the group? - Code is all quite generic - Good at letting person making request know what happened (No black holes for mail.) - Good user-level docs (especially the "help" file) - Very fair queuing system; people can't make "pigs" of themselves - 4 user commands: help, index, send, path Comments: (Tom Fitzgerald ) Advantages: Simplest. Very nice load-limiting, can be set up to run only at night. Easily configurable, and portable to Sys V with a little work. Disadvantages: All items in archive must be text, and are sent out as-is. No packaging options at all. Written in sh, may be a heavy system load (when running). Comments: (Chris Siebenmann ) We use the DECWRL server for the CA*NET info server; I picked it over the other ones (primarily the Clarkson one) because it was sufficiently small and clear that I could read all the shell scripts and be pretty confidant that it had no surprises and I understood what was going on. One could probably run it out of a .forward file with some work writing at-based frontends, but it prefers to be installed and run with cron and an alias. Name: deliver Author: Chip Salzenberg Latest known version: 2.1, patchlevel 10 How to get it: From the comp.sources.reviewed archives. Implementation language: C Comments: This isn't a full-fledged archive server, it's just a program to reroute incoming mail. Which isn't to say that it can't be used to write an archive server.... Comments: (Brian.Onn@Canada.Sun.COM) I've written our mail based archive server entirely in Deliver shell scripts. It's not as full featured as the other ones, but it can easily be expanded to become that. The beauty of deliver is that it is entirely shell script based. Name: ftpmail Author: Lee McLoughlin Latest known version: 1.19 How to get it: ftp from src.doc.ic.ac.uk:packages/ftpmail/ftpmail.shar Implementation language: perl Supported platforms: SunOS, HP/UX, AIX (RS 6000), BSD 4.3, System 5.4 Comments: Can use both mail and sendmail to send reponses. With sendmail can also return MIME multipart responses. Supports mime, uuencode, atob, user selectable splitting. Built in logging. Very easy to install. Command compatible with ftpmail server at Decwrl. Name: KISS Author: T. William Wells Latest known version: 1.0 How to get it: (1) Get "kiss.shar" from grasp1. (2) Get "misc/kiss.shar" from JASON-ARCHIVE (slightly modified). (3) Get "/pub/archives/alt.sources/kiss-server_bill" via anonymous ftp from hydra.helsinki.fi. Implementation language: bourne shell Comments: (Dave Shaver ) - Simple. 8-) - One shell script, plus a user-supplied program - No batching, quotas, or scheduling. - 5 user commands: help, index, send, path, quit - Good install docs Name: listserv Author: Anastasios C. Kotsikonas (tasos@cs.bu.edu) Latest known version: 5.41 How to get it: From /pub/listserv on cs.bu.edu via anonymous ftp. Also in alt.sources archives with subject "unix-listserv" in three parts. Implementation language: C, plus some UNIX-style shell scripts. Supported platforms: UNIX, presumably. Comments: This is a mailing list server rather than a mail archive server. It is meant to automatically run mailing lists, dealing with subscriptions, unsubscriptions, message distribution, etc. Like the BITNET listserv system, but for UNIX. The newest version does appear to have some support for archives as well. Name: Logix Author: Jan-Piet Mens Latest known version: 1.01 How to get it: Get the posting entitled "Mail-Server Part 01/01" from the alt.sources archives. An improved version (Bill Silvert's -- see his comments below) is available via anonymous ftp from /pub/unix/mail-server.tar.Z on biome.bio.ns.ca. Implementation language: C Comments: (Bill Silvert ) Changes I have made include support for optional (as opposed to compulsary) uuencoding using the Dumas uuencode, which makes it possible to run uudecode (the Dumas version) on a complete multi-part mail file without editing it first, and improved messages. Name: MailServ Author: Dave DeBry Latest known version: 1.2.0 How to get it: Get the posting entitled "MailServ 1.2" from the alt.sources archives. Implementation language: C Comments: (from the author) o allows for as many users as you want per list, o users can be mailed to "quietly" (ie: their name won't be found anywhere in the mailing... good for nosy sysadmins at other sites), o has a request server so users can get any files you make available for them, o handles subscribes and unsubscribes without bothering you, o can archive off reflector mailing list posts, o can announce to all list readers when someone subscribes or unsubscribes, o can be set to let people request a list of readers, o does all the digest handling work for you, o can upload (via ftp) each days digest to a given site for archiving, o can backup the userlist to a different disk/area/whatever, o can post a FAQ to USENET periodically, o announces when a message has been taken from USENET, so people don't get that horrible deja vu feeling while reading their mail, o sends you a log of all the day's activities every night, o lets you toggle all of these things for complete customization, o and much, much more! (I should be an announcer for those Remco ads, I know it.) MailServ isn't for the weak at heart. It's not pretty, and I'm releasing it to the net because several people have asked for copies, and I'd like to know what changes are made to it. If you don't know much about UNIX or mail, I wouldn't suggest using MailServ until it gets a little bit nicer. Name: NETLIB Author: Jack J. Dongarra, Eric Grosse How to get it: Get "netlib from misc" from NETLIB. Implementation language: C Comments: (Dave Shaver ) - User-level docs a bit rough. Assumes user is quite mail savvy. (Not a fair assumption in my case.) - Catches "pigs" effectively, but no queuing system for requests. - Notices attempted security violations using magic shell characters - Install docs adequate, but not outstanding - Hard to install since site-specific stuff not centralized in a config file. - Has almost no interal documentation (i.e. comments) - Eclectic mix of shell scripts and C programs - Some sections of code very specific to serving libs. Does not generalize well to ASCII files. Comments: Tom Fitzgerald Advantages: Arbitrary directories can be made part of archives, archives don't have to all be under a single directory tree. Written in C, probably imposes the least system load. Reasonably portable and configurable. Disadvantages Really complicated, with inadequate documentation No queuing or load-balancing. All requested items are sent out immediately regardless of system load. Poorest at figuring out return addresses. All items in archive are sent out as-is. No packaging options. (They can be binary, they will be sent out uuencoded). Name: procmail Author: Stephen R. van den Berg Latest known version: 2.91 How to get it: (1) Get "procmail" from volume 38 of comp.sources.misc archives. (2) "/pub/unix/procmail.tar.zip" via anonymous ftp from ftp.informatik.rwth-aachen.de (possibly more up-to-date). Implementation language: C, plus some UNIX-style shell scripts. Supported platforms: generic UNIX (or any posix compliant OS) Comments: Procmail is a program to parse incoming mail and sort/invoke other programs based on the results, it can be used as a very reliable frontend to some of the archive servers mentioned here. - It includes a utility program called formail, which is particularly intelligent in figuring out return addresses and generating auto-reply headers. Comments: (from the author) Included is an extensive mailinglist/archive server package (based upon procmail/formail). Regarding the archive server part: Advantages: - Easy to install. - Straightforward to operate (one tree, symbolic links allowed). - Numerous others :-), but you'll have to get the FEATURES file from the package. Disadvantages: - Doesn't do special handling for binary files. - Doesn't autosplit large files. - Partly dependent on sendmail, though sufficiently compatible mailers will do. - No load balancing or queueing, relying on sendmail for that. Name: qdms Author: Lars Magnusson Latest known version: 1.0 How to get it: (1) Get "qdms - a simple mailserver for cramped disks." from the alt.sources archives. (2) Get a (possibly more up-to-date) version from mailserver@z.amu.se. Implementation language: Bourne shell, requires shell functions Comments: Looks like it has some sort of access control and blacklisting. Don't know what else. Name: Relcom Author: vak@kiae.su (Serge Vakulenko) Maintainer: vak@kiae.su (Serge Vakulenko) Latest known version: 1.0 How to get it: Send a message to mailserv@kiae.su with "get mailserv.tar.Z" in the body. Implementation language: C Name: RNALIB Author: Paulo Ventafridda , Marco Lorenzini Latest known version: 2.2 beta-3 Implementation language: bourne shell How to get it: (1) Get "rnalib2" from volume 15 of comp.sources.misc archives. (2) Get "RNALIB 2.2 beta" and "upgrade to beta-3" from alt.sources archive on valhalla.ee.rochester.edu. Comments: - Completely implemented in one bourne shell script plus several data files. - Allows libraries to be all over the filesystem hiearchy (i.e. not in fixed data directory). - Understands a variety of packing formats, and detects binary file automatically (and uuencodes them). - Requires bourne shell with support for functions. - Very poor address parsing. - No queueing. - Has "blacklists" to prevent people from transferring and "whitelists" to allow specific people to tell the server to deliver to third parties. - Detects "hogs" and imposes maximum credit limits. Name: The ServiceMail Toolkit, by Enterprise Integration Technologies Author: Jay C. Weber , et al. Maintainer: servicemail-help@eitech.com Latest known version: v2.0 5-10-93 How to get it: ftp eitech.com:svcmail-2.0.tar.Z Implementation language(s): C, Tcl, make Supported platforms: SunOS, Ultrix, (probably anything that supports Tcl) Comments: (Bob Bagwill ) Easy to install (using default installation configuration). Multimedia Email SHell (MESH) uses MIME message formats. Services are implemented in Tcl. Includes subset of listserv functions. Documentation is skimpy. Comments: (Jay Weber ) Documentation is better in 2.0 Includes support for queueing, logging Name: Squirrel Mail Server Version: 3.1 Author: Johan Vromans How to get it: (1) Send a mail message to with contents begin send mail-server end (2) Get "mserv" plus updates from volumes 34 and 35 of the comp.sources.misc archives. Implementation language: perl Description (from the author): The Squirrel Mail Server is a mail response program. You can send email to it, and it will try to react sensible to your message. Main purpose of the mail server is to obtain files from a local archive or FTP server, but other functions can be added easily. The Squirrel Mail Server Software is distributed under the terms of the GNU Public Licence. New and improved features in version 3.1: - Transparent (anonymous) FTP interface. You can fetch files from remote FTP servers. Files retrieved are cached locally, so subsequent requests can be honoured from the cache. Well-known files can be sent from the local archives without accessing remote FTP server at all. - Delivery can take place via email or uucp or both. Delivery via UUCP can be made preferred. FTP requests can be restricted to UUCP delivery. - Files can be automatically compressed, and directories can be automatically packed using one of several common methods (e.g. zip, zoo or compressed tar). - Multiple servers can be installed using the same software. - The server can be used interactively, e.g. from a terminal, or via telnet/inetd. - Command parsing and execution is table driven, so it is very easy to extend the mail server functions. - Rewritten and enhanced user documentation and installation docs. Also available in nicely formatted (PostScript) format. A brief survey of old and new features: - All written in perl, hence portable and easily maintainable. Code is readable; useful, plentiful comments. Very extentable and easily modified. - Easy to use and to install. Over 2000 lines of documentation. - Good at letting person making request know what happened. Good "help" reply. - Archives can be split over a number of directories or file systems. - Requests are queued and processed by a separate daemon process (e.g. from cron). This cuts down on the system load. Moreover, you can control when the queue is being run. - Requests can be honoured `as is' (name the file and you'll get it), but the server can also perform directory searches and index file lookup. You need GNU find and locate for the index lookup feature. - While looking for files, the server knows about commonly handled filenames (e.g. ".tar.Z" in "foo.tar.Z") and pseudo-standard version numbering (e.g. "gcc-2.1.tar.Z"). It is quite well possible that a simple request for "emacs" will actually transmit the file "gnu/emacs-18.58/dist/emacs-18.58.tar.Z". - Requests can be encoded using a number of encoding schemes, e.g. uuencode, xxencode, Dumas' uue and btoa. - Requests that are too large to send in one piece are automatically split and transferred in parts. The server provides a smart unpacking program on request, - Parts of requests can be re-transmitted in case of failure. - Requests can designate a directory. In this case the whole directory tree is packed using some popular packing programs (compressed tar, zoo or zip). - Requests can be sent by email, or via uucp. - The server can be asked to return a list of archive entries that match a given request, thus obsoleting the need to transfer huge "ls-lR" type index files to find out whatsitcalled. - All transfers are logged. Maintenance procedures include a reporting tool. Probable future directions: - Automatic (and transparent) downloading of unknown archive entries from other archive servers. - Archive lookup by keyword. - Notifier services (you'll be notified if archive entries are added). - Remote maintenance of the archives. Requirements: - Perl 4.0 patchlevel 36 or later. NOTE that perl 4.0 pl35 contains a bug that makes it impossible to run the mail server software. - GNU find 3.6 or later (only if you want to exploit the index features). - A decent mail system that can deliver mail to a process (sendmail, smail3, or smail2.5 w/ mods). ------------------------------------------------------------------ Archive Site Instructions ------------------------- CLARKSON: Send mail to "archive-server@sun.soe.clarkson.edu" with "send " as the text of the message, e.g. "send archive-server". If you want it to be archived as a shar file, then add a line saying "archiver shar" before the "send" line. You can also use "archiver tar". If you don't specify an archiver, then the files in the request will be separated by "--- cut here ---" lines and you'll have to extract them by hand or write some sort of script to do it. grasp1: Ftp to grasp1.univ-lyon1.fr and look in pub/unix/mail/mail-servers, or use the FTP-by-mail server at ftpmail@grasp1.univ-lyon1.fr, or use an FTP-by-mail server closer to you if there is one. JASON-ARCHIVE: Send mail to "penneyj@slc.com" with a subject line containing the string "jason-archive-request" and a body containing "send ", e.g. "send misc/kiss.shar". If you want multiple files, you can specify multiple requests on separate lines of the file. NETLIB: Send mail to "netlib@research.att.com" with "send ", e.g. "send netlib from misc", as the text of the message. UTRECHT: Anonymous ftp to ftp.cs.ruu.nl and look in the directory /pub, or send mail to "mail-server@cs.ruu.nl" with the lines: begin send end You replace "" with the file you want to retrieve, e.g. "send UNIX/mailserver.tar.Z". -- Jonathan Kamens OpenVision Technologies, Inc. jik@GZA.COM