Majordomo List Owner Guide

Setting up a New Mailing List

Anything that appears in capitals and italics should be replaced with the appropriate value. For example, SITE_PASSWORD should be replaced with CSF's site password for majordomo lists.

All majordomo commands should be sent to Commands in the Subject: line will be ignored. The first command in the message should tell majordomo what password to use for the commands that follow, for example,

default password YOUR_LIST_PASSWORD

Questions & Answers

How is a list created?
One of the site managers must create the list using the createlist command:
Afterward, one of the site managers must configure sendmail so that it recognizes the addresses of the new list.
How is the list's password configured?
The initial password is chosen randomly by the software. Afterward, anyone who knows the list's password may change it with the following command:
configset LIST master_password = PASSWORD
How do I obtain a description of all of the configuration options that are available to list owners?
Use the configshow command. It lists all of the options. There are dozens of options, so don't be surprised at the length of the description.
configshow LIST
configshow-nocomments LIST
I just want to know about one or two of the options.
Add the name of the option that interests you to the end of the configshow command. For example, if you want to know about the subscription policy and the access rules, use
configshow LIST subscribe_policy,access_rules

The configshow command presents the options in the form of majordomo commands. This makes it easy to edit the results of configshow, then send your changes to majordomo to have them take effect.

What options need to be configured before the list is made public?
There are several options to be set and descriptions to be written before the list is ready. The steps include: Note that Majordomo has a "DEFAULT" mailing list that allows the site administrator to set good default values for new lists. Examine the current settings before you make any changes to your list; some of the settings may already be what you want.

What are the subscription policy options?
There are three basic options: auto, open, and closed. In addition, any of these three options may include the confirm capability. When someone makes a request that an address be added to the subscriber list, a confirmation token is sent to that address. The subscriber must validate the request using the accept command. This ensures that the address is valid, and keeps pranksters from signing other people up for the mailing list without their consent.

Every action that is delayed pending someone's approval has a token associated with it. To see which tokens are awaiting approval, use the command

showtokens LIST
Tokens expire if no action has been taken, usually in seven days. One reminder is sent to the appropriate person after four days have elapsed. Both of these time periods can be changed by the list owner.
configset LIST token_remind = 4
configset LIST token_lifetime = 7

To require confirmations when subscribing, but allow people to unsubscribe without confirmation, use the following commands:

configset LIST subscribe_policy = open+confirm
configset LIST unsubscribe_policy = open
This is shown on the recipe page.

What are the configuration options for access to documents?
At present, the configset command may be used to decide who is able to retrieve documents:

These options may be set to one of the following values:

As an example, to restrict the subscriber list to only the owners, use the following command:

configset LIST who_access = closed

Who will be able to send messages to the mailing list?
It depends upon the posting policy. The policy is established using the access_rules option. The @MAIN variable refers to people who are subscribed to the mailing list. In the following example, only list subscribers are permitted to send messages to the mailing list. Other messages are sent to the list owners for approval.
configset LIST access_rules <<HERE
consult, reason="Address was not found in the subscriber list"

Since this configset command occupies more than one line, it uses the "here document" format. The "<<HERE" portion tells majordomo to use all of the following lines, up to a line beginning with HERE, as the value of the access_rules option. The tag "HERE" is can use any word you like to indicate the end of the here document.

Another useful setting is to restrict incoming messages that don't have the list's address in either the To: or Cc: header. Use the admin_headers option as follows...

configset LIST admin_headers <<THEEND

The access_rules and admin_headers options are complicated and powerful. Briefly, each rule has three parts, and each part appears on a separate line. The parts are

To get more information about the access rules, use the majordomo commands

help configset_access_rules
help configset_admin_body
It is not necessary to use a password for the help commands. In fact, a bug in majordomo will keep help commands from working if the default password command is used in the same message.

What introductory documents need to be written?
There are several, each of which must be written separately: the faq, info, intro, short description and long description documents. The faq, info, and intro files are created using the newfaq, newinfo, and newintro commands. For example, the following command creates a new info file. The info file appears at the bottom of the welcome message that every new subscriber receives.
newinfo LIST <<ENDABC
Welcome to the LIST mailing list

