Majordomo Config File


The majordomo configuration file for your list is the single most important tool you have for determining how your list works. To retrieve a copy of your configuration file, send the following two line message to majordomo@bga.com.


"listname" is the name of your list. "password" is the list administration password which you provided in your majordomo list application.

A copy of your config file will be mailed to you by the Majordomo program. Save this email to a disk file. You may edit this file using the text editor of your choice, either Unix or DOS. Please note that this file is a pure text file and programs such as Word for Windows must be used very carefully in order to preserve the pure text nature of the file. The formatting information usually placed into documents by word processing programs will render your config file useless to majordomo. Programs such as Microsoft Windows Notepad will do nicely for the job. Make sure that word wrap is disabled.

Once you have the appropriate changes made in your config file, you may reinstall it by sending it to majordomo@bga.com in an email of the following form:

This validates and installs a new configuration file. It reads everything after the "newconfig" command to end-of-message or the word "EOF" on a line by itself as the new info for the list. The config file is expected to be a complete config file as returned by "config". Incremental changing of the config file is not yet supported. As soon as the config file is validated and installed its settings are available for use. This is useful to remember if you have multiple commands in your mail message since they will be subject to the settings of the new config file. If there is an error in the config file (incorrect value...), the config file will not be accepted and the error message identifying the problem line(s) will be returned to you. Note that only the error messages are returned to the sender not the entire config.


Config Command Summary

The following brief index will direct you to different locations in a sample config file. Commented text (lines beginning in "#") in the file is generally document specific features fairly well. The "Notes" link on some index entries takes you to additional information on the item.

Administrative commands

Making your list known to the world Commands for lists with digests Providing information to to list users Talking to the mail system Security

Sample Config


	# admin_passwd       [word] (foobarlist.admin) <majordomo>
	# (Default is specified in the file <listname>.passwd) The password
	# for handling administrative tasks on the list.
admin_passwd      =   foobarlist.admin

	# administrivia      [bool] (yes) <resend>
	# Look for administrative requests (e.g. subscribe/unsubscribe) and
	# forward them to the list maintainer instead of the list.
administrivia     =   yes

	# advertise          [regexp_array] (undef) <majordomo>
	# If the requestor email address matches one of these regexps, then
	# the list will be listed in the output of a lists command. Failure to
	# match any regexp excludes the list from the output. The regexps
	# under noadvertise overide these regexps.
advertise         <<  END

END

	# approve_passwd     [word] (foobarlist.pass) <resend>
	# Password to be used in the approved header to allow posting to
	# moderated list, or to bypass resend checks.
approve_passwd    =   foobarlist.pass

	# archive_dir        [absolute_dir] (undef) <majordomo>
	# The directory where the mailing list archive is kept. This item does
	# not currently work. Leave it blank.
archive_dir       =

	# comments           [string_array] (undef) <config>
	# Comment string that will be retained across config file rewrites.
comments          <<  END

END

	# date_info          [bool] (yes) <majordomo>
	# Put the last updated date for the info file at the top of the info
	# file rather than having it appended with an info command. This is
	# useful if the file is being looked at by some means other than
	# majordomo (e.g. finger).
date_info         =   yes

	# debug              [bool] (no) <resend>
	# Don't actually forward message, just go though the motions.
debug             =   no

	# description        [string] (undef) <majordomo>
	# Used as description for mailing list when replying to the lists
	# command. There is no quoting mechanism, and there is only room for
	# 50 or so characters.
description       =

	# digest_archive     [absolute_dir] (undef) <digest>
	# The directory where the digest archive is kept. This item does not
	# currently work. Leave it blank.
digest_archive    =

	# digest_issue       [integer] (1) <digest>
	# The issue number of the next issue
digest_issue      =   1

	# digest_name        [string] (foobarlist) <digest>
	# The subject line for the digest. This string has the volume  and
	# issue appended to it.
digest_name       =   foobarlist

	# digest_rm_footer   [word] (undef) <digest>
	# The value is the name of the list that applies the header and
	# footers to the messages that are received by digest. This allows the
	# list supplied headers and footers to be stripped before the messages
	# are included in the digest. This keyword is currently non operative.
digest_rm_footer  =

	# digest_rm_fronter  [word] (undef) <digest>
	# Works just like digest_rm_footer, except it removes the front
	# material. Just like digest_rm_footer, it is also non-operative.
digest_rm_fronter =

	# digest_volume      [integer] (1) <digest>
	# The current volume number
digest_volume     =   1

	# digest_work_dir    [absolute_dir] (undef) <digest>
	# The directory used as scratch space for digest. Don't  change this
	# unless you know what you are doing
digest_work_dir   =

	# maxlength          [integer] (40000) <resend,digest>
	# The maximum size of an unapproved message in characters. When used
	# with digest, a new digest will be automatically generated if the
	# size of the digest exceeds this number of characters.
maxlength         =   40000

	# message_footer     [string_array] (undef) <resend,digest>
	# Text to be appended at the end of all messages posted to the list.
	# The text is expanded before being used. The following expansion
	# tokens are defined: $LIST - the name of the current list, $SENDER -
	# the sender as taken from the from line, $VERSION, the version of
	# majordomo. If used in a digest, no expansion tokens are provided
