EZ-List v1.0 © 1995 Schrödinger's Cat Software by Jeffrey S. Morgan Introduction: EZ-List is a mailing list manager for the Amiga. It offers some of the features of the UNIX version as well as some amiga specific ones. With minimal installation you can run your own mailing list server from your own SLIP account. Requirements 1-OS 2.0x since AmiTCP requires it. 2-AmiTCP installed and running 3-InetUtils 1.14 (actually you only need the SMTP.d demon working) 4-Putmail (Included) 5-SLIP/PPP connection 6-EZ-List v1.0 :) Installation: Now this is very important. You should follow these instructions to the letter if you hope to get this thing up and running. There is very little "getting into the guts" to install this, but you do need to know how to use a shell and an editor. First, after you have made sure that you have requirements 2 and 3 up and installed then you can risk de-archiving EZ-List. 1- Create a drawer where you want EZ-List to reside. 2- De-lha the files into this drawer. 3- Add the following to your s:user-startup sequence assign EZ-List: 4- Edit the configuration file to suit your needs. It is commented to help ease your way. 5- Read the following: SMTPpost, when receiving mail, will invoke a command if it is set. This variable may be set many ways, but the way I have chosen to implement it is via the aliases file. This file may be located in one of several places, but for ease of use it should be located in Amitcp:db/. The file serves many purposes which inlude rerouting mail, making copies to other drawers, and best of all running other programs. For EVERY list you plan to run, it MUST have an entry in the aliases file. An entry looks like this: programming: \programming, "|ezl programming" ^^^ ^^^ ^^^ 1 2 3 1-list name smtp.d looks for 2-file the mail gets copied to 3-program (in this case EZL) to run when mail for this list arrives along with the name of the list to speed up the process You do not need to know the purpose of 1-3, but that is the purpose of the entry. NOTE***If there is not an entry for each list here then ezl will not be run and mail will not be sent out. 6a- Copy the executable EZL to Amitcp:bin and do the same with Putmail. 6b- Read the PutMail docs on how to decide which Putmail is right for you. 7- Edit the EZL text files accordingly. See the next section on the structure of files for EZL. Using EZ-List: This is how EZ-List works. Say you have a mailing list called: programming When mail comes in, smtp.d will grab it, deliver it, and run the command stored in the aliases file in amitcp:db/. EZL then is run. It searches MAILDIR (assigned by the config file) and if it finds mail with the name PROGRAMMING then it copies it to T: with a random name to avoid conflict and then deletes the original. It then opens up a file called EZ-LIST:PROGRAMMING.NAMES (case is unimportant) and in it are stored addresses. The mail is then appended by a .sig file (see section on creating text files) and then mailed to all the names in the .names file. The temporary file is then deleted and logging is accomplished. See the section on logging for more details. When someone subscribes (see subscribing section) it comes as the name MAJORDOMO to your address. EZL checks for this file first. If it finds one, the mail is then parsed for the correct subscribing command and the FROM: header is extracted. If a REPLY-TO: header is found as well, it is used for subscribing. The address found in the From: header is then added to the .names file. The same principle applies for UNSUBSCRIBING except that the name is then REMOVED from the .names file. Special Commands: To subscribe to a list you must first have the list in the config file added. When you edit the config file, choose the name of a list you want started and enter its name. IMPORTANT***Do not have any blank lines between list names. You may have 20 separate lists and if there is not a list for a line then leave the in place. A person will send mail to: majordomo@your_machine.your_domain In the body there must be the words: (un)subscribe (brackets not included) No need to add the address as EZL pulls that from the headers. Other commands accepted at this time are: HELP INFORMATION RELEASE LISTS In future releases, more commands will be added to handle the common UNIX subset such as: recipients digest file commands Special Files: There are several files you should have to make your lists more esthetically pleasing. Assuming the list name is PROGRAMMING, you can have the following files: programming.welcome -- a plain text file with a welcome and hints programming.sig -- a text file with a sig to append to your mail programming.inf -- a text file with specific information on that list There is also an error file called...error. :) It is sent back to a sender when they issue an unknown command to the list. EZL will also append the original message for the sender to review what they truly sent in case of temporary fumble-fingered-ness. You may edit this file according to your preference. The HELP file is included for the list command HELP. When it is received this file is sent out. Should it not exist then an error will be generated and it will be logged and the error file will be sent. The same holds true for the RELEASE file and .inf files. Sample files are included which you may, of course, edit. LOGGING: In the config file there is a place to designate where you want your logfile to be created. I suggest in ez-list:. EZL will log every mail sent out including when it was sent. Below is a sample log: SYSOP@SCAT.CYBERNETICS.NET (JEFFREY MORGAN) has subscribed to TESTLIST on 06-06-1995 at 07:14:29 smitty@scat.cybernetics.net has subscribed to TESTLIST on 06-06-1995 at 07:19:39 Removed from list: on 06-06-1995 at 07:20:39 snapper@scat.cybernetics.net (Jeffrey Morgan) has subscribed to TESTLIST on 06-06-1995 at 18:18:17 skippy@scat.cybernetics.net (Jeffrey Morgan) has subscribed to TESTLIST on 06-06-1995 at 18:22:58 Removed from list: testlist on 06-07-1995 at 12:12:17 Beginning batch mail for list: testlist1 on 06-07-1995 at 16:14:42 Sending mail to: jerry@scat.cybernetics.net Sending mail to: funk@scat.cybernetics.net Sending mail to: stan@scat.cybernetics.net Sending mail to: love@scat.cybernetics.net Ending batch mail for list: testlist1 on 06-07-1995 at 16:15:04 As new commands are added, new logging messages will be added. Also, if for any reason the .names file cannot be found, an error will be logged. NOTE*** Keep up with this file. If you have an active set of lists then this file can get quite large quite fast. Check it each day! Things you should know: The only thing you need to know is a curious thing that I found when trying to reply to lists that I run. Using ELM 6 I could not get EZL to run when I posted to a list. I found that the problem was that I was addressing the mail to the full address of the mailing list which smtp.d noticed was local and thus bypassed the aliases file. Or...it would sometimes see it, but not always. I found that just addressing the list locally (programming instead of programming@scat.etc) will successfully send your post out to the world. Also, PutMail does not do spooling so if you lose your connection then PutMail generates an error that is NOT logged. It will also hang for a rediculous amount of time when your provider's smtphost is having a bad day. This is probably not PutMail's fault, but your provider's. At this time you may see output to a shell if you post via a program that is launched from a shell. I have left this in for debugging purposes and when I deem everything bug-free (yeah, right) then I will pipe it all to NIL:. The Future: I will be adding new commands as I can. Anything you would like to see, please email at the below address. I hope to someday add banning capabilities and MAYBE file getting, but the files stuff is WAY down the list. I don't like the security aspects of it. If I can ever figure out the problems with SMTPpost and why it displaces my To: header (adds it at the end of the file when I use the -r flag) then I can make EZ-List more configurable so that it can use other mailers. THANX ETC: I would like to than David Benn for ACE Basic Compiler. Good job! Martin Lanza for his PutMail which handles forwarding of mail better than SMTPpost (IMHO). I am still trying to get SMTPpost to work, though so that spooling is possible. Snapper Morgan for testing this program. Kris Morgan for being such a cool wife! The folks who wrote AMiTCP and to Michael Smith for his InetUtils. LEGALITIES: EZ-LIST IS FREELY DISTRIBUTABLE, NOT SHAREWARE, NOT PUBLIC DOMAIN. I GIVE NO WARRANTY FOR THIS PIECE OF SOFTWARE. NONE WHATSOEVER! SHOULD IT MANAGE SOMEHOW TO DELETE ANYTHING IMPORTANT, BREAK A DRIVE, SPOUT SHAKESPEARE (ALTHOUGH PLEASE WRITE ME IF IT DOES AS THAT IS DEFINITELY SOMETHING I WOULD LIKE TO SEE), OR CONSUME YOUR PETS THEN CONSIDER YOURSELF BEING VISITED BY KARMA, EQUALIZER OF THE UNIVERSE. I GIVE PERMISSION TO REDISTRIBUTE EZ-LIST ONLY IN ITS ENTIRETY, INCLUDING THE PUTMAIL ARCHIVE, AND FOR THE DOCS TO ALWAYS REMAIN UNTOUCHED. YOU CANNOT MAKE ANY MONEY OTHER THAN COST RECOVERY FOR MATERIALS (IE DISK COSTS). AFTERALL, IF I DON'T MAKE ANY MONEY THEN WHY SHOULD YOU? HAVE A NICE DAY :) Schrödinger's Cat Software is a trade mark of Schrödinger's Cat Services. All other mentioned or implied trademarks belong to their respective companies. Putmail is the property of Martin Lanza. See included docs. June 18, 1995 Jeffrey S. Morgan WHY? If you went all the way to the bottom of this document then you probably love my writing style so you went on, hoping for more. Well, here you go. I wrote this beast as a replacement for the horrible program I wrote called Mailinglist Master. It was written in CanDo and was a memory hungry beast that didn't recognize the two ways that an address can come in. Thankfully I wised up and wrote this. The basics only took me about a week to write with the tweaking that two more weeks can produce. ACE is a wonderful thing. It doesn't have all the bells and whistles, but it does the job. I hope you try it out. Also, we take for granted being able to read e-mail without worrying about the headers, but they are fascinating stuff. I don't understand half of them, but they are still quite a piece of work.