ezmlm-manage(1) automatically manage a mailing list

SYNOPSIS

ezmlm-manage [-bBcCdDeEfFlLmMsSqQuUvV] dir

DESCRIPTION

ezmlm-manage handles administrative requests for the mailing list stored in dir, as well as for the associated digest list.

ezmlm-manage is normally invoked from a .qmail file. It reads a mail message from its standard input, and a mail envelope from the SENDER, LOCAL, DEFAULT, and HOST environment variables.

ezmlm-manage expects DEFAULT to be of the form action-box=domain. Here action is a request, and box@domain is the target of the request. ezmlm-manage sends a response to the target. It attaches the original message to the end of its response.

DEFAULT may instead be of the (simple) form action. Then the envelope sender is used as the target.

If action starts with ``digest'', the request is assumed to be for the associated digest list. ezmlm-manage handles these requests similarly, except that digest list subscriber addresses are stored in dir/digest/subscribers, rather than in dir/subscribers.

If action starts with ``allow'', the request is assumed to be for the associated dir/allow/ database. This database is used to store aliases of subscribers for lists allowing only posts only if the envelope sender is a subscriber. Actions on the dir/allow/ database follow the same rules as for the main list. The ezmlm messages are the same as those used for normal subscription, but refer to the list-allow@host list. As this feature is designed for advanced uses and remote administrators only, this is not a problem. NOTE: No message is sent out to confirm additions to or removals from this database. However, the user can verify the change using the query action. If action starts with ``deny'', the command is applied simiparly to the dir/deny/ database for blocking posts with certain envelope senders. This database is available to remote administrators only, and only if the list has been set up with this feature (see ezmlm-manage(1)). NOTE: No message is sent out to confirm additions to or removals from this database. However, the remote admin can verify the change using the query action.

ezmlm-manage copies the TXT_MAILING_LIST message into a Mailing-List field in its response. If the incoming message has a Mailing-List field, ezmlm-manage refuses to respond. ezmlm-manage also refuses to respond to bounce messages.

ezmlm-manage reads dir/copylines to determine how many lines of the original message to copy into the outgoing message. If this file is empty or not present, a value of 0 is presumed, meaning that only the header is copied.

If dir/qmqpservers exists, ezmlm-manage will use qmail-qmqp(1) to send messages.

OPTIONS

