Contents of this document:

    General Information
    Submitting Messages to Your List
    Subscribing and Unsubscribing
    Configuring Your List
    Regular Expressions
    Majordomo Commands Available to Your Subscribers
    Digests
    Controlling Who Can Post to Your List
    Messages Bounced for Approval
    Archive
    Error Bounces
    Attachment Removal
    Spam Filtering
    Administrative Majordomo Commands
    Approving Bounced Messages via Email



===================
General Information
===================


                                ******
Please read this manual completely and save it for future reference.
It contains information you need to effectively manage your mailing list 
at Panix.  If you have any questions, please send them to mlists@panix.com.
                                ******
NOTE.  Throughout this manual, the angle brackets "<>" are used to mark
those elements of various syntax templates for which you need to substitute
specific names that are particular to your list or your setup.  For example,
the string "<listname>" will be used to mark places where you need to 
substitute the name of your list; "<password>" will mark places where you
need to substitute the password for your list, etc.  Thus, for example,
if the manual advises you to use the address "<listname>@lists.panix.com" 
and the name of your list is "gardening", the address that you should be using 
is "gardening@lists.panix.com" (without the angle brackets). 
                                ******


Panix's mailing lists are served by an automated mailing-list manager called
"Majordomo", which is written in a programming language called Perl.  The 
version of Majordomo that we are currently running is 1.94.3.

Majordomo offers two different administrative interfaces whereby you can 
manage your list: an email interface and a web interface called MajorCool.  

The email interface accepts and executes commands sent via email to the 
specific "Majordomo address" for your list.  These commands permit you to 
perform administrative actions such as updating your list configuration, 
adding or deleting list-members, installing or updating the info file for your 
list, etc.  Some of these commands are available to list subscribers as well
as to listowners, others are purely administrative commands and require
knowledge of the list password.  With the exception of a few administrative 
commands which were added at Panix, all of the actions that you could perform
using the email interface can also be performed using the MajorCool web 
interface, which is considerably more pleasant, user-friendly and 
error-resistant than the email interface.

Note that the MajorCool web interface is available only to listowners.  All
other users of the Panix Majordomo - such as your subscribers - have to make
use of the email interface, i.e. request the desired Majordomo actions by
sending certain commands (such as "subscribe" or "unsubscribe") to the
"Majordomo address" for your list.  More details about the commands available
to your subscribers will be given below.

The Majordomo address for your list is  majordomo@<domain>, where 
"<domain>" is the full name of the registered domain at which your list 
formally resides.  For example, if the domain where your list resides is
"example.com", the Majordomo address for the list would be 
majordomo@example.com.  If you do not have a registered domain, the Majordomo 
address is majordomo@lists.panix.com.

The URL for the MajorCool web interface is

           http://lists.panix.com

MajorCool has an extensive "Help" facility, and there is no need to explain 
this interface further in the present document.  However, this document
contains much other information that you need to be be aware of, so please 
continue reading it and hold on to it.  If you have any questions, please send 
them to mlists@panix.com.

Your listowner password is required for most of the administrative tasks,
irrespective of whether you are using the email interface or MajorCool.
Please keep track of it.  If you have forgotten your password, please write to
mlists@panix.com.  If you ever wish to change your password, you can do so
by using either the MajorCool interface or the "passwd" command via email 
(see below).

There are two information files that you can create for your list: "info" and
"intro".  The "info" file is intended for general information about the nature
and purpose of your list.  It is the text that gets sent by majordomo in
response to the "info" command (see below), and is the standard way for
potential subscribers to get information that will help them decide whether 
the list is in fact of interest to them.  If there is no "info" file for
the list, the "info" command will return an empty message.

The "intro" file is intended to as a "Welcome to the list" message for new
subscribers.  The information provided in it may overlap with what is
contained in the "info" file, but the "intro" file is also the place for
information that people need only once they are subscribed to the list -
such as the posting address for the list, the list etiquette, etc.
If you have created an intro file, this file is sent to new subscribers as 
part of the "Welcome to the list" message; it can also be retrieved by sending
to majordomo the "intro" command (see below).  If you have not created an
"intro" file, but have created an "info" file, it is the "info" file that
will be sent in the "Welcome to the list" message, and the "intro" command
will return an empty message.  If you see no need to distinguish between the 
information you provide for subscribers and for potential subscribers, you 
should only create an "info" file, since it is the "info" command that is 
historically the way potential subscribers expect to get information about 
the list.  Please create an "info" and (if you wish) an "intro" file 
for your list as soon as possible.  You can create either of these files
by using MajorCool, or by using the "newinfo" and "newintro" commands via
email (see below).