To post messages to the list, write to $

If you need help, write to $OWNER.
The value of $LIST (the mailing address of the list) and $OWNER (the list owner address, e.g., "") will be filled in automatically.

For the faq and intro documents, use newfaq and newintro in place of newinfo, and rewrite the here document to meet your needs. Each of these three documents (info, intro, faq) may be retrieved using the command of the same name.

The short and long descriptions are sent to people who use the lists and lists-long commands, respectively. If the long description isn't defined, the short description is used in its place. Here is an example:

configset LIST description = Discussion of the colors of the rainbow.

configset LIST description_long <<ENDTAG
Some people say the rainbow has seven colors:  red,
orange, yellow, green, blue, indigo, and violet.  Others
look upon it a a continuity of colors.  Aristotle wrote
that the rainbow has precisely three colors.  This list
is for rainbow lovers of all colors, to meet and exchange
views on one of nature's great marvels.

to learn more about the folklore of the rainbow.

When will message digests be sent to the subscribers?
Majordomo offers a great deal of latitude in defining digests. Several digests, distributed at different times and in different formats, may be issued for the same list. There are three formats available at present:

Each digest has eight variables, which are listed in the following table.
Variable Description Default Value
Name A one-word name for the digest. When subscribers use the set LIST digest-NAME-TYPE command, this name may be used in place of NAME. No default value.
Time Hour, day, weekday, or month during which digests may be created. May be a range of values. Anytime.
Minimum Size Minimum number of messages and/or kilobytes in a digest. Zero.
Maximum Size Maximum number of messages and/or kilobytes in a digest. Infinite.
Maximum Age Greatest age allowed for the oldest message in a digest. Infinite.
Delay Minimum amount of time between digests. Zero.
Minimum Age Smallest age allowed for the youngest message in a digest. Zero.
Type Digest format; may be text, mime, or index. mime

When a digest is defined, vertical bars are used to separate the values. Following each set of values is a one-line description of the digest. If a value is omitted, the default value is used instead. For example, the following commands create two digests, one of which is distributed daily between 6 PM and 11 PM, and the other once every four days. The daily digest has a limit of 100 kilobytes; the tetra-daily digest, 250 kilobytes.

configset LIST digests <<DONE
daily | 18-23 | 50k | 100k | | | | 
LIST Daily Digest
tetra | 1st, 5th, 9th, 13th, 17th, 21st, 25th, 29th | 30k | 250k | | | |
LIST Semiweekly Digest
If a subscriber uses the command set LIST digest, majordomo will use the settings in the first digest you define. In the example you just saw, set LIST digest and set LIST digest-daily-mime would have the same effect.

For more details, use the majordomo command

help configset_digests
How may I add or remove a list owner?
It may not be necessary, since anyone who knows the list's password can issue administrative commands. However, only owners will be asked to approve, for example, subscriptions for closed lists. To change the list of owners, use configshow as follows:
configshow LIST owners

This command will return to you the list of owners as part of a configset command. Edit that list and return the configset command to majordomo.

How do I obtain the list archives? The archives are divided by month, by default. This may be changed to daily, weekly, or yearly using the archive_split option.
configset LIST archive_split = weekly
The maximum size of each archive file may be configured using the archive_size option.

To obtain the list archives, first use the index-recursive command to obtain a list of files; then retrieve the archive using the get command. The archive command can also be used to view a summary or the complete text of one or more messages.

How are message footers and subject prefixes configured?
Message footers are defined with the message_footer option. Different footers are separated by blank lines; if more than one footer is given, one of them will be chosen at random when a message is sent to the mailing list. Here is an example:
configset LIST message_footer <<TAG
To leave this mailing list, send a message to
In the body of the message, put the command
  unsubscribe LIST

Subject prefixes appear at the beginning of the Subject: header. Configuration is as expected:

configset LIST subject_prefix = [LIST]

There are quite a few steps to configuring a new list. To make this easier, we have made a recipe available which you can copy, edit, and send to majordomo to configure your list. Enjoy!