Copied from a posting by Jim Battan <[log in to unmask]> to the "comp.mail.misc" newsgroup. ___________________ How Not to Run an Internet Mailing List or How to get 470 e-mail messages in a day This article describes the author's experiences in setting up and running an Internet mailing list. It is intended for budding or wannabe mailing list maintainers. Experienced mailing list maintainers will probably laugh as they read this; they've probably learned it all the hard way. Hopefully by publishing this, I'll save at least one other person some hassle. When the honda mailing list (for discussions about Honda automobiles) maintainer posted a message to its 370 members saying his machine was going away, I decided this was my chance for at least 15 seconds of fame, so I took him up on it. I thought, "gee, this should be easy", and would increase my knowledge about e-mail in general. When I sent out a message to the list saying I'd be the new maintainer, I got many kudos back saying people were grateful someone stepped up to the task. The maintainer had a bunch of DCL scripts he used on a VAX/VMS system, but these wouldn't help me on a UNIX system, so I looked around for some tools to help me automate the task. I found the "distribute" package that the maintainer of the sun-nets mailing list used to run sun-nets. I compiled the program on my Sequent machine and installed the necessary mail aliases for submissions, administrivia, and error messages from the mailer daemon. I figured I'd use the "Precedence: Bulk" header to the outgoing messages so that I wouldn't receive error messages. I didn't want to have to trace down "unknown user" or "system down" errors. I also decided to undigest the list. The list had been digested and sent out once a day under the old maintainer. Often times, the traffic was so light the digest would be empty except for the headers, so I decided to undigestify the list. This met with some strong opposition right away, I countered with a suggestion that the users use a mail filter on their systems (elm, mh, mush, and Z-mail all have filtering capabilities). Anyway, I was in charge, so I didn't waver in undigestifying the list. I tested the system with the list only containing my e-mail address, and things worked right, so I thought I was all ready. On the day of the cutover, the old maintainer sent me the mailing list member list, and I put it in an alias file. I sent out a message to the list saying it had found its new home, and gave the members the new e-mail locations to send submissions and administrivia. That day, my belief in a perfect world was shattered. :-) About two hours after I sent out the first message, I started to get back error messages from the mailer daemons at about twenty sites, giving a wide variety of reasons for not delivering my message. I thought, "oh, that's okay, I'll just wait until I get a second error message for that user, and I'll remove them from the alias temporarily." This worked okay for the first hour, but then the flood continued. I started getting error messages back from three sites in particular every hour. I guess my "Precedence: Bulk" line wasn't helping. Some of the mailers would also send error messages to root, mailer-daemon, or the whole list. Then I waited for the first submission to show up. Nothing. I got a call from a person who said they got bounced mail saying the honda alias wasn't known at our Internet gateway machine. I talked to our sysadmins, and they discovered the alias hadn't been put on it, thinking it was a "recreational" alias and not a type of alias that needed to be known to the world. They fixed this, but not before I got about ten complaints from the members in my personal mailbox. Later that morning, the first submissions started arriving. At the time, our Sequent system was running an alpha copy of a new sendmail program. This alpha version had a bug in it that duplicated mail messages once in a while. It started duplicating all the incoming submissions. Of course, both copies generated error messages for the sites or users I couldn't reach. I sent a mail message to the users saying they'd have to put up with the duplicates; our engineering group promised a fixed copy of sendmail in two days. Then the administrivia requests for removal started pouring in. People complained that whereas they used to receive just one honda digest a day, they were now receiving two copies of every submission. Not only that, but some of the mailer programs would send error messages back to the list, not to the "Errors-To" header. Then members started sending mail to the list voicing their opinions on the problems of undigestifying and receiving duplicates, and others would send mail to the list telling those members not to send complaints about the list to the whole list. Things quickly snowballed. At one point our Internet gateway was processing 45 sendmails, delivering to about 350 sites each. The sysadmins threatened to remove the aliases and kill the sendmails unless I fixed the problem immediately. I sent a warning to the list (which showed up twice), and removed all members for which I was getting bounced mail. Things quieted down a little, but the next day they were still busy. The sysadmin told me I had to remove the list. Fortunately, someone at UCLA noticed my problems, and being a list maintainer already, volunteered to take it over. The list is now in his hands, back as a once-a-day digest, and I've learned lots of lessons: o Don't think that running an Internet mailing list is as easy as using a mail alias inside your company. There are more factors involved than you can control, and you're dealing with people who have different capabilities, facilities, and computers than the ones you have. I was surprised at the number of people on the Honda list that read their mail over 1200 baud modems using PCs and very basic MUAs. I'm used to high-speed lines with UNIX workstations, the latest sendmail, and Elm. o Get approval from your site's system-administration department before you decide to host a mailing list on their machines. Even if you do the list-processing on your own Sun, the mail still has to traverse over theirs to get outside the company. o Every mailing list should have a FAQ list. This "Frequently Asked Questions" should contain common questions that new members usually ask, with commonly-accepted answers for each. This cuts down on the traffic considerably. The FAQ should also contain service levels the administrator will try to adhere to for administrivia requests (moves, adds, removes, etc.). It should describe whether the list is digested or not, and why. It should also explain the various mail aliases for the list in great detail; nothing starts a flame-fest faster than a newbie posting a "please remove me" message to the whole list. It should also explain where to find information on filtering mail with the various mail readers. Decide whether you'll allow advertising and "for-sale" messages on the list. Also suggest a protocol for replying to messages; low-volume lists allow replies to go to the list, high-volume lists like replies to go to the originator, who then summarizes and posts back to the list the answer(s). o There are several programs available to help you manage the list. The previously-mentioned "distribute" program is available in ftp.umiacs.umd.edu:pub/distribute.tar.Z. A full-functioned package that sounds good but that I haven't tried is "listserv" (no, this doesn't have much to do with BITNET's LISTSERV). It was posted to alt.sources, and is available in cs.bu.edu:pub/listserv. It sounds like listserv obviates the need for the maintainer to perform administrative requests; they're done through program control by the members. o Remember that you have to be root (or have a setuid program) to set the From_ line in a posting. Setting the From_ line is a good idea. o sendmail uses a bunch of headers to control its behavior. But you can't count on the headers being observed by the different mailers out there. I suggest you set the "Precedence", "Errors-To", and From_ headers appropriately. Leave alone the From: header, and add a "Sender" header with the list's administrative address if you want. Don't forget to remove old headers that don't make sense or that you're adding in. o If you have the time, digesting is much better than not. You can filter out inappropriate submissions, make sure addresses look good, etc. If you have even more time, you can read the RFC that talks about the possible causes behind the various error messages you'll get back from mailers. o Advertise your mailing list in the "list of lists" postings. See news.answers, news.announce.newusers, and mail.misc for the address of these lists. Send the info to [log in to unmask] If your list is an off-shoot of a newsgroup, post your FAQ periodically to that Usenet group. -- Jim Battan - Sequent Computer Systems, Beaverton, OR