The user interacts with ListKeeper by sending electronic mail to firstname.lastname@example.org.
Any number of commands may be placed in the body of the mail message. Commands in the Subject: line are NOT processed.
In the command description below, anything enclosed in <> is a symbolic placeholder that should be replaced with the correct value. For example, if you want to use the command "who <list>" on the list named "list-l", you would replace <list> with list-l to get "who list-l".
If an item is enclosed in square brackets ([ ]), then the item is optional. For example, the command described as "which [<address>]" can be used in two different ways. If you just use "which", then you will see what lists you belong to. If you use "which email@example.com", you will see what lists firstname.lastname@example.org belongs to.
ListKeeper understands the following commands:
subscribe <list> [<address>]
Subscribe yourself (or <address> if specified) to the named <list>. The address will default to the address from which you are sending the request.
unsubscribe <list> [<address>]
Unsubscribe yourself (or <address> if specified) from the named <list>.
Find out which lists you (or <address> if specified) are on.
Find out who is on the named <list>.
Retrieve the general introductory information for the named <list>.
Show the lists served by this Majordomo server.
Retrieve this message.
Stop processing commands.
If you have any questions or problems, please contact email@example.com.
Listkeeper is an automated mailing list management system for Harvey Mudd College.
This document assumes that you're already familiar with the basics of using e-mail and interacting with Listkeeper.
Majordomo's goal is to automate list management, and by and large, it succeeds: managing a list is usually no work at all. You'll get mail when someone joins or leaves your list, and you'll get copies of any error messages generated by one of the addresses on the list. You're also responsible for keeping the info file about your list up to date, if the information about your list changes.
Whenever someone subscribes to your list, you'll get a message like this:
Terry_Smith@hmc.edu has been added to smiths-l.
No further action is required on your part.
If your list is a closed list, you'll instead get a message like this:
Terry_Smith@hmc.edu requests that you approve the following: subscribe smiths-l Terry_Smith@hmc.edu
If you approve, please send a message such as the following back to ListKeeper@HMC.Edu (with the appropriate PASSWORD filled in, of course):
approve PASSWORD subscribe smiths-l Terry_Smith@hmc.edu
If you disapprove, do nothing.
You'll also be asked to approve a subscription request if someone tries to subscribe someone else to your list. Since Listkeeper can't tell whether any two addresses actually belong to the same person, its concept of ``someone else'' is ``any address other than the one in the Reply-to: or From: line of the subscription request.'' So, if mail I send generally comes with a Reply-to: header like Reply-to: Terry_Smith@hmc.edu, and I want to add myself with a different address (firstname.lastname@example.org, for example), you'll be asked to approve the request, even though I'm really just trying to add myself.
Also note that you can send an approve command even if someone hasn't sent in a subscription request: for example, you might do this if someone has asked you in person or over the phone to add them to your list. Listkeeper doesn't keep track of whether someone has tried to subscribe to a list or not: it just forwards the request to you. There's no difference in Listkeeper's mind between an approve command you send in response to a subscription request, and one you've sent out of the blue. It is also important to note that Listkeeper will not execute properly if the entire approve command is not entirely on one line. If this happens, just add a back-slash (\) at the end of the first line and continue the sequence on the next line. For example:
approve PASSWORD unsubscribe smiths-l \
Whenever someone unsubscribes from your list, you'll get a message like this:
Terry Smith has unsubscribed from smiths-l.
No further action is required on your part.
They'll get back a confirmation message, and be removed from the list.
If someone subscribes to your list with an invalid address, you'll get back an error message the next time someone sends mail to the list. This might happen if someone had a typo in their Reply-To: header when they sent in their subscription request, for example. The best thing for you to do if this happens is to unsubscribe the bogus address, and resubscribe their correct address, if you know it. You can do this with an approve command:
approve PASSWORD unsubscribe smiths-l Terry_Smith@hmc.edu
followed by: approve PASSWORD subscribe smiths-l Terry_Smith@hmc.edu
You an also use a combination of the approve command with either the subscribeor unsubscribe command, to add or remove people from your list, if you need to for whatever reason.
You can send a command to Listkeeper to update the informational file distributed to people who ask for info about your list: send the command newinfo list password, followed by the text of the new informational message. For example:
newinfo smiths-l PASSWORD
This is a list for smiths to talk about the joys of smithery.
Sending a password via e-mail is inherently insecure, because it's very easy to accidentally send your password somewhere you didn't intend. For that reason, you shouldn't use a password for your list that you already use anywhere else. If you accidentally reveal your Listkeeper password is not as big a deal, since it's easy to change: send the command passwd list old-password new-password.
This document explains how to moderate a Listkeeper list. It assumes that you're already familiar with the basics of using e-mail and interacting with Listkeeper.
The moderator of a list is always the same as the maintainer of a list. Since a list can have multiple maintainers, it can therefore also have multiple moderators.
The moderator password for a list is almost always the same as the general list password. It doesn't have to be, but it's usually convenient.
Listkeeper uses a very simple test to see if a message sent to a moderated list should be forwarded to the moderator, or resent to the list: if the message has an Approved: header, or Approved: PASSWORD command, and the value of the header is the moderator password, it resends the message to the list. Otherwise, it forwards the message to the moderator. Thus, anyone who knows the moderator password for a list can send mail to the list without the moderator's approval. (The identity of the sender of the message is not checked; only the password is validated.)
Note that the sender of the message receives no indication that their message has been forwarded to you, nor are they notified when you forward their message to the list (unless they're on the list, of course).
When you receive a submission, you could just forward the text of the message to the list, adding an appropriate Approved: PASSWORD command. However, you will generally want to preserve the information stored in the headers of the original message, such as the identity of the original sender, the date they sent the message, and so on.
Since Listkeeper forwards you the original headers of the sender's submitted message, it's relatively easy to preserve those headers. As it turns out, if you send both the headers and the body of the message to the list, Listkeeper is clever enough to realize what you're doing. Listkeeper will forward the original message to the list rather than sending a message from you including the original message.
So, all you need to do is forward the body of the message you received from Listkeeper (the sender's headers and message) to the list, adding an Approved: PASSWORD command on the very first line of the message. For example:
Body of Message or Forward
The Approved: PASSWORD command should precede all the other headers. Also note that in order for listkeeper to forward the original message, as stated above, your mail program cannot prefix the quoted text of the message. If you change the settings of your mail program so that it does not attach or prefix the text of a forwarded message, listkeeper will work properly.
Listkeeper also includes an `approve' script, to automate this process somewhat, but it requires Perl and Unix, and thus isn't much use unless you read your mail on a Unix system. If you are on a Unix system with access to the `approve' script, though, and have a properly set up .majordomo file in your home directory, you can just pipe the entire message from Listkeeper to the script, and it'll take care of the rest. A .majordomo file should have one line per list, of the form
listname list-password email@example.com
with an entry for each list you moderate. The file should not be world-readble, since it contains the list passwords in plain text.