Managing Mailing Lists at Pitt using Majordomo

This document explains what a majorodomo list owner/administrator needs to do to maintain his mailing list, and the basics of how to do it. Most lists will not require very much work from the list owner, but even with Majordomo set up to provide as much help as an automated program can, there's still a certain minimum of routine work associated with each list: checking the mail generated by the program to make sure nothing went wrong and handling the things which slip through the cracks.

We expect that a large number of people will want mailing lists, and we do not have the resources to handle this routine work for all of them. Therefore, we must have a list owner/administrator for each mailing list we create. The person who wants the list is responsible for finding a list owner, but need not be the list owner himself; if you want a list but don't have the time to administer one, or don't feel comfortable enough with computers to administer one, you can find someone willing to do the list administration and jointly request the list: you will be the "list sponsor" and the person handling the administration duties will be the "list owner."

Overview

This document contains the basic information you need to know to administer a mailing list. It explains some of the basic terms and concepts, your responsibilities as a list owner/administrator, and the tools we provide to simplify this task.

Email and Majordomo

An electronic mail address (or e-mail address) is the equivalent of a postal mail address: it is a location to send electronic mail (or e-mail). The e-mail address points to an electronic mailbox (or e-mail box, or mail drop) which holds the mail.

A mailing list is effectively an e-mail address which points to many different e-mail addresses. To be a bit more precise, an automated process accepts mail sent to that address, processes it, and resends it to a set list of addresses.

A list owner is the person responsible for maintaining a mailing list. Primarily what this involves is seeing that the list of addresses it resends mail to is current. Other responsibilities depend on the list but can include dealing with bounced messages, approving messages sent to the distribution address before they are resent, writing a short description of the list, and guiding the tone or the direction of the discussion.

Majordomo is a mailing list management program. Essentially, it's a tool to help the list owners manage their lists. It is designed to handle the routine administration of mailing lists automatically, minimizing the work the list owners need to do personally.

Using Majordomo

People send commands to Majordomo by sending mail to Majordomo; to control a CIS mailing list, you would send e-mail to Majordomo@list.pitt.edu. Majordomo ignores the subject line of the messages and treats the contents of the letter as a command--or a series of commands, each on a separate line.

Both list owners and list subscribers use Majordomo. It accepts a large number of commands from list subscribers and executes them automatically, so that you do not need to personally subscribe and unsubscribe every individual, answer each request for information about the list personally, and so on. See our "Majordomo for list subscribers" document for more information about what list subscribers can use Majordomo to do. If you're offering a mailing list for a specific group of people, for example those in a given class or department, you should probably photocopy the document and hand it out to your intended subscribers; the more they use Majordomo, the easier your work as a list owner will be.

The list administration commands fall into four categories: subscribing and unsubscribing readers, changing your configuration file, changing Majordomo's description of your list, and changing your password.

Here's a basic chart; commands will be described in more detail after it. Wherever the chart (or the rest of this document) says listname, substitute the name of your list; wherever the document says password substitute the password for your list; wherever the document says, address substitute the email address of the appropriate reader.

the command sent to Majordomo
the action Majordomo takes
approve password subscribe listname address
subscribes the address given to the named list.
approve password unsubscribe listname address
unsubscribes the address given to the named list.
config listname password
Majordomo sends you a copy of your current list configuration file.
newconfig listname password
changes your list configuration file.
newinfo listname password
changes the information a user retrieves with the info command; readers automatically get the information when they subscribe as well.
passwd listname password newpassword
changes your password to the new password you give
writeconfig listname password
replaces your list configuration file with the default list configuration file.

The subscription commands:

There will be times when you want to subscribe or unsubscribe someone who hasn't sent an (un)subscribe request to Majordomo. Perhaps you want to simply subscribe everyone in your class. Perhaps someone's account has been deleted and he didn't send an unsubscribe request beforehand. You can subscribe readers by sending Majordomo the command:

approve password subscribe listname address

Likewise, you can unsubscribe readers by sending Majordomo the command:

approve password unsubscribe listname address

It is very important that if you are going to subscribe someone who hasn't sent a subscription request that you make sure you have their correct e-mail address. If you subscribe an e-mail address which someone has but never reads, he won't receive your list and his unread mail will pile up and cause problems. Worse yet, if you subscribe an e-mail address which is mistyped or looks right but isn't, their mail will be rejected and bounced back to the list owner, and you'll have to figure out what went wrong and unsubscribe the address.