message_footer    <<  END

END

	# message_fronter    [string_array] (undef) <resend,digest>
	# Text to be prepended to the beginning of all messages posted to the
	# list. The text is expanded before being used. The following
	# expansion tokens are defined: $LIST - the name of the current list,
	# $SENDER - the sender as taken from the from line, $VERSION, the
	# version of majordomo. If used in a digest, only the expansion token
	# _SUBJECTS_ is available, and it expands to the list of message
	# subjects in the digest
message_fronter   <<  END

END

	# message_headers    [string_array] (undef) <resend,digest>
	# These headers will be appended to the headers of the posted message.
	# The text is expanded before being used. The following expansion
	# tokens are defined: $LIST - the name of the current list, $SENDER -
	# the sender as taken from the from line, $VERSION, the version of
	# majordomo.
message_headers   <<  END

END

	# moderate           [bool] (no) <resend>
	# If yes, all postings to the list  must be approved by the moderator.
moderate          =  yes

	# mungedomain        [bool] (no) <majordomo>
	# If set to yes, a different method is used to determine a matching
	# address.  When set to yes, addresses of the form user@dom.ain.com
	# are considered equivalent to addresses of the form user@ain.com.
	# This allows a user to subscribe to a list using the domain address
	# rather than the address assigned to a particular machine in the
	# domain. This keyword affects the interpretation of addresses for
	# subscribe, unsubscribe, and all private options.
mungedomain       =   no

        # no_who             [bool] (no) <majordomo>
        # If set to yes, then the requestor must provide  a password in order
        # to use the who command.
no_who            =   no

	# noadvertise        [regexp_array] (undef) <majordomo>
	# If the requestor name matches one of these regexps, then the list
	# will not be listed in the output of a lists command. Noadvertise
	# overrides advertise.
noadvertise       <<  END

END

	# precedence         [word] (bulk) <resend,digest>
	# Put a precedence header with value <value> into the outgoing
	# message.
precedence        =   bulk

	# private_get        [bool] (yes) <majordomo>
	# If set to yes, then the requestor must be on the mailing list in
	# order to get files.
private_get       =   yes

	# private_index      [bool] (no) <majordomo>
	# If set to yes, then the requestor must be on the mailing list in
	# order to get a file index.
private_index     =   no

	# private_info       [bool] (no) <majordomo>
	# If set to yes, then the requestor must be on the mailing list to use
	# the info <list> command.
private_info      =   no

	# private_which      [bool] (no) <majordomo>
	# If set to yes, then the requestor must  be on the mailing list in
	# order to get which info from that list.
private_which     =   no

	# private_who        [bool] (no) <majordomo>
	# If set to yes, then the requestor must  be on mailing the list in
	# order to use the who command.
private_who       =   no

	# purge_received     [bool] (no) <resend>
	# Remove all received lines before resending the message.
purge_received    =   no

	# reply_to           [word] () <resend,digest>
	# Put a reply-to header with value <value> into the outgoing message.
	# If the token $SENDER is used, then the address of the sender is used
	# as the value of the reply-to header. This is the value of the reply-
	# to header for digest lists.
reply_to          =	foobarlist

	# resend_host        [word] (undef) <resend>
	# The host name that is appended to all address strings specified for
	# resend.
resend_host       =	bga.com

	# restrict_post      [restrict_post] (undef) <resend>
	# If defined only address listed in one of the files (colon or space
	# separated) can post to the mailing list. This is less useful than it
	# seems it should be since there is no way to create these files if
	# you do not have access to the machine running resend. This mechanism
	# will be replaced in a future version of majordomo/resend.
restrict_post     =

	# sender             [word] (owner-foobarlist) <majordomo,resend,digest>
	# The envelope and sender address for the resent mail. This string has
	# "@" and the value of resend_host appended to it to make a complete
	# address. For majordomo, it provides the sender address for the
	# welcome mail message generated as part of the subscribe command.
sender            =   owner-foobarlist

	# strip              [bool] (yes) <majordomo>
	# When adding address to the list, strip off all comments etc, and put
	# just the raw address in the list file.  In addition to the keyword,
	# if the file <listname>.strip exists, it is the same as specifying a
	# yes value. That yes value is overridden by the value of this
	# keyword.
strip             =   yes

	# subject_prefix     [word] (undef) <resend>
	# This word will be prefixed to the subject line, if it is not already
	# in the subject. The text is expanded before being used. The
	# following expansion tokens are defined: $LIST - the name of the
	# current list, $SENDER - the sender as taken from the from line,
	# $VERSION, the version of majordomo.
subject_prefix    =

	# subscribe_policy   [enum] (open) <majordomo> /open;closed;auto/
	# One of 3 possible values: open, closed, auto.  Open allows people to
	# subscribe themselves to the list. Auto allows anybody to subscribe
	# anybody to the list without maintainer approval. The existence of
	# the file <listname>.auto is the same as specifying the value auto.
	# Closed requires maintainer approval for all subscribe requests to
	# the list. In addition to the keyword, if the file <listname>.closed
	# exists, it is the same as specifying the value closed. The value of
	# this keyword overrides the value supplied by any existent files.
subscribe_policy  =

Notes

administrivia maxlength no_who reply_to resend_host restrict_post