DragonFly On-Line Manual Pages
ezmlm-request(1) DragonFly General Commands Manual ezmlm-request(1)
NAME
ezmlm-request - Process subject line and body ezmlm commands
SYNOPSIS
ezmlm-request [ -f config ] dir
DESCRIPTION
ezmlm-request processes ezmlm commands in the subject line or message
body. ezmlm-request enables these uses to send the message to
list-request@host with the complete command address line in the subject
field, or with commands and arguments separated by white space.
ezmlm-request uses the text to construct a ezmlm command message to the
list. If the subject does not start with a letter, ezmlm-request
instead uses the first body line that starts with a letter. Processing
terminates if a line with a hyphen in the first position is
encountered.
All commands are expected to be in ezmlm command address format or
formatted as:
command [list@listhost [user@userhost]]
ezmlm-request when invoked with the -f switch and a configuration file
(see below), ignores the subject and processes the first body line (per
rules above) in conjunction with the configuration file. It also
services the lists and which commands. This can be used to construct a
global list interface, similar to that used by some other mailing list
managers.
Messages at the list-request@host are restricted to the local list.
When ezmlm-request is invoked with the -f config switch, command
messages are limited to lists in config or at the local host.
Invalid requests for an existing ezmlm list will lead to a ``help''
message from ezmlm-manage(1).
ezmlm-request 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-request will use qmail-qmqp(1) to send
messages.
OPTIONS
-f config
Function as a global interface to ezmlm lists in accordance with
config. This file consists of lines starting in the first
position with ``list@host:listdir:description''. Lines that are
blank or start
with ``#'' are ignored. ``listdir'' and ``description'' are
optional. If only ``list@host'' is given, the list is used to
restrict commands (see below), but not listed. To allow the list
to be shown by a ``list'' command, use ``list@host:''. To
specify only the list name and description, use
``list@host::description''. If ``listdir'' is present, the
which command attempts to determine if the user is a subscriber
of the list. NOTE: this will work only if the user running
ezmlm-request has read access to the lists subscriber database.
If ``listhost'' is not specified, ezmlm-request will use the
``listhost'' from the first config entry matching ``listlocal''.
If ``listhost'' is specified, but not found in config, it is set
to the contents of dir/outhost.
USAGE
Place an invocation of ezmlm-request in dir/manager anywhere before the
ezmlm-manage(1) line.
Alternatively, set up dir/request with an invocation of ezmlm-request.
Make a link from ~/.qmail-list-request to this file.
For the global interface, place /path/ezmlm-request -f config dir into
a file. Link ~/.qmail-ezmlm and ~/.qmail-ezmlm-default to this file.
The latter allows ezmlm-request to handle its own bounces as well as to
reply to messages to e.g. ``user-ezmlm-lists@listhost''. Create
dir/outlocal with ``user-ezmlm'', dir/outhost with ``listhost'',
dir/headerkeep with headers to keep or dir/headerremove with headers to
be stripped (copy from a list), dir/text/help, dir/text/top, and
dir/text/bottom with the appropriate texts. Also, create config with
the appropriate contents.
Mail to ``user-ezmlm@listhost'' will now be answered by ezmlm-request.
RECOGNIZED COMMANDS
Any command not recognized by ezmlm-request is assumed to be valid, as
long as it consists of only letters, numbers, hyphen, underscore,
period, and ``+''. This allows ezmlm-request to correctly handle
commands added by the list owner.
A number of commands are recognized by ezmlm-request but not processed.
Instead they are mapped to help without arguments. These are: system,
put, and set.
ezmlm-request also handles a number of aliases for ezmlm commands.
Since ezmlm-request only passes on requests to the list, local
restrictions apply. For commands that have aliases, accepted aliases
are listed:
subscribe
sub
unsubscribe
unsub, signoff, remove.
index ind.
list recipients, showdist, review, rev, who.
Some commands are handled differently when used without arguments:
query Treated like ``which''.
list Treated like ``lists''.
BUGS
ezmlm-request places stricter requirements on addresses than rfc822.
Thus, some addresses that are rfc822-compliant cannot be used as
ezmlm-request command arguments. If you fix this, please send a patch
to bruce@untroubled.org. I think qmail has the same restriction,
though.
ezmlm-request uses NUL as a line terminator internally. Thus, if will
fail if NUL is found within the line it tries to interpret as a
command. It is harmless, other than that the remainder of the line will
be ignored.
The ezmlm-request ``which'' command does not differentiate between a
list for which the command is not available, a list for which the
subscriber db is not accessible, and a list for which the address is
not a subscriber. This should be considered a feature.
BUGS
ezmlm-request when used as a global interface and receiving multipart
messages assumes that the first line of the fist part is the command.
Further, it assumes that the first line starting``--'' is the first
MIME boundary. This is virtually always true, but it is easy to
construct legal messages that do not fit these assumptions.
ezmlm-request in the global interface role will fail if this first part
or the entire message is base64 encoded.
SEE ALSO
ezmlm-get(1), ezmlm-manage(1), ezmlm-send(1), ezmlm(5)
ezmlm-request(1)