NAME
ezmlm-make - create a new mailing list
SYNOPSIS
ezmlm-make [ -+ ][
-a..zABD..Z ][ -C03..9 arg ] dir [ dot
local host [digestcode] ]
DESCRIPTION
ezmlm-make sets up a new mailing list,
local@host, along with several extra addresses
to handle administrative requests.
All mailing list information is stored in a new directory,
dir. dir must be an absolute pathname, starting with
a slash. dot must be an absolute file name starting with a
slash. Arguments other than dir may be omitted when editing
an existing list, using the -e or -+ options (see
below).
ezmlm-make is controlled by a template, .ezmlmrc.
Described here is the behavior with the default template file.
ezmlm-make will print a warning message before continuing,
if the ezmlmrc version does not match the ezmlm-make
version.
ezmlm-make also creates dir/config, where
it stores all configuration information. By reading this file, you
can rapidly get information about how the list is set up.
ezmlm-make when used with the -e switch will read
information from this file. Thus, when using ezmlm-make
-e, you only need to specify the desired switches and switch
arguments and dir. With the -+ switch all switches
become sticky, i.e. the default for all switches (and command line
arguments) becomes the switches and arguments active for the list
to be edited. Note that the choice of config file also is sticky,
except when running ezmlm-make as root.
ezmlm-make sets up four .qmail files: dot,
dot-owner, dot-return-default, and
dot-default. You should make sure that messages to
local@host,
local-owner@host, etc. are controlled by these
.qmail files.
For message moderated lists, ezmlm-make sets up two
additional .qmail files: dot-accept-default
and dot-reject-default.
For digested lists, ezmlm-make sets up another two
.qmail file: dot-digest-return-default and
dot-digest-owner.
If digestcode is specified, digest creation by
ezmlm-get(1)
via trigger messages to the
local/@host-dig.digestcode
address is enabled.
By default, ezmlm-make sets up lists to add a
``X-No-Archive: yes'' header to outgoing messages. Public archiving
servers will interpret this header as a request not to archive
messages from the list. It this in not what you desire, remove this
header from ezmlmrc for global effects, or from
dir/headeradd for the specific list.
Typical use of ezmlm-make by a normal user:
ezmlm-make ~joe/SOS ~joe/.qmail-sos joe-sos isp.net
Typical use of ezmlm-make by alias:
ezmlm-make ~alias/SOS ~alias/.qmail-sos sos isp.net
chown -R alias ~alias/SOS
Typical use of ezmlm-make by a normal user enabling
automatic digests:
ezmlm-make -d ~joe/SOS ~joe/.qmail-sos joe-sos isp.net
Typical use of ezmlm-make to change an existing list in
~joe/SOS to a message moderated list with remote administration,
and enabling the remote administrator(s) to retrieve a subscriber
list and to edit dir/text files (digest are still
enabled):
ezmlm-make -emrldn ~joe/SOS
Mail can arrive at any time! For safe editing, turn on the
sticky bit of the home directory before editing the list setup,
then turn it off again (see ).
Moderator addresses are added with
ezmlm-sub ~joe/SOS/mod mod1@host1 mod2@host2 ...
ezmlm-make also creates the necessary text files in
dir/text/.
ezmlm-make has a large number of switches to control all
aspects of list generation. Only defaults or a small subset of
switches are necessary for most list setups. Other options are
present primarily to allow a external CGI script or other graphical
user interface to use ezmlm-make to manipulate ezmlm list
setups.
VIRTUAL DOMAINS
For virtual domains, qmail(5)
prefixes the name of the controlling user to the LOCAL part of the
recipient address.
needs to be informed of this in order to correctly interpret list
commands. This is done by adjusting dir/inlocal. This
adaptation is necessary only when ezmlm is used with qmail version
1.01 or earlier.
To create the list ``tl@virtual.dom'' where ``virtual.dom''
is controlled by ``vu'' (virtual.dom:vu), change identity to ``vu''
or chown files to that user after:
ezmlm-make
~vu/dir ~vu/.qmail-tl tl virtual.dom
echo "vu-tl"
> ~vu/inlocal
Thus, create the list exactly as for a list under ``alias'', but
adjust dir/inlocal to the list local name prefixed
with the controlling user name.
OPTIONS
All ezmlm-make letter switches except
-v and -V are available for interpretation via
ezmlmrc. Switches -e, -E, -c, and
-C have special meaning within the program. ezmlmrc
customization should respect the function of the switches described
here.
- -+
- Switches currently active for the list will be used, as
modified by the current command line. Thus, -+ makes
switches ``sticky''. By default, only switches specified on the
current command line will be used. This switch implies -e as
it is meaningless except in edit mode. Note that the config file
choice (see -c and -C) is also sticky.
is set up so that most text files (and DIR/headeradd,
DIR/headerremove) are not overwritten if they already
exist so as to preserve manual customizations. If local is
specified ezmlm-make overrides this behavior and all files
are rewritten. You can also force ezmlm-make to rewrite all
files by using -++.
- -a
- (Default.) Archived and configured with ezmlm-get(1)
for archive access. ezmlm-make will touch
dir/archived and dir/indexed so that
ezmlm-send(1)
will archive new messages.
- -A
- Not archived.
- -b
- Block archive. Only moderators are allowed to access the
archive.
- -B
- (Default.) Archive access is open to anyone or subscribers
only, depending on the -g switch.
- -c
- Config. Use .ezmlmrc (see CONFIGURATION) from the
directory where dot resides. ezmlm-make otherwise
uses the system wide ezmlmrc file (normally /etc/ezmlmrc and if not
found there, the ezmlmrc file in the ezmlm binary directory). The
-c switch may cause you to execute ezmlm-make based
on a configuration file controlled by another user.
ezmlm-make does not allow periods in any tag to restrict all
actions to within dir. Be careful with this option setting
up lists for other users, especially when running ezmlm-make
as root.
- -C arg
- Like -c, but use file arg as the ezmlmrc file.
Use -C '' to override a default when using -+
or -e.
- -d
- Digest. ezmlm-make will set up the
local-digest@host
digest list to disseminate digest of the list messages. By default,
this is done when 30 messages, 48 hours, or 64 kbytes of message
body text have accumulated since the last digest. Use the -4
switch to override these defaults. See ezmlm-tstdig(1)
and ezmlm-get(1)
for more info.
- -D
- (Default.) No digest. Do not set up the digest list.
- -e
- Edit. ezmlm-make will remove links before creating them
and accept if directories to be created are already present. will
also (via entries in ezmlmrc) remove flags that are present
but not desired for the current list. Thus, this option can be used
to reconfigure existing lists without affecting moderator and
subscriber lists or message archive. All desired ezmlm-make
switches need to be specified. To make all switches sticky, i.e.
only specify the ones changed from the previous setup, use
-+. Command line arguments other than dir can be
omitted. In the unlikely case where dot is changed, you must
manually remove the old links. Mail can arrive at any time! For
safe editing, turn on the sticky bit of the home directory before
using the edit function, then turn it off again (see ).
is set up so that most text files (and DIR/headeradd,
DIR/headerremove) are not overwritten if they already
exist so as to preserve manual customizations. If local is
specified ezmlm-make overrides this behavior and all files
are rewritten. You can also force ezmlm-make to rewrite all
files by using -ee.
- -E
- (Default.) No edit. ezmlm-make will abort if directories
or links to be created already exist. This prevents accidental
reconfiguration of a pre-existing list, since the first action is
to create the list directory.
- -f
- Prefix. ezmlm-make will set up the list so that the
outgoing subject will be prefixed with the list name.
- -F
- (Default.) No prefix.
- -g
- Guard archive. Archive access requests from unrecognized
SENDERs will be rejected. This restriction is safe, since replies
are sent to the SENDER address.
- -G
- (Default.) Do not guard archive. Archive access request from
any SENDER will be serviced.
- -h
- Help subscription. Subscriptions do not require confirmation.
Strongly recommended against, since anyone can subscribe any
address, but may be useful for some subscription moderated lists.
- -H
- (Default.) Subscription requires confirmation by reply to a
message sent to the subscription address.
- -i
- Indexed for WWW archive access. ezmlm-make will create
the list so that ezmlm-archive(1)
is invoked to maintain an index suitable for use by ezmlm-cgi(1).
- -I
- (Default.) The list is created without ezmlm-archive(1).
- -j
- Jump off. Unsubscribe does not require confirmation. Strongly
recommended against, since anyone can unsubscribe any address, but
may be useful in some situations.
- -J
- (Default.) Unsubscribe requires confirmation by a reply to a
message sent to the subscription address.
- -k
- kill. ezmlm-make sets up dir/deny/. It
sets up the list so that posts from addresses in
dir/deny/ are rejected. This is useful in combination
with the -u switch to temporarily restrain offenders, such
as misconfigured auto-responders or automatic spammers. It can also
be used in combination with -m to filter out SENDERs from
whom the moderators do not want to see posts (again, bad re-mailers
and spammers come to mind).
To add/remove blacklisted addresses:
ezmlm-sub dir/deny bad@host
ezmlm-unsub dir/deny bad@host
- -K
- (Default.) Not kill. dir/deny/ is not created,
and even if it exists, the contents will be ignored.
- -l
- List subscribers. ezmlm-make sets up the list so that
remote administrators can request a subscriber list, and search the
subscriber log.
- -L
- (Default.) The subscriber list cannot be obtained.
- -m
- Message moderation. (Please note that the -u switch
modifies the action of this switch.) ezmlm-make will
touch dir/modpost and create dir/mod/
and dir/mod/subscribers/, where the moderator
addresses are stored. ezmlm-make also creates
dir/mod/pending/, dir/mod/accepted/,
and dir/mod/rejected/. These directories are used to
queue messages awaiting moderation. dir/editor will
be set up to run ezmlm-store(1)
to store incoming messages in the moderation queue and send
moderation requests to the moderators. dir/moderator
will be set up to run ezmlm-moderate to process moderator
accept or reject requests.
To add/remove moderators:
ezmlm-sub dir/mod moderator@host
ezmlm-unsub dir/mod moderator@host
- -M
- (Default.) Message posting is not moderated.
- -n
- New text file. ezmlm-make sets up the list to allow
remote administrators to edit files in dir/text/.
- -N
- (Default.) Not new text file. Text file editing not allowed.
- -o
- Others rejected. Posts from addresses other than moderators are
rejected. This is applicable to message moderated lists only (see
-m). The switch has no effect on other lists.
- -O
- (Default.) Others not rejected. For moderated lists, all posts
are forwarded to the moderators. The switch has effects only on
message moderated lists.
- -p
- (Default.) Public. ezmlm-make will touch
dir/public, so that ezmlm-manage(1)
will respond to administrative requests and ezmlm-get will
allow archive retrieval.
- -P
- Private. ezmlm-manage(1)
and ezmlm-get(1)
will allow only digest creation, remote administration, and archive
retrieval by remote administrators, (if the list is configured with
these options).
- -q
- ReQuest address is serviced. ezmlm-make will configure
the list to process commands sent in the subject to
local-request@host. This is done by adding a
ezmlm-request(1)
line to dir/manager.
- -Q
- (Default.) Do not process messages sent to the ``request''
address.
- -r
- Remote admin. ezmlm-make enables remote administration
by touching dir/remote. Moderator(s) can unsubscribe
and subscribe any address. See the -m option on how
moderator addresses are stored and manipulated.
- -R
- (Default.) No remote administration.
- -s
- Subscription moderation. ezmlm-make enables subscription
moderation by touching dir/modsub. This affects
subscriptions for both the main list and the digest list. See the
-m option on how moderator addresses are stored and
manipulated.
- -S
- (Default.) Subscriptions are not moderated.
- -t
- Trailer. ezmlm-make will create
dir/text/trailer to set up the list to add a trailer
to outgoing messages.
- -T
- No trailer. (Default.)
- -u
- User posts only. ezmlm-make sets up the list so that
posts and archive access is restricted to subscribers. These are
addresses subscribed to the main list, the digest, or added
manually to the address database in dir/allow/ which
accommodates addresses from e.g. subscribers working from an
address other than their subscriber address.
Posts from unrecognized SENDER addresses will be rejected. This
is relatively easily defeated for posts. More secure alternatives
are message moderated lists configured with the ezmlm-make
-m switch (without the -u switch).
There is no reason to combine of SENDER checks on posts with
message moderation. Therefore, the combination of the -u
switch with the -m switch is used for a configuration with
SENDER restrictions (like with -u alone), with the
difference that posts from non-subscribers will be sent for
moderation instead of being rejected. This allows the list admin to
let non-subscribers post occasionally, as well as to catch
subscribers posting from non-subscriber addresses.
- -U
- (Default.) Do not restrict posts based on SENDER address.
- -v
- Display ezmlm-make version information.
- -V
- Display ezmlm-make version information.
- -w
- Remove the ezmlm-warn(1)
invocations from the list setup. It is assumed that ezmlm-warn(1)
for both local@host and
local-digest@host will be run by other means,
such as crond. If the list is set up with SQL support (see
-6), restrict the list to a subset of addresses by adding
the list name to the dir/sql ,
dir/allow/sql , dir/digest/sql ,
configuration files. Useful only when setting up the main list for
a large distributed list supported by a SQL address database. Also,
bounces will be handled by ezmlm-receipt(1)
rather than ezmlm-return(1).
As the main list will have only sublists as subscribers, it is
desirable to log bounces and feedback messages rather than to
remove a bouncing subscriber.
- -W
- (Default.) No address restriction. Normal use of ezmlm-warn(1)
and ezmlm-return(1).
- -x
- eXtra. ezmlm-make will configure the list with a few
extras: dir/mimeremove will be configured to strip
annoying mime parts such as excel spreadsheets, rtf text, html text
etc from the messages. Messages consisting solely of this
Content-type will be rejected. See ezmlm-send(1)
and ezmlm-reject(1)
for more info.
- -0 mainlist@host
- Make the list a sublist of list mainlist@host.
- -3 fromarg
- ezmlm-make sets up the list to replace the ``From:''
header of the message with ``From: fromarg''.
- -4 tstdigopts
- ezmlm-make replaces the ezmlm-tstdig(1)
switches used for digest generation with the text in
tstdigopts. This is part of a command line, NOT a specific
switch. It should normally be placed within single quotes. This
switch is mainly for programmatic use. For changing list defaults,
it is usually easier to create a custom ~/.ezmlmrc file and
edit it. The default is '-t24 -m30 -k64'. (See ezmlm-tstdig(1)
for more info.)
- -5 owner@host
- ezmlm-make will configure the list to forward mail
directed to the list owner to owner@host.
- -6 host:port:user:password:datab:table
- SQL connect info. Use the sql host (default localhost),
connecting to port (default port for SQL server) as
user with password using database datab
(default ezmlm) and the table root name table (default
ezmlm) This will have no effect unless the ezmlm programs are
compiled with SQL support.
- -7 /msg_mod_path
- Make /path the path to the database for message
moderators, if the list is set up for message moderation.
/msg_mod_path must be an absolute pathname, starting with a
slash. If not, it will be ignored.
- -8 /sub_mod_path
- Make /sub_mod_path the path to the database for
subscription moderators, if the list is set up for subscription
moderation. /sub_mod_path must be an absolute pathname,
starting with a slash. If not, it will be ignored.
- -9 /rem_adm_path
- Make /path the path to the database for remote
administrators, if the list is set up for remote administration.
/rem_adm_path must be an absolute pathname, starting with a
slash. If not, it will be ignored.
LIST EDITING
When ezmlm-make is used with the
-e switch, and the list was previously created or edited
with a new (ezmlm-idx >= 0.23) version of ezmlm-make, all
arguments other than dir can be omitted. In this case,
arguments will be read from dir/config. The
appropriate flags must always be specified. To override dot,
local, host, or code, all arguments must be
specified.
CONFIGURATION
This version of ezmlm-make is template
driven. The template file consists of plain text with four types of
tags. Both start in the first position of the line. No other text
is allowed on the same line. For security reasons, no periods are
allowed anywhere in a tag. Any line with a ``#'' in position 1 is
ignored, as is any text preceding the first tag.
- </filename#aI/>
- The following text will be copied to dir/filename
if the options specified after the ``#'' are active, in this case
archived and not indexed. Any number of flags can be
specified. This is used to adapt the files and messages to the type
of list created. If no flags are used, the ``#'' can be omitted. If
the file name is the same as the previous tag, or if it is omitted,
the text will be added to the previous file. When a new file is
opened the previous file is closed. Attempts to add more text to a
already closed file overwrites its contents.
An alternative to specify that a flag, e.g. ``4'' should not be
active is to prefix the switch with ``^'', e.g. use ``^4''. The
``E'' flag is treated in a special manner. When the list is being
edited, it evaluates to false if the file already exists, true if
it does not. Thus, files using this condition are not overwritten
when editing. This is useful for files that you frequently
customize manually.
- </-filename#eA/>
- dir/filename will be erased, if the options after
the ``#'' are active, in this case not archived and
edit.
- </+directory#aI/>
- The directory ``directory'' is created if the flags specified
are active, in this case archived and not indexed. If
no flags are specified, the ``#'' can be omitted.
- </:link/directory#aI/>
- dot-link is symlinked to dir/directory if
the flags specified are active, in this case archived and
not indexed. If no flags are specified, the ``#'' can be
omitted.
In addition, local is substituted for <#L#>,
the part of dot between the first 2 hyphens (if any) for
<#1#>, the part of dot between the second and
third hyphen (if any) for <#2#>, host for
<#H#>, dir for <#D#>, dot
for <#T#>, digestcode for <#C#>,
the set of all active flags for <#F#>, the config file
used for <#X#>, and the path to the ezmlm
binaries for <#B#> anywhere in the text. Other tags of
this format are copied to the files as is.
<#l#>, <#h#>, <#n#>,
<#A#>, <#R#>, will be substituted
on-the-fly where appropriate for the local or
local-digest local part of the list address, the
host, the subscriber address or the moderation accept
address, the message number, and the subscription reply address or
moderation reject address, respectively. The use of
<#l#> is to allow the same text file to be used for
requests pertaining to both the main list and the digest list.
<#h#> makes it possible to share some files between
lists. <#n#> is defined only by programs where this
makes sense, i.e. ezmlm-send(1)
and ezmlm-get(1)
In the absence of -e and -+ switches,
ezmlm-make will create the list directory before processing
the template file, and create dir/key after all other
actions.
ezmlm-make will use /etc/ezmlmrc and if not found
ezmlmrc in the ezmlm binary directory. This can be
overridden with the -c and -C switches.
BUGS
ezmlm-make deals with the template file as
us-ascii. Any occurrence of the characters ``</'' at the
beginning of a line will disrupt ezmlm-make operation. Any
occurrence of tags with the format ``<#X#>'' with with 'X'
being any digit, 'B', 'C', 'D', 'F', 'H', 'L', or 'T' will be
substituted by ezmlm-make. Any occurrence of a tag of this
format with 'X' being 'h', 'l', 'A', or 'R' will be substituted by
ezmlm-store and ezmlm-manage at run time.
ezmlm-send will substitute tags with 'h' and 'l', and tags
with 'n' will be replaced by the current message number.
ezmlm-get will substitute tags ``<#h#>'',
``<#l#>'' in the same way. The tag ``<#n#>'' will be
replaced by the digest message number which is the number of the
first message in the digest.
In practice, these character sequences are unlikely to occur in
any multi-byte character set text. They also will not occur by
chance in single-byte character sets where '<', '/', and '#'
retain their us-ascii codes.
BUGS
ezmlm-make cannot deal with ezmlmrc lines
containing NUL (they will be truncated at the NUL). This needs to
be fixed to make it 8-bit clean.
SEE ALSO
ezmlm-clean(1),
ezmlm-get(1),
ezmlm-manage(1),
ezmlm-moderate(1),
ezmlm-send(1),
ezmlm-store(1),
ezmlm-sub(1),
ezmlm-unsub(1),
ezmlm(5)