To see who is subscribed to the list, use either the MajorCool interface 
or the "who" command via email (see below).  If you are not already 
subscribed to the list, you can subscribe yourself either from the 
MajorCool interface or by using the "subscribe" command (see below).


================================
Submitting Messages to Your List
================================


The posting address for your list is <listname>@<domain>, where <listname> is 
the name of your list (e.g. "gardening"), and <domain> is the full name 
of the registered domain at which your list formally resides (e.g. 
"example.com").  If you do not have a registered domain, the address of the 
list is <listname>@lists.panix.com (e.g. "gardening@lists.panix.com").  
To submit a message to the list, you (or anybody else) should simply mail 
it to the list's posting address. 


=============================
Subscribing and Unsubscribing
=============================


To be added to your list, a user simply sends a subscription request to 
Majordomo.  There are two ways to do it:

address--    To: <listname>-request@<domain>
message--    subscribe

 OR

address--    To: majordomo@<domain>
message--    subscribe <listname>

By default, all subscriptions to lists hosted by Panix require subscription
confirmation.  This means that after the user has sent a "subscribe" request
to one of the above addresses, he/she will receive from Majordomo a request
for confirmation.  The purpose of this is to eliminate the possibility of
forged subscriptions, where unsuspecting victims are maliciously subscribed 
to lists by third parties.  The confirmation-request that the user gets from
Majordomo contains complete instructions on how the user should reply in order
to actually complete the subscription process.

When the subscription is successfully completed, Majordomo automatically sends 
to the subscriber a "Welcome to the list" message.  This message consists
of two parts.  The first part is hard-coded into the Majordomo code, and 
contains very general instructions for unsubscribing from the list and for
contacting the listowner in case of trouble.  This part cannot be changed.
The second part contains whatever text you have put into the "intro" file
for your list, or, if you have decided to not create an "intro" file, then
whatever you have put into the "info" file for your list (you can create these
files by using either MajorCool or the "newintro" and "newinfo" commands, 
described below).  We recommend that, at the least, the information that your
new subscribers get should contain instructions on how to post to the list 
(i.e. what address to send list messages to) and, if your list has a digest 
option, how to switch to the digest list (this is explained below).

In order to be removed from your list, a user sends an unsubscription 
request to Majordomo.  There are two ways to do it:

address--    To: <listname>-request@<domain>
message--    unsubscribe

 OR

address--    To: majordomo@<domain>
message--    unsubscribe <listname>


If your list has been configured with the "subscribe_policy" parameter set to
"closed", then then you will have to approve all subscription requests.  
In this case you will receive an approval request from Majordomo every time 
somebody attempts to subscribe to your list.  But even if your 
"subscribe_policy" is configured to be "open", Majordomo may still send you 
an occasional request to approve a subscription or an unsubscription.  
This will happen in cases where the email address from which the user is
mailing the subscribe/unsubscribe request is different from the address 
which he/she is trying to subscribe or unsubscribe.

The requests for approval that you will get from Majordomo will start with
the word "APPROVE" in the "Subject:" line.  The message will contain
a template (in the form "approve PASSWORD subscribe <listname> <address>"
or "approve PASSWORD unsubscribe <listname> <address>"), of the 
approval message that you need to send back to Majordomo if you concur with 
the request.  All you will need to do (if the requests looks legitimate to you)
is to replace "PASSWORD" in the template with your list password, and send the 
template line back to Majordomo.

Of course, you can use the "approve PASSWORD subscribe..." and "approve 
PASSWORD unsubscribe..." commands at any time, not just in response to approval
 requests from Majordomo.  Thus, you can subscribe or unsubscribe people from 
your list without them having to send anything to Majordomo.  You can also do 
the same by using the MajorCool interface.



=====================
Configuring Your List
=====================


Every Majordomo list has a configuration file which controls various aspects
of the list's functioning - for example, who can post to the list, who can 
see the subscriber list, which posts should be sent to you for approval, 
when digests should be sent out, what the maximum length of a message can be,
whether there should be a "Subject" prefix that uniquely identifies posts
received from the list.

The configuration file is meant to be self-documenting.  You should examine 
the configuration file for your list, and make sure that all the parameters 
are set the way you want them.  The easiest way to examine the file and make
any changes you want is by using the MajorCool web interface.  If you wish to 
use the email interface, the way to retrieve the current configuration file 
is by using the "config" command (see below).  Then, once you have
completed all of the changes to the config file, you should use the
"newconfig" command (described below) to replace the old configuration file
with the updated one. 

                                ******
