SimpList - A simple Internet e-mail mailing list processor Copyright (C) 1996 Chris Ingram See docs/COPYING file for licence and warranty information First things first: have you read the INTRODUCTION file yet? Okay, good. Now that you know the purpose of this internet e-mail list processing software, here is how you get it up and running. DISCLAIMER: ----------- Read all of these instructions carefully and make substitutions where appropriate. Try very hard not to do anything stupid, because no one can be held responsible for your actions except you. TOOLS NEEDED: ------------- procmail: I will decline telling you how to get this compiled and running. It has installation instructions that I would be a fool to try and reproduce here. Look at the Filtering Mail FAQ available at http://www.jazzie.com/ii/faqs/archive/mail/filtering-faq/ The procmail package is available at ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail.tar.gz gawk: Once again, if you don't have this, get it and compile it. Other versions of awk will probably not work. The scripts use the tolower() function which may not be available in all versions of awk. Look at the gawk manual available at http://csugrad.cs.vt.edu/manuals/gawk/gawk_toc.html The gawk package is available at ftp://prep.ai.mit.edu/pub/gnu/ /bin/sh: This is the standard Bourne shell in Unix. Any Bourne shell derivative will probably also work (eg. ksh, bash, etc.) rm: The command in Unix that removes a file. mv: The command in Unix that moves a file from one directory to another. cp: The command in Unix that copies files from one directory to another. Must be able to copy directories recursively with the -R option. /dev/null: The file obliterator in Unix that when anything is send to it, it becomes lost. If you redirect the output of a program to this file, the output just disappears. Very useful since the programs are not being used interactively. /usr/lib/sendmail: The program on most Unix systems that allows you to send Internet e-mail. Any program that takes a list of space separated e-mail addresses on the command line and a complete mail message (including headers) on standard input will probably work. INSTALLATION: ------------- Install gawk (if it is not already available on your system). Install procmail (if it is not already available on your system). Untar the archive file (which you have probably already done if you are reading this) into a directory in your account. This will retain the appropriate directory structure. A command similar to the following will work: gzip -cd cdi-simplist-1.02.tar.gz | tar xvf - Change directory into the newly created directory with: cd simplist Edit the following files with your text editor to include the appropriate paths to files, etc. Usually the lines you need to change will be in the first couple of lines of the file. newlist: particularly the listdir environment variable listproc: particularly listdir and AWKPATH environ. vars. If you are using a standard Unix system, these are probably the only three lines you will need to change. To be safe, also look at the function fSetDefaultVars() in scripts/lib.awk. You probably won't need to change any of this, but if you do, you now know where it is. Create a new list with: newlist test.list Change to the newly created list directory: cd test.list Edit the files append, config, and info. If there is a file called list, delete it. Append is a file that gets appended to every message submitted for distribution on the list. If you want nothing appended to the message, then delete all the contents of this file. Config is the configuration file for the program. You need to set all of the variables in this file like the examples show. Info is the file that gets mailed to new subscribers (or additions) to the list as well as any user that requests the information. Have an e-mail alias set up that. For example list.name@domain.org that points (forwards) to your account. Finally, add one of the following recipes to your .procmailrc to attach the list software to the new list (don't include the dashed lines). Of course, change appropriate items like your list's e-mail address, list directory name, etc.: EXAMPLE RECIPE #1: Assumes you have only one e-mail address (test.list@domain.com) for messages and commands keyed off the subject line. ---------------------------------------------------------------------- sLISTPROC=${HOME}/simplist/listproc # The ReSent-From stuff helps keep from getting in an infinite loop :0 * ^TO.*test\.list\@domain.com * !^ReSent-From:.*test\.list\@domain.com { # This copies all incoming messages as-is into a folder # in your mail directory. # Good for tracking errors, routes, etc. :0 c: test.list :0 * ^Subject:.*list command | ${sLISTPROC} -c test.list # The formail program comes with the procmail distribution :0 E | formail -i "ReSent-From: test.list@domain.com" | ${sLISTPROC} -m test.list } ---------------------------------------------------------------------- EXAMPLE RECIPE #2: Assumes you have two separate e-mail addresses, one for messages (test.list@domain.com) and another for commands (test.list.admin@domain.com). ---------------------------------------------------------------------- sLISTPROC=${HOME}/simplist/listproc # The ReSent-From stuff helps keep from getting in an infinite loop :0 * ^To:.*test\.list\.admin\@domain.com { :0 c: test.list :0 | ${sLISTPROC} -c test.list } :0 * ^TO.*test\.list\@domain.com * !^ReSent-From:.*test\.list\@domain.com { :0 c: test.list :0 | formail -i "ReSent-From: test.list@domain.com" | ${sLISTPROC} -m test.list } ---------------------------------------------------------------------- CONCLUSION: ----------- You are now set up to run a mailing list through the Unix shell account where you receive e-mail. Use the test list you created to try out all the commands and make sure everything works as expected. Then, at your own risk, create a real mailing list. Note: this software is probably not the most robust in the world (eg. files are not locked, etc.), but for simple, small moderated mailing lists, it should be adequate.