You can issue a approve <list password> who <list name> command for your list to see who's already on your list. You may or may not already be subscribed to your own list.
To submit something to your list, you (or anybody else) should simply mail it to the list posting address (listname@cs.wisc.edu).
All majordomo commands are contained in the body (not the subject list) of email messages.
To be added to your list, a user simply sends a message to majordomo. There are two ways to do that:
Majordomo understands several commands, and is not limited to a single command per message (it will process commands until reaching end-of-message or the command end). The command help will tell you about all the other commands.
Actually, it won't tell you about all the other commands that Majordomo understands. There are several commands there for use by list owners such as yourself, which are not advertised to the public. All of these commands are password-protected on a list-by-list basis, but anyone with a valid list/password combination can invoke these commands. This is not exactly high-tech security, but it's more intended to keep annoyance to a minimum than to be foolproof.
The documented commands which Majordomo understands and which are for everyone to use are documented in the CSL Majordomo FAQ. You can get detailed explanations of all of these by asking for help from Majordomo (send a message containing just the word help as the message text to majordomo@cs.wisc.edu).
config list list-password
Where list list-password were given to you at list creation time.
You will receive a config file that can be used to change the operation of your list. Configure the majordomo and resend subsystems.
The configuration file is meant to be self documenting. Once you have completed all of the changes to the config file, You should use the newconfig command (described above) to put a new configuration file in place.
If you have a digest version of your list, you should retrieve the config file for the digest as well using:
config digest-list-name digest-list-password
and configure the parameters for the digest and majordomo subsystems.
The character / is used to mark the beginning and end of a regular expression. Letters and numbers stand for themselves. Many of the other characters are symbolic. Some commonly used ones are:
| \@ | the `@' found in nearly all addresses; it must be preceeded by a backslash in later versions of perl to avoid errors |
| . (period) | any character |
| * | previous character, zero or more times; note especially... |
| .* | any character, zero or more times |
| + | previous character, one or more times; so for example... |
| a+ | letter a, one or more times |
| \ | next character stands for itself; so for example... |
| \. | literally a period, not meaning any character |
| ^ | beginning of the string; so for example... |
| ^a | a string beginning with letter a |
| $ | end of the string; so for example... |
| a$ | a string ending with letter a |
cs.umb.edu
foo.cs.umb.edu
user@foo.cs.umb.edu
users%foo.cs.umb.edu@greatcircle.com
rouilj@cs.umb.edu
rouilj@terminus.cs.umb.edu
arouilj@terminus.cs.umb.edu@greatcircle.com
but it doesn't match
rouilj@umb.edu
brent@cs.umb.edu
rouilj@cs.umb.edu
rouilj@terminus.cs.umb.edu
but it doesn't match
arouilj@terminus.cs.umb.edu@greatcircle.com
because the regular expression says the string has to begin with
letter r and end with letter u, by using
the ^ and $ symbols, and neither of those is true for
arouilj@terminus.cs.umb.edu@greatcircle.com.
a*rouilj
s*rouilj
It would not match this because the . by itself implies one character:
*rouilj
Normally all matches are case sensitive; you can make any match case
insensitive by appending an `i' to the end of the expression.
/aol\.com/
would match aol.com but not AOL.com or any other capitalization.
/\/CO\=US/
matches /CO=US and may be a useful regular expression to
those of you who need to deal with X.400 addresses that contain /
characters.
The requests for approval that Majordomo generates all start with APPROVE in the Subject: line.
You aren't limited to approving only things to Majordomo requests approval for. You can approve any subscribe or unsubscribe request, regardless of whether Majordomo has requested this approval, with an approve command. Thus, you can subscribe or unsubscribe people from your list without them having to send anything to Majordomo; just send an appropriate approve PASSWORD subscribe LIST ADDRESS or approve PASSWORD unsubscribe LIST ADDRESS command off to Majordomo.
If you use a mailer which is capable of sending a message to an external program, can run perl and can run sendmail or a program capable of behaving like it for the purposes of sending mail, then all you have to do is send the entire approval message (including all of the headers, which are very important and which are automatically removed by some mailers unless configured to do otherwise) to the approve script. Approve looks for a file called .majordomo in your home directory to find the approval password for your list. The format of this file is given in the following excerpt from the approve manual page:
approve assumes that the approve password for each list is
the same as the approval password used by resend, and that
this password is stored in a file called .majordomo in the
user's home directory. The file has the following format:
this-list passwd1 Majordomo@This.COM
other-list passwd2 Majordomo@Other.GOV
The first column specifies the name of the mailing list, the
second column specifies the list-owner's password for the
given list, and the third column specifies the e-mail
address of the associated Majordomo server. It is assumed
that the value in the third column is an Internet-style
something@somewhere address, and that postings for List
should be sent to List@somewhere. Since this file only
needs to be read by the user, it should be mode 600 to pro-
tect the passwords.
If you have the necessary environment for running the approve script,
contact the Majordomo owner at the site that serves your list and request
it.
Majordomo will forward these messages to you in another message whose subject line begins with the word BOUNCE; the subject line will also indicate the name of the list the message was bounced from (in case you manage more than one list) and the reason the message was bounced.
If you decide that the message is OK and should not have been bounced, then you can cause Majordomo to post it anyway by sending the message back to the posting address (NOT to the Majordomo address) with a special Approved: password header. There are two ways to do this; the method you use depends on your having access to and the ability to run the approve script mentioned in the previous section. If you can run approve it is recommended that you do so, as this method is much less prone to errors and will reduce the time you spend moderating your list. See the man page for the approve program.
If you cannot run the approve script, you can manually approve the message. To do so, follow the following directions exactly:
From: majordomo@list.server \
To: your-list-approval@list.server | Don't want these headers
Subject: BOUNCE: taboo_header found /
- Blank line
>From list-member@her.site date \
Received: some long routing info | Headers of original message;
From: list-member@her.site | You want these. It's OK if you
To: your-list@list.server | don't have the first line.
Subject: Just a message /
- Blank line, you _must_ have this!
Hello. I'm just writing to \
consume some bandwidth and | Message body; include all of
take up space in your mail | this.
spool! /
Basically you want everything after (and not including) the first
blank line.
Approved: sekrit >From list-member@her.site date Received: some long routing info From: list-member@her.site To: your-list@list.server Subject: Just a message Hello. I'm just writing to consume some bandwidth and take up space in your mail spool!
Even your own messages may be bounced to you for approval. To send out your own message without server checks (perhaps you know it contains something the list server will complain about) you can pre-approve the message one of the two following ways:
Approved: sekrit
It's precise location within the headers is not important.
Approved: sekrit
as the first line of the message, followed by a blank line (which is
required for your message to be sent properly) followed by the
text of your message. The Approved: line and one following
blank line will be deleted and the message will be passed without
being checked. The blank line is important because it is
used to differentiate between a pre-approval and the approval of
a bounced message, outlined above.
Again, the approve program automates all this if you wish to use it. You can also use the above pre-approval method to send your own messages without them being bounced back to you.
If you have any questions about all of this, send them to the Majordomo-Owner address shown at the top of this file.
The most common case is to limit posting to people who are subscribed to the list. This keeps out advertisements and other junk mail sent by non-subscribers. Since majordomo already has a file of subscribers, you don't need to create and maintain a file, so it's easy to set.
Change the restrict_post line to this, where listname is the name of your list:
restrict_post = listname
If you have a digested list, but you want digest members to be able to post to the undigested list for simplicity, you can specify multiple files to verify the user against. Separate the filename with colons
restrict_post = listname:digest-listname
If you want to restrict posting to any other set of people, you'll need to ask majordomo-owner for help. Unfortunately there's no way to tell majordomo about keeping another file of people who are allowed to post, so a file would have to be set in place by hand. Some future release of majordomo may provide a way to do this automatically.
Archive files can be split by years, months, or days. This means all mail to the list for one of those periods of time will be collected into one archive file. People who want to get archived mail will need to get one such file as a unit.
We are running an indexer program nightly. It produces two index files that subscribers can get: CONTENTS lists what subject lines are in each archive file; TOPICS lists what archive files contain each subject.
Subscribers use the get command to see files in the archives. Examples:
Subscribers can also get a list of filenames and dates in the archive by sending an index command. Example: index ListName
This is controlled by the config file variable private_index similarly.
Notes on archiving.
A Majordomo digest is actually a separate mailing list. The digest of ListName would normally be called ListName-digest.
People subscribe independently to ListName and ListName-digest. Very likely no one would want to be on both lists. To change between ListName and ListName-digest, a subscriber needs to unsubscribe from one list and subscribe to the other. This can be done with one message to majordomo@cs.wisc.edu with two command lines in it, e.g.:
unsubscribe ListName subscribe ListName-digestRemember that ListName-digest will have its own information file and configuration file. Change them, if you want to, when you change the same files for ListName.
Majordomo will send a digest automatically when the size of the digest exceeds the size given as max_length in the configuration file of the digest list. The default max_length is 40 K. Thus the interval between digests can vary, but they will be of a predictable size.
The listowner can also tell Majordomo to make a digest (meaning, compile and send out a digest) by sending the command mkdigest at any time:
mkdigest ListName-digest passwordA daily digest (or for some other time period) could be achieved by setting the max_length high enough so as not to be reached normally in a day, and then setting up a job to run daily that sends mail to Majordomo with the mkdigest command. On a unix system, give the commands man crontab and man 5 crontab at the shell for an explanation of such jobs, or ask majordomo-owner for help.