NOTE!!!  If you use the email interface to update your configuration file,
you must make sure that the software you use to make changes to the file
DOES NOT AUTOMATICALLY BREAK UP LONG LINES, and also that your mail client
does not automatically append to your messages any extraneous text (as, for
example, is the case with the free mailers at Hotmail and Yahoo).  Otherwise,
your new configuration file will be rejected.
                                ******

If you have a digest version of your list, you should also examine the
configuration file for the digest list (more on that below).


===================
Regular Expressions
===================


For some of the configuration options, such as "taboo_header" and "taboo_body",
a rudimentary knowledge of Perl-style regular expressions will help you run 
Majordomo through its tricks.  A regular expression is a concise way of 
specifying a text pattern by using a combination of special characters.  The 
full power of regular expressions can make some difficult tasks quite easy, 
but we will only brush the surface here.

The character / is used to mark the beginning and end of a regular
expression.  Within a regular expression, letters and numbers simply stand for 
themselves, but many of the other characters have special meanings.  Some 
commonly used ones are:

  .     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"
  \@    the `@', found in nearly all addresses, has a special meaning in Perl,
        and, inside a regular expression, must always be preceded by a 
        backslash to avoid errors.


Example 1.
        /cs\.umb\.edu/

Notice the periods are preceded by a backslash to make them be
literally periods.  This matches any string containing cs.umb.edu
such as:
        cs.umb.edu
        foo.cs.umb.edu
        user@foo.cs.umb.edu
        users%foo.cs.umb.edu@greatcircle.com

Example 2.
        /rouilj\@.*cs\.umb\.edu/

The `@' has special meaning in later versions of perl and must be prefixed
with a backslash to avoid errors.  The string ".*" means "any character,
zero or more times".  So this matches:
        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

Example 3.
        /^rouilj\@.*cs\.umb\.edu$/

This is similar to Example 2, and matches the same first two strings:
        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 the
letter "r" and end with letter "u" (by virtue of the ^ and $ symbols), and 
neither of those is true for arouilj@terminus.cs.umb.edu@greatcircle.com.

Example 4.
        /.*/

This is the regular expression that matches anything.

Example 5.
        /.\*rouilj/

Here the * is preceded by a \, so it refers literally to an asterisk, and not 
the symbolic meaning "zero or more times".  The . still has its symbolic 
meaning of "any one character", so the pattern would match, for example, the
strings
        a*rouilj
        s*rouilj       

but would not match 

        *rouilj

because that string does not have any character preceding the asterisks.

Example 6.

Putting the letter "i" after the pattern specification makes the matching
case-insensitive (otherwise it is case-sensitive).  For example,

       /aol\.com/i