-b
(Default.) ezmlm-manage will add general instructions and the request to the outgoing message. This is the default unless the dir/omitbottom file exists.
-B
ezmlm-manage will not add general instructions and the request to the outgoing message. This information gives the recipient of a confirmation request some information about the inciting message. Use of this switch will deny the recipient that information.
-c
(Default.) ezmlm-manage will reply to -get commands.
-C
ezmlm-manage will not reply to -get commands. This is useful for closed lists, where the owner for some reason wants to keep an archive, without making it available.
-d
Alias for the -e switch for backwards compatibility.
-D
Alias for the -E switch for backwards compatibility.
-e
ezmlm-manage allows remote administrators to edit files in dir/text/ via E-mail.
-E
(Default.) Text file editing not allowed. This is the default unless the dir/modcanedit file exists.
-f
(Default.) The information in the ``From:'' is extracted from subscribe confirm messages and added to dir/Log together with the subscriber address. This makes it easier for the list owner to help a subscriber who cannot determine his/her subscription address. If the -S switch is used, the information is instead extracted from the subscribe request.
-F
Ignore ``From:'' headers.
-l
ezmlm-manage will send a subscriber list in reply to the -list command and the number of subscribers in reply to the -listn comman if dir/modsub or dir/remote exist and target (the address the reply is to be sent to) is a moderator.
-L
(Default.) ezmlm-manage will ignore the -list and -listn commands. This is the default unless the dir/modcanlist file exists.
-m
For lists with moderated subscription, require moderator approval also for unsubscribe requests. Remote admins are normally informed about unsuccessful unsubscribes. This creates problems when there is more than one moderator. Therefore, when the -m switch is used, the notification is suppressed. Moderators can still determine the result by using the -query command.
-M
(Default.) Requests to unsubscribe from moderated lists do not require moderator approval.
-n
(Default.) Target addresses will be notified if the are added or removed from the subscriber list.
-N
Target addresses will not be notified if they are added/removed from the subscriber list by remote admin or moderator action. Also, the target will not be notified if they were successfully added/removed when the -S and -U switches, respectively, are used.
-q
(Default.) Quiet. The list-owner is not notified of subscription events.
-Q
The list-owner is notified about failed unsubscribe attempts. Usually, these are from subscribers that do not remember their subscription address and require administrative assistance. Remote admins are notified when a unsubscribe request initiated by them fails. Thus, the owner is not notified about these events even if the -Q switch is used.
-QQ
As for -Q, and in addition, the list-owner is notified about all additions to or removals from the subscriber database. This is sometimes desired by owners of small lists.
-s
(Default.) ezmlm-manage will handle subscriptions with the normal target handshake. This is the default unless the dir/nosubconfirm file exists.
-S
ezmlm-manage will eliminate the target handshake from the subscription process. This allows anyone to subscribe anybody else. DO NOT use this option, unless you know what you are doing. This option may be useful for some moderated lists.
-u
(Default.) ezmlm-manage will handle unsubscribe requests with the normal target handshake. This is the default unless the dir/nounsubconfirm file exists.
-U
ezmlm-manage will eliminate the target handshake from the unsubscription process. This allows anyone to unsubscribe anybody else. DO NOT use this option, unless you know what you are doing.
-v
Display ezmlm-manage version information.
-V
Display ezmlm-manage version information.

CHARACTER SETS

If dir/charset exists, ezmlm-manage will use the character set listed for all messages. Otherwise, the default ``us-ascii'' will be used. The character set can be suffixed by ``:'' followed by a code. If the code is ``Q'', outgoing messages are sent as ``Quoted-Printable'', if it is ``B'' they are sent ``base64'' encoded. Otherwise, text is sent as is.

Incoming text for the -edit is accepted unencoded or in either of these encodings.

SUBSCRIPTIONS

If action is sc.cookie, where cookie is an appropriate code (depending on the target, the approximate time, and other factors), ezmlm-manage adds the target to the mailing list if subscriptions are not moderated. For subscription moderated lists, ezmlm-manage sends a confirmation request to the moderators with the right tc.cookie address in its response.
  If action is rc.cookie or tc.cookie, where cookie is an appropriate code (depending on the target, the approximate time, and other factors), ezmlm-manage adds the target to the mailing list. If the target was not already a subscriber, a welcome message is sent to the target.

If action is subscribe, ezmlm-manage does not subscribe the target, but it identifies the right sc.cookie address in its response.

This confirmation mechanism (1) verifies that the target is reachable and (2) protects the target against forged subscription requests.

Actions of uc.cookie and unsubscribe are used in the same way to delete the target from the mailing list. Unsubscribes do not require moderator confirmation unless the -m option is given. Actions of vc.cookie are used for moderator confirmation of unsubscribes.

Actions of rc.cookie are used to confirm moderator-iniated subscribes for lists configured with remote administration (see MODERATION).

Actions of wc.cookie are used to confirm moderator-initiated unsubscribes for lists configured with remote administration (see MODERATION).

If action is query, ezmlm-manage returns a message to the target indicating whether or not the target address is a subscriber.

If action is info or faq, ezmlm-manage returns the contents of dir/text/info or dir/text/faq, respectively.

If dir/public does not exist, ezmlm-manage rejects all subscription and unsubscription attempts. However, if the list is configured with remote administration, moderator-initiated subscribe and unsubscribe requests will still be honored. Also, if action is help, ezmlm-manage will still send help.

