ezmlm-make - create a new mailing list
ezmlm-make [ -+ ][ -a..zABD..Z ][ -C03..9 arg ] dir [ dot
local host [digestcode] ]
ezmlm-make sets up a new mailing list, local@host, along
with several extra addresses to handle administrative
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 edit-
ing an existing list, using the -e or -+ options (see
ezmlm-make is controlled by a template, .ezmlmrc.
Described here is the behavior with the default template
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 informa-
tion from this file. Thus, when using ezmlm-make -e, you
only need to specify the desired switches and switch argu-
ments 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.
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 addi-
tional .qmail files: dot-accept-default and dot-reject-
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 email@example.com-
code 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 auto-
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 adminis-
tration, 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 dot-qmail(5)).
Moderator addresses are added with
ezmlm-sub ~joe/SOS/mod mod1@host1 mod2@host2 ...
ezmlm-make also creates the necessary text files in
ezmlm-make has a large number of switches to control all
aspects of list generation. Only defaults or a small sub-
set 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.
For virtual domains, qmail(5) prefixes the name of the
controlling user to the LOCAL part of the recipient
address. ezmlm(5) 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 ``firstname.lastname@example.org'' where ``vir-
tual.dom'' is controlled by ``vu'' (virtual.dom:vu),
change identity to ``vu'' or chown files to that user
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.
All ezmlm-make letter switches except -v and -V are avail-
able 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
-+ 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
-a (Default.) Archived. ezmlm-make will touch
dir/archived, so that ezmlm-send(1) will archive new
-A Not archived.
-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 configura-
tion 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.
Like -c, but use file arg as the ezmlmrc file.
-d Digest. ezmlm-make will set up the local-digest@host
digest list to disseminate digest of the list mes-
sages. By default, this is done when 30 messages, 48
hours, or 64 kbytes of message body text have accumu-
lated 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
-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 modera-
tor 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 dot-qmail(5)).
-E (Default.) No edit. ezmlm-make will abort if direc-
tories 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
-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 unrecog-
nized 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.
-i (Default.) Indexed. ezmlm-make will touch
dir/indexed, so that ezmlm-send(1) will set up a mes-
sage index of incoming messages. ezmlm-get(1) will
be set up in dir/manager to process digest, get,
index, and thread requests.
-I Not indexed. ezmlm-get(1) will not be used and get
requests will be handled by ezmlm-manage(1).
-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
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/pend-
ing/, 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
-p (Default.) Public. ezmlm-make will touch dir/public,
so that ezmlm-manage(1) will respond to administra-
tive requests and ezmlm-get will allow archive
-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 config-
ure 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
-r Remote admin. ezmlm-make enables remote administra-
tion by touching dir/remote. Moderator(s) can unsub-
scribe and subscribe any address. See the -m option
on how moderator addresses are stored and manipu-
-R (Default.) No remote administration.
-s Subscription moderation. ezmlm-make enables sub-
scription 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 mes-
-T No trailer. (Default.)
-u User posts only. ezmlm-make sets up the list so that
posts and archive access is restricted to sub-
scribers. 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 moder-
ated 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 combi-
nation 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
-U (Default.) Do not restrict posts based on SENDER
-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 con-
sisting solely of this Content-type will be rejected.
See ezmlm-send(1) and ezmlm-reject(1) for more info.
Make the list a sublist of list mainlist@host.
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
ezmlm-make will configure the list to forward mail
directed to the list owner to owner@host.
SQL connect info. Use the sql host (default local-
host), 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.
Make /path the path to the database for message mod-
erators, if the list is set up for message modera-
tion. /msg_mod_path must be an absolute pathname,
starting with a slash. If not, it will be ignored.
Make /sub_mod_path the path to the database for sub-
scription moderators, if the list is set up for sub-
scription moderation. /sub_mod_path must be an abso-
lute pathname, starting with a slash. If not, it will
Make /path the path to the database for remote admin-
istrators, if the list is set up for remote adminis-
tration. /rem_adm_path must be an absolute pathname,
starting with a slash. If not, it will be ignored.
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 speci-
fied. To override dot, local, host, or code, all arguments
must be specified.
This version of ezmlm-make is template driven. The tem-
plate 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.
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 previ-
ous 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
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 condi-
tion are not overwritten when editing. This is use-
ful for files that you frequently customize manu-
dir/filename will be erased, if the options after
the ``#'' are active, in this case not archived and
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
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
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#>, and the path to the ezmlm binaries for <#B#> any-
where 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 num-
ber, 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 pertain-
ing 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.
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 sub-
stituted by ezmlm-make. Any occurrence of a tag of this
format with 'X' being 'h', 'l', 'A', or 'R' will be sub-
stituted 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
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.
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.
ezmlm-clean(1), ezmlm-get(1), ezmlm-manage(1), ezmlm-moderate(1)
, ezmlm-send(1), ezmlm-store(1), ezmlm-sub(1),
© 1994 Man-cgi 1.15, Panagiotis Christias <email@example.com>