would match aol.com, AOL.com, AoL.cOm, etc.  Without the `i':

      /aol\.com/

it would match aol.com but not AOL.com or any other capitalization.


To be on the safe side, put a \ in front of any characters in the
regular expressions that are not numbers or letters.  In order to use
a / in the actual regular expression, apply the same rule: precede it
with a \.  Thus, with \ in front of the / and = characters, this
        /\/CO\=US/

matches /CO=US and may be a useful regular expression if you need to blacklist
any X.400 addresses that contain / characters.


================================================
Majordomo Commands Available to Your Subscribers
================================================


The MajorCool interface is available exclusively to listowners, for performing
administrative tasks that require the knowledge of the list password.  If
your list subscribers need to interact with Majordomo, they have to use the
email interface - i.e., they have to send a message to the specific "Majordomo
address" for your list, and the body of the message has to
contain the command(s) that they would like executed.  A detailed explanation 
of the commands which are available to the general public can be obtained by 
sending to the Majordomo address for your list the message "help" (i.e. a 
message whose body consists of the word "help", without the quotes).  Here is 
a list of these commands (the parameters enclosed in square brackets, "[]", are
optional):

    subscribe <list> [<address>]
    unsubscribe <list> [<address>]
    who <list>
    info <list>
    intro <list>
    index <list>
    get <list>
    help
    end


=======
Digests
=======


You may have requested that your list should offer a digest option.  This 
means that a subscriber to your digest, instead of receiving each individual 
message as it is sent to the "regular" list, will instead receive the messages 
in batches.  

Majordomo implements the digest option as a separate mailing list.
The digest list for the list <listname> is called <listname>-digest.  (For
example, the digest for a list called "gardening" will be called
"gardening-digest").  Someone who wants to receive messages in batches, 
rather than individually, should subscribe to <listname>-digest instead of 
<listname>.  There is nothing to prevent a person from being subscribed to 
both lists, though it is unlikely many would want to do that.  To change 
from receiving individual messages to receiving batches of messages,
a subscriber needs to subscribe to <listname>-digest (by sending to 
majordomo@<domain> a message consisting of the command "subscribe 
<listname>-digest"), and then, after the subscription has been confirmed and 
accomplished, unsubscribe from <listname> (by sending to majordomo@<domain>
a message consisting of the command "unsubscribe <listname>").

When a message is posted to the address of the digest-list (i.e. to
<listname>-digest@<domain>), it automatically goes to the address of the
"regular" list (i.e. to <listname>@<domain>), and is handled by Majordomo in 
the same way as all messages posted directly to <listname>.  This means that
digest subscribers can reply to messages using the "Reply" function of their
mail client, just like subscribers to the "regular" list.

Remember that <listname>-digest will have its own info file and its own
configuration file, which you can change independently of the same files 
for <listname>.  The password for <listname>-digest is the same as the password 
for <listname>.

Majordomo will send a digest automatically to the subscribers of  
<listname>-digest whenever the total size of the accumulated not-yet-undigested
messages exceeds the value of the max_length parameter in the configuration 
file for 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.  If your
list doesn't have much traffic, you may want to make the max_length
parameter for the digest list appropriately smaller.

You can, at any time, tell Majordomo to make a digest (i.e. to gather together
the as-yet-undigested messages and send them out to the subscribers of
<listname>-digest).  The way to do this is either by using the MajorCool
interface, or via email, by using the "mkdigest" command (see below).

It is also possible to have digests sent out once a day, but this requires
a manual setup by Panix staff.  If the traffic on your list is very 
unpredictable and you find it impossible to find a satisfactory setting
for the max_length parameter for your digest list, please contact
mlists@panix.com and we will set up a daily job for your list that will 
automatically send out digests once a day.



=====================================
Controlling Who Can Post to Your List
=====================================


You can use certain parameters in the list configuration to control who can
post to your list.  The two parameters that are relevant here are
"restrict_post" and "moderate".  Between them, they permit basically four 
levels of post restriction:

-  Open list: All posts sent to the list address, irrespective of the
   address of the sender, are automatically distributed to the subscribers.

-  Member-restricted list: Only posts sent from addresses subscribed to either
   <listname> and <listname>-digest, and perhaps some designated additional 
   addresses, are distributed directly to the subscribers.  Posts from all 
   other addresses are bounced to the listowner for approval.

-  Moderator-restricted list: Only posts sent from certain "privileged" 
   addresses are distributed directly to the subscribers.  Posts from all 
   other addresses are bounced to the listowner for approval.

-  Moderated list: All posts are bounced to the listowner for approval.

For the first three levels (unmoderated lists with various degrees of posting
restrictions), the "moderate" parameter in the list configuration should be
set to "no".  For the last level (moderated list), the "moderate" parameter
should be set to "yes".

To configure your list as an open list, leave the "restrict_post" parameter
blank.

To configure your list as a member-restricted list, set the "restrict_post"
parameter as follows:

  restrict_post = <listname>       (if your list does not have a digest)
  restrict_post = <listname>:<listname>-digest   (if your list has a digest)

For example, if your list is called "gardening", and has a digest, 
restrict_post should be set as follows:

  restrict_post = gardening:gardening-digest

Sometimes you may want to allow some additional addresses to be able to post
to the list.  This may be the case if some of the subscribed list members
have multiple email addresses from which they occasionally post, but do not 
wish to subscribe all of those addresses to the list so as not to receive
multiple copies of the list messages.  To enable such additional addresses
to post, use the "extra" and "newextra" Majordomo commands (see below) to 
upload to the listserver a file containing these addresses, and append 
":<listname>.extra" to the value to which you have set the "restrict_post" 
parameter.  Thus, in the above example, the setting of "restrict_post" would 
be:

  restrict_post = gardening:gardening-digest:gardening.extra

and for a list "math-teachers" that does not have a digest, it would be:

  restrict_post = math-teachers:math-teachers.extra

Make sure that you create the <listname>.extra file on the listserver (using the
"newextra" command) before you add its name to the value of "restrict_post".  
If you have any trouble with this, please ask mlists@panix.com for help.

The same "restrict_post" mechanism can be used to configure a 
moderator-restricted list.  The basic principle is that the list of addresses
that are permitted to post to the list is put into a file on the listserver,
and the "restrict_post" parameter is set to be equal to the name of that file.
If you want to configure your list as moderator-restricted, you can do it in
one of two ways:

1.  Use the "extra" and "newextra" commands to upload the list of addresses
    that are permitted to post, and set "restrict_post" as follows:

      restrict_post = <listname>.extra

    or

2.  Write to mlists@panix.com and ask us to perform the setup for you.



=============================
Messages Bounced for Approval
=============================


If you run a moderated list, all messages posted to your list will be bounced
to you for approval.  But even if your list is not moderated, certain messages
may still be bounced to you.  Here are some of the possible reasons for such
bounces:

-  The list is member-restricted or moderator-restricted and the sender of
   the messages is not on the list of addresses permitted to post to the list.

-  The message appears to be an administrative request that got mistakenly
   sent to the list rather than to the Majordomo address.  This happens
   when the first 10 lines of the message contain some word that Majordomo
   judges to be an administrative command, such as "subscribe", "unsub",
   or "remove".  You can stop Majordomo from bouncing such messages by
   setting the "administrivia" parameter in the list configuration to "no".

-  The size of the message exceeds the value of the max_length parameter in 
   the list configuration.

-  The message contains a string that is listed as "taboo" in the list
   configuration.
   
                                ******
Note that these bounces are not the same as the error messages that will be 
returned to you by various mail servers when addresses on your list are 
unreachable.  Those, too, are generally referred to as bounces; but they
are error-bounces from the mail system rather than approval-bounces from
Majordomo.  Error bounces happen in the process of distributing a message to
your subscribers; approval bounces happen before the message is actually sent 
out for distribution to the subscribers, and unless you approve the given
message, no distribution will occur.
                                ******

Each approval bounce that Majordomo forwards to you will be packaged inside 
a 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 (which is
helpful if you manage more than one list) and the reason the message was 
bounced - which is usually, though not always, one of the reasons listed above.

If you decide that the message is OK and should be distributed to the list,
you will need to approve it.  There are two ways of doing so: via email,
or via the MajorCool web interface.  The first method will be explained
later in this document.  The second method is far easier and far
more reliable, and we strongly recommend it.  In order to be able to use the
second method, you should set the "bounce_action" parameter in the list
configuration either to "mail+store" or to "store".  The "mail+store" setting
will cause Majordomo to both bounce the entire message to you via email, and
put it on the Approval Queue that you can access via MajorCool.  If you use
the "store" setting, you will not receive the entire message via email, but
you will receive a notification that a new bounced message is waiting for 
your approval on the Approval Queue.



=======
Archive
=======


Archiving for your list, if you desire it, has to be set up by Panix staff.
If you have requested it at list creation, then your list is already being
archived; if you should want to add archiving at some later time, please send
a request to mlists@panix.com.

The archive contains copies of all the mail distributed to your list.  It 
consists of individual files in Unix mailbox format, each file containing one
month's worth of posts.  The files are named using the scheme <listname>.YYMM 
(e.g. gardening.0304 would be the April 2003 archive file for the list called 
"gardening").  These files originally reside on the listserver, but are 
moved once a month to either a subdirectory (mlists/<listname>.archive) of your
Panix home directory, or to some other directory which you might have specified
at the time when the list was first created.  During each move of the archive 
files, the files for the current month and for the previous month are left on 
the listserver - in other words, the file that gets moved is always the one 
from two months ago.  We do this so as to enable your subscribers to access 
the more recent archive files using the Majordomo "index" and "get" commands 
(see below) - which they can only do for files that reside on the same machine 
on which Majordomo runs.

If you want to put the archives on your web page, you may want to make use
of a mail-to-HTML conversion program such as MHonArc.  For further information
about MHonArc, see  http://www.panix.com/help/mlists/mlists.html.

While the archive files still reside on the listserver machine, your 
subscribers can use the Majordomo "index" and "get" commands to access them.
The "index" command, whose syntax is

    index <listname>

produces a Majordomo response which contains the list of archive files 
currently available.  The "get" command, whose syntax is

    get <listname> <filename>

produces a Majordomo response which contains the specified archive file.

The configuration parameters "index_access" and "get_access" allow you to
control who has access to the list's archives.  By default, access is 
restricted to members of the list; but you can, instead, allow it to be open
to everybody, or restrict it to the listowner only.


=============
Error Bounces
=============


When a list message cannot be delivered to one of the subscribers, an 
"Undeliverable message" error bounce is generated, which typically goes to the
listowner.  (In rare cases, error bounces go to the sender of the faulting
message or to the list address.)  The cause of the error may be temporary
(e.g. a temporary hardware or software failure at the recipient's ISP, or
a quota violation)  or permanent (e.g. the closing of the recipient's account).
If you get consistent error bounces from the same address over the period of 
a few days, it suggests that the failure is permanent.  In that case, it is
your obligation, as listowner, to  unsubscribe the faulting address from the 
list, since its continued presence on the list imposes an unnecessary burden 
on all the mail systems involved in the attempted deliveries of the list 
messages to the faulting address and and in the deliveries of the error bounces
to you.

Sometimes it is not obvious which address to unsubscribe, since the error
bounce may be a result of mail being forwarded between different addresses.
Usually it is possible to figure it out by a careful examination of the
contents of the bounce.  If you find that you need help tracking down any 
faulting subscribers, please write to mlists@panix.com.


==================
Attachment Removal
==================


If you do not want to allow attachments in messages distributed to your list,
we offer the option of stripping attachments from these messages before 
the messages are distributed to the list members.  The main advantage of
attachment-stripping is that it will protect your list from viruses coming
from infected computers of list-subscribers.  Also, Majordomo does not handle
attachments properly when it forms digests, and all attachments (including
HTML attachments) look like a complete mess in the digest.

We actually offer two alternative programs that perform attachment-stripping.  
One is called "demime" and the other "stripmime.pl".  They both take as input
a single email message and produce, as output, an email message that is
either identical to the input message or is a modification of the input message,
as follows:

-  If the input message is in plain text and has no attachments, it is just
   passed through with no modifications.

-  If the input message has a plain-text section followed by attachments,
   the plain-text section is passed through unchanged.  

-  If the input message does not have a plain-text section but has an HTML
   section, the HTML is transformed into plain text.

   The transformation of HTML into plain text is different depending on which
   of the two programs you use: "stripmime.pl" simply removes all HTML tags
   and keeps whatever text is left after the tags have been removed.
   "demime", on the other hand, actually attempts to interpret the HTML,
   much as a text-only browser (such as lynx) would.

-  If the input message has a base-64 attachment, "demime" attempts to 
   interpret it - i.e. translate it into plain text.  "stripmime.pl" just
   removes the attachment.

-  All other attachments are removed.


Both programs are installed on the user hosts, so if you'd like to test them 
out, feel free to do so.  "demime" has many command-line options and has an 
extensive man page.  "stripmime.pl", on the other hand, is very simple and 
does not even have a man page.  It accepts as input a mail message via STDIN, 
and outputs the stripped version of that message to STDOUT.

The advantage of "demime" is that it does more, and the output is more 
pleasing.  The advantage of "stripmime.pl", on the other hand, is its
simplicity.  It is less likely to have exotic bugs, and if you don't like 
something about it, chances are we can fix it quite easily.

If you would like to install either of those programs for your Majordomo list,
please send email to mlists@panix.com.  In this email, please tell us which 
of the two programs you would like to use for your list.  Note that this is 
not something you can install yourself, since it requires a modification to 
the aliases file on the listserver.


==============
Spam Filtering
==============


If you are running a list on which posting is restricted to members or to some
other set of specific addresses, then all spam messages will be bounced to you 
for approval, since they will come from addresses outside your restricted set.
However, if for some reason you need to run an open list, or if the number
of spam bounces you are receiving is intolerable, we can install spam filtering
for your list.  The filter will use SpamAssassin to get rid of most spam
before the messages are processed by Majordomo.  If you have a need for this
feature, please contact mlists@panix.com and we will install it for you.


=================================
Administrative Majordomo Commands
=================================


Below is a list of list-administration commands that Majordomo accepts via
its email interface.  Most of the effects achieved by using these commands 
can be achieved, instead, by using the MajorCool web interface at
http://lists.panix.com.  All of them require the list password.  

        			******
NOTE.  In the syntax-templates below, the angle brackets "<>" are used to distinguish 
between the variable elements of each command (such as the list name, the 
password, the address being subscribed, etc.) and the invariant elements such 
as the name of the command.  Please do not use the angle brackets in the 
commands you actually send to majordomo.

        			******

NOTE.  When you use the email interface to Majordomo, make sure that you are
sending your commands using a mail client that does not append to your message
any advertising or any other extraneous information (as, for example, hotmail
and yahoo do).  Otherwise, Majordomo may not be able to interpret you message
correctly, and the results may not be what you intended.
        			******

The administrative commands for use by list owners are:

    approve <passwd> subscribe <listname> <address>
        This command can be used to perform subscriptions.  Note that this is 
        just a standard "subscribe" command prefixed with "approve <password>".
        If the address you want to subscribe is your own (i.e. is the address 
        that will appear in the "From:" header of your mail to majordomo), you 
        can omit the <address> parameter.

    approve <passwd> unsubscribe <listname> <address>
        This command can be used to perform unsubscriptions.  Note that this 
        is just a standard "unsubscribe" command prefixed with 
        "approve <password>".  If the address you want to unsubscribe is your 
        own (i.e. is the address that will appear in the "From:" header of 
        your mail to majordomo), you can omit the <address> parameter.

   approve <passwd> who <listname>
        This allows you to get the current list of subscribers irrespective of
        the setting of the "who_access" parameter in the list configuration.
        If the parameter is set to "closed", the non-passworded version of the
        "who" command will not work.

   approve <passwd> index <listname>
        This allows you to get the list of files in the list's archive 
        irrespective of the setting of the "index_access" parameter in the list 
        configuration.  If the parameter is set to "closed", the 
        non-passworded version of the "index" command will not work.

   approve <passwd> get <listname> <file>
        This allows you to get the specified file from the list's archive 
        irrespective of the setting of the "get_access" parameter in the list 
        configuration.  If the parameter is set to "closed", the 
        non-passworded version of the "get" command will not work.

    passwd <listname> <old_passwd> <new_passwd>
        This allows you to change the password for your list.

    find <string> <listname> <passwd>
        This command is available only at Panix.  It finds all the addresses 
        containing the string <string> that are subscribed to the list 
        <listname>  It may help you, for example, to find the exact address 
        under which someone is subbed, if they have difficulties unsubbing 
        (because they are trying to do so from a slightly different address).  
        This command is a Panix replacement for the standard Majordomo "which" 
        command, which is expensive, wasteful, and bad for security.

    massunsubscribe <listname> <passwd> 
        This command is available only at Panix.  It should be used for
        unsubscribing multiple addresses from the specified list.
        The addresses to be unsubbed should be specified, one address per 
        line, underneath the line containing the "massunsubscribe" command 
        itself.  It is good to use this command, instead of multiple 
        "unsubscribe" commands, whenever you have more than one address 
        that you want to unsubscribe from the same list - it is less 
        resource-consuming and much less error-prone.

    newintro <listname> <password>
        This command permits you to install or replace the list-specific
        information that people get when they subscribe to your list or
        when they send to Majordomo an "intro <listname>" command.  Majordomo 
        reads everything after the "newintro" command (which needs to be on a 
        line by itself) to the end of the message, or to the word "EOF" on a 
        line by itself, as the new desired contents of the intro file for the 
        list.

    newinfo <listname> <password>
        This command permits you to install or replace the list-specific
        information that people get when they send to Majordomo an 
        "info <listname>" command (or when they subscribe to your list and there
        is no "intro" file for your list). Majordomo reads everything after
        the "newinfo" command (which needs to be on a line by itself) to the 
        end of the message, or to the word "EOF" on a line by itself, as the 
        new desired contents of the info file for the list. 

    config <listname> <password>
        Retrieves the configuration file for your list.  The file is 
        self-documenting.

    newconfig <listname> <password>
        Validates and installs a new configuration file.  Majordomo reads
        everything after the "newconfig" command (which needs to be on a line 
        by itself) to the end of the message, or to the word "EOF" on a line 
        by itself, as the new configuration for the list.  The input that
        you send is expected to be a complete and valid configuration file, 
        replacing the file that was previously  returned by "config".  
        Make sure that whatever program you use to make your changes to the
        configuration file does not do automatic line-wrapping.  If the lines
        get broken up, the result will no longer be a valid configuration file.
        As soon as the new configuration file is validated and installed, its 
        settings are available for use.  If there is an error in the
        config file you send, the config file will not be accepted, and 
        Majordomo will send you an error message identifying the problem 
        line(s).  Note that only the error lines, and not the entire config 
        file, will be returned to you, so it is a good idea to keep a copy of 
        your outgoing "newconfig" email message until your new file has been 
        accepted and installed.

    writeconfig <listname> <password> 
        Writes a new config file in standard form.  Every Panix-hosted
        list gets a config file when it is created.  When Majordomo is 
        upgraded, the upgrade may permit additional config parameters not 
        supported in the previous version.  However, the existing config files 
        do not get automatically replaced with new ones that contain these new 
        parameters.  Running the "writeconfig" command will cause an upgrade 
        to the config file so as to synchronize it with the current version
        of majordomo.  The old file will be replaced by a new file that 
        preserves all the settings of the old parameters and adds the new ones 
        using the standard default values for them.  The documentation inside 
        the file will also be preserved or updated as appropriate.  

        If for any reason the list does not currently have a config
        file, the "writeconfig" command creates a new config file
        using the standard Majordomo defaults.

    extra <listname> <password>
        Retrieves the file "<listname>.extra" of extra addresses (besides the
        addresses of your subscribers) who can post to your list if the
        "restrict_post" parameter in your list configuration includes
        "<listname>.extra".

    newextra <listname> <password>
        This command permits you to install or replace the file 
        "<listname>.extra" of additional addresses (other than the addresses of
        your subscribers) that are permitted to post to your list if the
        "restrict_post" parameter in your list configuration includes
        "<listname>.extra".  Majordomo reads everything after the "newextra" 
        command (which needs to be on a line by itself) to the end of the 
        message, or to the word "EOF" on a line by itself, as the new desired 
        contents of the "extra" file for the list.  Please make sure that you 
        create the "extra" file (using this command) before you add 
        "<listname>.extra" to the value of "restrict_post".

    newwho <listname> <password>
        This command replaces the current subscription list with a new
        subscription list that you provide, without triggering the sending
        of the "Welcome" message to any of the subscribers.  The "newwho"
        command should be in the first line of the message, followed by a list
        of the addresses (one address per line) that you would like in the new 
        subscription file.  Note that the "newwho" command does not _add_ 
        addresses - the entire subscription list will get _replaced_ by the new
        list you provide.  Probably the only time you will want to use it is 
        right after your list is first established at Panix, if you already 
        have a pre-existing set of subscribers that you would like installed.

        NOTE.  Please make sure that the list you give to majordomo is in 
        text-only format and does not use any special control characters.  
        If you use a word-processor to edit the list, make sure that the final
        output that you send to Majordomo has been converted to text-only 
        format.  Otherwise, a lot of the addresses will contain extraneous
        characters that will make them invalid.  If you do not have the
        ability to create a text-only address list, please ask the Panix staff
        (at mlists@panix.com) to help you with installing the list, and do not
        use the "newwho" command.

    mkdigest <listname>-digest  <password>
        Generates a digest immediately, without waiting to reach the
        maxlength given in the config file.   The digest is generated from
        whatever messages were accumulated since the last digest was sent out,
        and gets sent to the subscribers of the list <listname>-digest.



====================================
Approving Bounced Messages via Email
====================================


By far the easiest and most foolproof way of approving a message that was 
bounced by Majordomo is to use the "Approval Queue" interface in MajorCool.
For completeness of this document, however, we also include an explanation of
how to approve bounced messages via email.  

To approve a message via email, follow these directions _exactly_:

    1)  Save the original message (the body of the message you received
        from Majordomo) in a file.  The portion you need will consist of
        the headers of the original message, followed by a single blank
        line, followed by the text of the original message.  You do not
        need to include any of the headers of the Majordomo message which 
        contained the original message.  Here's a quick example:

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 of the full message you received from Majordomo.

    2)  Edit the file to insert a line that says "Approved: password" (where
        "password" is the password for your list) at the top, before the
        original message, with absolutely no intervening space.  Note the
        capitalization of the word "Approved", the colon after it, and the 
        space after the colon:

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!

    3)  Send this edited file back to the posting address for your list (NOT
        to Majordomo).  You should make sure that your mailer doesn't try
        to do anything like include your prepared mail as an attachment,
        encode it somehow, indent every line, or add anything extra to the
        beginning or end of the message.  There are mailers that will do
        pretty horrible things to messages before they are sent; you should
        take care that you aren't using one - or, if you are, that you have it
        configured to pass your text on unadulterated.

This time around, Majordomo will notice the "Approved:" line and check it
against your list password.  If it matches, Majordomo will strip off the
header of your message and the "Approved:" line (leaving just the original
message), and send the original message on through.

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 in one of
two ways:

If you're using a mailer that can add additional headers, add one like the
following:

Approved: sekrit

Its precise location within the headers is not important.

If your mailer does not allow you to add additional headers, you can add
the line:

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.