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.
Incoming text for the -edit is accepted unencoded or in either of these encodings.
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.
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.
If dir/public does not exist, ezmlm-manage rejects all archive retrieval attempts.
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.