The above command is also used when someone requests a subscription they do not have the authorization to receive automatically. This can be if someone requests a subscription for another email address (unless you have an "auto" subscription policy to let anyone subscribe any address), or for all subscription requests if you have your list set up so that all subscriptions require confirmation (a "closed" subscription policy). In either case, their mail will be forwarded to you, with the email address for the subscription attached if they didn't supply it. If you add:

approve password

to the beginning of the line (the entire line will say:

approve password subscribe listname address)

and resend the letter to Majordomo, Majordomo will take their address from the letter it forwarded to you (you must leave the letter's header intact when you reply to Majordomo, however!) and subscribe them. Unsubscribing someone when unsubscription requires approval goes by a similar process: they send:

unsubscribe listname

to Majordomo, Majordomo sends the letter to you, you edit that line to say:

approve password unsubscribe listname address

The information command:

Majordomo is set up to answer some informational queries, and it can include queries about a specific list. The list owner can use the newinfo command to tell the computer how to answer a general query for information about the list. You send Majordomo:

newinfo listname password

on one line, and then type the information you want Majordomo to reply with, making sure to include returns at the end of each line. After the information, type:

END

on a line by itself.

For example:


To      : Majordomo@list.pitt.edu
Cc      : 
Attchmnt: 
Subject : 
----- Message Text -----
newinfo listname password
This is line one of what readers see.
This is line two of what readers see.
This is line three of what the readers see.
The next line will be blank.

The previous line is blank.
There could be many more lines.
This is the end of the info.
END

This example is a depiction of the "pine" compose screen. The composition facility of your mail program might look different; the important point here is that the message is addressed properly and that the commands to be executed by Majordomo occur as the only thing in the body of the message. For messages sent to Majordomo itself, the content (if any) of the "Subject" header is meaningless.


The lines after end could have other commands and they would not affect the newinfo command.

Majordomo stores the information, and replies with it to general information queries about the list -- that is, the info command. It also adds this information to the end of its reply to a subscription request.

The reply to an information query for the above list would say:


From: Majordomo@list.pitt.edu
To: droopy+@pitt.edu
Subject: Majordomo results

--

>>>> info test-list
[Last updated on: Thu Jul 20 17:45:45 1995]
This is line one of what readers see.
This is line two of what readers see.
This is line three of what the readers see.
The next line will be blank.

The previous line is blank.
There could be many more lines.
This is the end of the info.

The password command:

The password command allows you to change your password. Ideally, you should change the password into something that is easy for you to remember, but not easy for someone to guess. It should not be a word in any dictionary, including technical dictionaries and foreign language dictionaries; there are programs which 'guess' every word in a dictionary that's given to them. Your password should be eight characters long, and use one or more of the following tricks: unusual characters, a mixture of letters and numbers, or a mixture of upper-case and lower-case letters. Caution: Majordomo cannot accept a pound sign (#) as a password character.

There are two classic tricks to choosing a password that's easy to remember but difficult to guess. First, you can pick a phrase and use the first letter in every word in the phrase, picking a letter or two to capitalize. For example, "Start at the beginning, continue to the end" becomes satbctte, which becomes satBcttE. Second, you can use misspelled words or combinations of misspelled words; you can then use random capitalization and/or stick in numbers. For example, Two Blue become tuo bloo, which becomes tuo2bloo.

In order to change your password, you send the command:

passwd listname password newpassword

Substitute your lists's name for listname, your current password for password, and your desired new password for newpassword.

The configuration commands:

Your configuration file controls the settings of your list: the subscription policy, the digest policy, whose queries for information it will answer, who can send to the list, and so on. Unless you want a personally-configured list, there is only one change you will need to make to this file: setting the half-line description of your list that will appear whenever people ask Majordomo for a catalogue of its lists. As a whole, the configuration settings are very important and very powerful. They can also be very troublesome if they're set incorrectly, so be careful. There is a "restore to default" command, but you should also keep a copy of your most recent configuration file so that you won't lose any changes you have made.

There are three commands controlling your configuration file. The first of the three commands retrieves a copy of your current configuration file. Whenever you make any change to your configuration file, you should always send a request for a copy, and retain the copy of your most recent configuration file, so that if something goes wrong you can simply restore from your own backup. In order to receive a copy of your list's configuration file, send Majordomo a message saying:

config listname password

Majordomo will then send a reply which includes your current configuration file.

The second command lets you change your configuration file. Before you do this, you should use the config command above to retrieve a copy of the current file. Once you have a copy (and made a backup copy), you edit the configuration file, and send the new configuration file to the Majordomo, prefaced by the command:

newconfig listname password

and ending with EOF. It works much the same way as the newinfo command:


To      : Majordomo@list.pitt.edu
Cc      : 
Attchmnt: 
Subject : 
----- Message Text -----
newconfig test-list password
[Configuration file here]
[Configuration file here]
[Configuration file here]

The response will be:

From: Majordomo@list.pitt.edu
To: droopy+@pitt.edu
Subject: Majordomo results: newconfig

--

>>>> newconfig test-list password
New config for list test-list accepted.

As soon as you've changed your configuration file, you should make a backup copy with the config command.

The third command lets you go back to a previous configuration file. Thus, if you want to scrap your current configuration file and start over, you can get an entirely new configuration file with the writeconfig command. If you send Majordomo the command:

writeconfig listname password

Majordomo will delete your current configuration file and replace it with the default configuration file. This will fix any problems your current figuration file has. It will also get rid of any changes you might previously have made in the configuration file, so while it's a good quick shortcut to fix any problems, it's no substitute for having a backup.

The most important configuration commands:

There are a very wide variety of things you can control by changing your configuration file. The generally most important of these are editing the 1/2 line description Majordomo displays together with your list's name, changing your subscription policy, changing your moderation policy, and putting restrictions on the information non-subscribers can retrieve about your list from Majordomo.

You control all of these things by having lines in your configuration file which say "variable = setting." What the setting is varies with the command; your description can be any fifty characters or so, but many things take only "yes" and "no" as their settings.

The description of your list

To set your description, include:

description = Any 50 or so characters you want Majordomo to say.

in a configuration file you send to Majordomo. There is no default description.

Subscription

There are three choices for subscription settings: letting anyone subscribe any email address, letting anyone subscribe their own address but requiring password approval for other addresses, and requiring password approval of all addresses. In respective order, each of these settings may be put in your Majordomo file by:

subscribe_policy = auto
subscribe_policy = open
subscribe_policy = open+confirm
subscribe_policy = closed
unsubscribe_policy = auto
unsubscribe_policy = open
unsubscribe_policy = closed

The default subscription policy is open. unsubscribe_policy and open+confirm were added in recent versions of Majordom and requires the subscriber to write back to confirm his subscription request.

Moderation (submission) policy

There are two choices for a moderation policy: moderated and unmoderated. If a list is moderated, all postings to it must be approved by password; if not, anyone can post to the list. The settings in the configuration file are:

moderate = yes
moderate = no

The default Majordomo setting is unmoderated.

Recent versions of Majordomo also support:

moderator = address

With this option in effect (i.e., an address provided instead of left blank), the specified address will receive approval requests for the moderated list.

Who can get information about the list

There are several commands which control whether or not people unsubscribed to the list can retrieve types of information about it. You can control whether someone unsubscribed to the list can retrieve the info information about it, can see it included in a catalogue of lists an e-mail address is subscribed to, and/or can retrieve the roster of e-mail addresses subscribed to the list. These settings can be set with:

info_access = open
info_access = closed
info_access = list
intro_access = open
intro_access = closed
intro_access = list
which_access = open
which_access = closed
which_access = list
who_access = open
who_access = closed
who_access = list

Under versions of Majordomo prior to 1.94.3, the corresponding settings were:

private_info = no
private_info = yes
private_which = no
private_which = yes
private_who = no
private_who = yes

The default setting for all of these command is open for the new-style configurations and no for the old ones, i.e. your list is public.

Customizing how messages look

There are three commands which can automatically add text to messages which go out over the list. Message_footer adds text to the end of the letter. Message_fronter adds at the beginning of the normal text of the letter. Message_headers adds new headers to the headers section of the letters (the part with "From" lines, "To" lines, and so on). All of these work in the same way:

message_footer << END
The lines you want at the end of the text.
END

message_fronter << END
The lines you want at the beginning of the text.
END

message_headers << END
X-Header-Name: text of header; must be formatted HeaderName: headertext
X-Header-Name2: you can add multiple headers.
END

In all three cases, make sure the text you want added is in between the two ENDs. All of these default to blank lines.

It is also possible to add a word to the beginning of a subject line. Since you only add a word (it can include numbers or punctuation as well as letters, simply no spaces or tabs or end-of-lines; like the password, it cannot include a pound sign), it is done more simply:

subject_prefix = one-word

This permits people to quickly see which of their mail is from the list by reading the subject headers. It defaults to nothing.

You can influence where people send their replies to by inserting a "reply-to" line in the messages distributed through Majordomo. It works the same way subject_prefix does, with one word added to the end of the line:

reply_to = one-word

If the word you use is $SENDER, the reply_to line in any message distributed by Majordomo will have the email address from which the message was sent to Majordomo for mailing list distribution. The default is nothing; the reply_to line will be omitted. Most mailers will then reply to the "From" line, which will have the email address from which the message was sent to Majordomo for distribution. If you want a discussion list, you might want to set the reply_to to the lists's submission address (e.g. listname@list.pitt.edu), so that a "reply" is received by everyone on the list. If you set a reply-to, make certain the address is typed correctly and is a valid email address, or all replies will fail.

Setting a reply_to for the list can cause problems, so it is not advised.

You can also delete some of the "Received" headers from the mail distributed by Majordomo. These "Received" headers track which machines received the mail, so that the path it took can be plotted. If you want to, you can delete the "Received" headers up to the time Majordomo received it. This will shorten the headers received by the list readers.

purge_received = yes
purge_received = no

The default is no.

Purging received headers can make tracing messages difficult, so it is not advised.

Other variables

There are many other variables you can set through the configuration file, and a reference list for them is on the next page. Most listowners will never want to set any variables besides those above; many will never want to set anything besides the list description.

The total configuration file is very powerful, which means you can do a lot with it, but also means a typing error or a misunderstood variable can cause a lot of problems. Therefore, if you do change any other variables, you should be careful to save a copy of your configuration file first and to watch the list carefully for a couple of days afterwards.

Your Responsibilities

There is a certain amount of routine work associated with every mailing list. Majordomo is designed to minimize this work, but there is a certain amount of work that must be done by a human being; even if everything goes smoothly, somebody must make certain that Majordomo is doing its job. CIS doesn't have the personnel to manage every mailing list. Therefore, before we create a mailing list, we require a list owner who agrees to handle this routine work.

By agreeing to become a mailing list owner, you're taking on responsibility to see that your list runs smoothly. CIS will run Majordomo and the list machine to give you tools for this, and we will help you out in an emergency. However, you must handle the routine work yourself.

If you have your list set to permit users to subscribe and unsubscribe themselves (subscribe_policy=open+confirm, unsubscribe_policy=open) and to let messages sent to the list address be distributed to the subscribers without requiring validation (moderated=no), your job should be fairly easy. If you moderate the mailing list, or require subscription approval, things will be somewhat more difficult, but Majordomo should keep the administration load as low as possible.

The administration work you will need to do can be split into two parts: the things you will need to do to begin your list, and the things you will need to manage your list once the list is started.

When you start a list, you should read this document carefully, use the newinfo command to set up a description of the list, and add the half-line description of your list to the configuration file. If there are any other important changes you want to make to the configuration file--making the list moderated, for example--you should also make them at this time.

While running your list, you should keep a copy of this document and the Majordomo subscriber document handy. On a daily basis, you should also read your list administration e-mail and take care of any urgent needs, for example: urgent subscription requests, bounce messages, any unsubscription requests (all unsubscription requests should be thought of as urgent because people tend to become angry if they keep receiving mail from a list much after they requested that the messages stop coming -- and therefore unsubscription requests are an easy problem which can balloon into a bigger problem very easily). On a regular basis, you should take care of any routine work: get a copy of the current subscribers to the list, handle the subscription requests, any requests for basic information about the list, and so on.

These administration tasks should not take up very much of your time unless your list becomes very large. However, they need to be done regularly, or minor problems can become major ones.

Moderating Your List

If you have a variable (e.g. administrivia or moderate) set that requires you to actively monitor your list, then you will receive BOUNCE: messages from majordomo asking you if you want to approve a message to be sent to the list. If you do not want to approve the message, you do not need to do anything more (although you may want to email the sender with the reason for the rejection). If you do wish to approve the message, forward it to the list (including the original headers but not those added by the bounce) adding a line 'approved: ' to the beginning of the message.

To      : listname@list.pitt.edu
Cc      : 
Attchmnt: 
Subject : 
----- Message Text -----
approved: password
Date: Tue, 13 Feb 2001 09:44:31 -0500 (EST)
From: List member 
To: listname@list.pitt.edu
Subject: Message to Moderated List

I'm just testing that moderating is turned on and working for this list.

Note:  the next line will trigger administrivia if it's turned on.
get a dog.

Because Majordomo sees that it has the same format as:
get listname filename

Hope this helps,
List member

Again, this example shows the "pine" compose screen. Your client may display differently. What's important is that the first line is approved: password; the second line starts the headers of the original message; and that none of the headers from the bounce are present.


Variables in configuration file:

Variable name
What the variable controls
admin_passwd
password for handling "administrative tasks" on your list
administrivia
distribute recognizeable administration requests sent to list to list owner instead of list
advertise
your list appears with 'lists' command if e-mail address matches. See noadvertise.
approve_passwd
moderator password for moderated lists
archive_dir
does not work; leave blank (theoretically where archives are stored)
comments
this entry doesn't affect list directly and are kept after a 'writeconfig'
date_info
put date-last-updated at the top of the info file instead of at bottom
date_intro
put date-last-updated at the top of the info file instead of at bottom
debug
don't forward messages sent through list, just go through motions
description
a half-line description included with listname for 'lists' response
digest_archive
does not work; leave blank (theoretically where archives are stored)
digest_issue
number of the next digest list issue
digest_maxdays
maximum number of days between digests
digest_maxlines
maximum line-length of digests
digest_name
with the volume and issue forms, this the subject line for list digest
digest_rm_footer
remove list-added footers (message_footer) for lists digests
digest_rm_fronter
remove list-added fronters (message_fronter) for lists digests
digest_volume
the current digest volume number
digest_work_dir
leave this alone (temporary space for the digest)
get_access
requestor must be on mailing list to get files
index_access
requestor must be on mailing list to receive index
info_access
requestor must be on mailing list to get 'info' information
intro_access
requestor must be on mailing list to get 'intro' information
maxlength
maximum length of unapproved message in characters; if used with digest, the maximum length of a digest in characters as well
message_footer
adds text at end of all email distributed by list
message_fronter
adds text at beginning of ordinary text of all email distributed by list
message_header
adds lines to the headers of all email distributed by list
moderate
if all distributed messages must be approved by a moderator
moderator
address who approves submissions instead of list owner addresses
mungedomain
if yes, all messages sent from user@somewhere.site.edu are considered as messages from user@site.edu; this affects recognition for (un)subscribe requests plus all *_access options
noadvertise
if email address matches, your list is not included in the results from the 'lists' command. This overrides advertise, and by default your list is included responses to all 'lists' requests
precedence
puts a 'precedence=word' (default bulk) into the header of all messages distributed by the list
purge_received
delete 'received' headers when distributing mail
reply_to
puts a 'reply_to=word' in the headers of email distributed by the list
resend_host
if used host name is appended to all address strings for resend
restrict_post
if used only addresses in the lists mentioned can get messages distributed through mailing list (e.g. if you want only people who receive mail on your list to be able to post to your list, use restrict_post = [name of your list]). If multiple lists are specified, colons (:) should be used to separate them. You can specify a file in your home directory in afs by using ../../../..[full directory path] (e.g. if your userid is myuserid and you have a file in your home directory called posters.allowed, you would say restrict_post = ../../../../afs/pitt.edu/home/m/y/myuserid/posters.allowed).
sender
envelope/sender address for mail resent by Majordomo
strip
strip off all comments and only add basic address to list file
subject_prefix
word is put at the beginning of subject of all email distributed by list
subscribe_policy
if people can subscribe themselves/others without approval
taboo_body
list of regular expressions which are normally forbidden in the body of messages sent to the list.
taboo_headers
list of regular expressions which are normally forbidden in the headers of messages sent to the list.
unsubscribe_policy
if people can unsubscribe themselves/others without approval
which_access
requestor must be on mailing list to get 'which' information
who_access
requestor must be on mailing list to get 'who' information


Managed Mailing Lists at Pitt

The information contained within these documents applies only to the computing environment provided by Computing & Information Services at the University of Pittsburgh.

This document is based heavily on one from the University of Chicago Networking Services group, which has kindly given us permission to use and modify their document for our server.

Send your comments and questions about this document to postmaster@pitt.edu. Please make sure that your web browser is configured with your correct return address.

Copyright © 1997 University of Pittsburgh.
All rights reserved.

@(#)$Id: listowner.html,v 2.2 2001/01/23 13:44:04 fletch Exp fletch $