I’ve been running the Python-based “mailman” mailing list management program for quite a while with good results, but all of a sudden when I try to start it up I get the error “Site list is missing: mailman” and it won’t start. What the heck? How do I fix this?
I encountered this problem recently too and it took a lot of digging around to find out what was really going on. Apparently, when Mailman upgraded from 2.1b to 2.1.2 it suddenly required the creation of a list on the server called “mailman”.
Logically enough, the error message is accurate. The problem is, it’s just a bit too succinct to help you figure out what’s going on and how to fix it!
To remedy the situation, you need to log in through ssh (you’d never use telnet, right?) to your server, switch to the root administrative account, then find your “newlist” command. This can most easily be done with the wonderful locate command:
(trust me, you want to use the ‘grep’ to filter out the zillion templates that Mailman includes).
Now, with that command location known, create a “mailman” list:
Enter the email of the person running the list: email@example.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
## mailman mailing list
mailman: “|/usr/local/mailman/mail/mailman post mailman”
mailman-admin: “|/usr/local/mailman/mail/mailman admin mailman”
mailman-bounces: “|/usr/local/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/usr/local/mailman/mail/mailman confirm mailman”
mailman-join: “|/usr/local/mailman/mail/mailman join mailman”
mailman-leave: “|/usr/local/mailman/mail/mailman leave mailman”
mailman-owner: “|/usr/local/mailman/mail/mailman owner mailman”
mailman-request: “|/usr/local/mailman/mail/mailman request mailman”
mailman-subscribe: “|/usr/local/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/usr/local/mailman/mail/mailman unsubscribe mailman”
Hit enter to notify mailman owner…
Now you need to actually copy and paste that block of aliases into your /etc/aliases file, or equivalent, then run the newaliases command to rebuild the alias database with the new list included.
That’s just about it. You can now restart Mailman gracefully by using the command mailmanctl which you might again need to dig up using the locate command:
Starting Mailman’s master qrunner.
Up and running!
One last step: log in to the new list’s administrative interface and make sure that you go to “Privacy” and turn the list off from your publicly advertised lists and also require approval for anyone to join and membership for anyone to send to the list.
Hope that gets you up and running.