TEXT FILE EDITING

If action is edit, either the -e switch is used or the dir/modcanedit file exists, and the target address is that of a remote administrator, ezmlm-manage will reply with a list of editable file in dir/text/ and instructions for editing. Cookies for editing expire approximately 27.8 hours after they are issued, or when a file has been changed, whichever is sooner. The size of the updated file is limited to 5120 bytes.

If action is edit.file, the -e switch is used, and the target address is that of a remote administrator, ezmlm-manage will return an editable copy of file.

If action is ed.cookie, ezmlm-manage will verify that the edit cookie is still valid and that the file has not been modified since the cookie was issued. If the cookie passes these tests, ezmlm-manage will update dir/text/file.

ARCHIVE RETRIEVALS

If action is get.num, ezmlm-manage sends back message num from dir/archive/. This can be disabled with the -C command line switch.

If dir/public does not exist, ezmlm-manage rejects all archive retrieval attempts.

MODERATION

If dir/modsub exists, subscriptions are moderated. Users can unsubscribe without moderator action, but moderator confirmation is required for subscriptions.

If dir/modsub is not empty, it is assumed that the content this is the base directory for the moderator database ( moddir). Otherwise, moddir is assumed to be dir/mod/. The given path must either be within dir or a relative directory name.

The moderator names are assumed to be stored in a set of files in moddir/subscribers/.

To add, remove, and list moderators, use respectively:

ezmlm-sub moddir user@host

ezmlm-unsub moddir user@host

ezmlm-list moddir

Subscription requests from potential subscribers will be sent for a second round of confirmation to all the moderators. If a moderator approves the request, a message confirming the subscription will be sent to the subscriber. The subscriber will not know which moderator approved the subscription.

If more than one moderator replies to the confirmation request, the subscriber will not receive duplicate messages about being on (or not on) the mailing list.

Unsubscribe requests from users are handled as for non-moderated lists.

All subscribe confirmation requests requiring moderator action have a subject of CONFIRM subscribe to listname@host. All unsubscribe confirmation requests in reply to moderator-initiated unsubscribe dialogs have a subject of CONFIRM unsubscribe from listname@host.

If dir/remote exists (remote administration), moderators can initiate a request to subscribe a user 'username@userhost' by sending mail to listname-subscribe-username=userhost@host. The moderator (not the subscriber) will receive the confirmation request, and can complete the transaction. Moderators' request to unsubscribe users are handled analogously. Once an address is successfully added to or removed from the subscriber database by a moderator or remote admin, the user is notified of the action. If a moderator or remote admin's subscribe confirmation does not result in a change, i.e. if the address already was a subscriber, no notification is sent. If a remote admin's unsubscribe confirmation does not result in a change, i.e. the address was not a subscriber, a notification is sent to the remote admin. This is to make the remote admin aware that the address unsubscribed most likely is not the subscriber's subscription address.

dir/remote is not empty, it is assumed that the content this is the base directory for the moderator database ( moddir). The moderator names are assumed to be stored in a set of files in moddir/subscribers/. The given path must either be within dir or a relative directory name. If both dir/modsub and dir/remote exist, and both contain directory names, the directory name in dir/modsub is used, and the dir/remote entry is ignored.

It is possible to set up a mailinglist for moderators only by using dir/mod/ as the list directory. Make sure that such a list is not public! Otherwise, anyone can become a moderator by subscribing to this list.

If action is -help and target is a moderator, ezmlm-manage will in addition to the usual help send dir/text/mod-help containing instructions for moderators.

If action is -list and target is a moderator, the list is set up for subscription moderation or remote administration, and the -l command line switch is used or the dir/modcanlist file exists, ezmlm-manage will reply with an unsorted subscriber list. Extensions for digest subscribers and auxillary databases are supported (see above).

If action is -log, ezmlm-manage will reply with the contents of the Log file with the same access restrictions as for the -list action.