-
-
Notifications
You must be signed in to change notification settings - Fork 3
ezmlmrc.5
ezmlmrc - ezmlm-make configuration file
ezmlmrc
ezmlmrc is a file that configures ezmlm-make(1) for setting up new lists. ezmlm(5) programs loads ezmlmrc from /etc/indimail/ezmlm directory. You can set EZMLM_ETC environment variable to choose a different path for ezmlmrc file. ezmlmrc is a plain text with four types of tags. All 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 first line in ezmlmrc is unique. It should start in position 1 with ``x.yz'', where ``x'' is the major version number, ``y'' a minor version number, and ``z'' a bugfix version number. ezmlm-make(1) will print a warning message if it is used with an ezmlmrc file that lacks the version identifier, or with an ezmlmrc file that has a version identifier that differs in either major or minor version numbers from the ezmlm-make version.
The ezmlmrc file is processed top down. Text preceding the first tag is ignored. Subsequently, one and only one file is open for writing. Any text encountered in ezmlmrc is copied to that file as is with a few substitutions (see below). Text following conditional tags is copied only if the condition is met. A file is automatically closed when a new file is opened. Opening a file overwrites any preexisting file with that name. Tags are:
</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. For all letter switches (except -cCvV), upper and lower
case tags are opposite and mutually exclusive. Thus, if -g is
specified, -G is not set and if -G is set, -g is not.
The tag #E has special meaning. It is false if the list is being edited, e.g. ezmlm-make -e or +, but true if switches -ee or -++ are used, or if ezmlm-make local is specified. Thus, for normal edits with unchanged list name, the files tagged with #E are not overwritten (preserving manual customizations), but if the list name changes or if explicitly specified by -ee or -++ the #E switch is ignored.
</filename#5^i/>
This is an alternative way of specifying ``if switch -5 is specified
and the -i switch is not specified''. ``^'' is used as ``not''.
</-filename#eA/>
dir*/filename*** will be erased, if the options after the ``#'' are
active, in this case not archived and edit. An alternative to
specify that a flag, e.g. ``4'' should not be active is to use
``^4''.
</+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.
ezmlm-make substitutes the following tags anywhere within files when they are (re)created. Other tags of this format are copied to the files as is.
<#B#>
The path to the ezmlm-idx binaries.
<#C#>
digestcode
<#D#>
dir
<#F#>
The alphanumeric flags given to ezmlm-make concatenated together.
<#H#>
host
<#L#>
local
<#T#>
dot
<#0#>
The argument for -0.
<#1#>
The part of dot between the first two hyphens (if any).
<#2#>
The part of dot between the second and third hyphen (if any).
<#3#>..<#9#>
The argument to -3..-9.
Before the template file is processed, ezmlm-make will create the list directory. ezmlm-make will also create dir*/key***.
The ezmlmrc file is preconfigured to act upon ezmlm-make(1) switches to produce the results as described in the ezmlm-make(1) man page. A number of files are created via ezmlmrc independently of any switches. These are dir*/headeradd*** adding ``Precedence: bulk'' and ``X-No-Archive: yes'' to outgoing messages, and dir*/headerremove*** removing ``Return-Path'', ``Return-Receipt-To'', ``Content-length'', and ``Precedence'' from list messages. These files are not overwritten when lists are edited.
dir*/bouncer*** and dir*/digest/bouncer*** are set up to invoke ezmlm-weed(1) and ezmlm-return(1) to handle bounces. In addition to switch-dependent lines, an invocation of ezmlm-warn(1) is placed at the end of dir*/editor***, dir*/manager***, and dir*/owner*** to process the contents of the bounce directory. ezmlm-reject(1) is placed first in dir*/editor*** (unless the -0 mainlist@mainhost switch is used) to reject undesirable messages.
Below is a description of the switches and the consequences the have for list creation with the standard ezlmrc file. emzlm-make(1) by default sets the -a, and -p switches.
-a
dir*/archived*** and dir*/indexed*** are created.
dir*/text/bottom*** is adjusted to mention archive access. -A
dir*/archived*** and dir*/indexed*** are removed.
-b
Block archive. dir*/modgetonly*** is created to allow only moderators
archive access.
-B
dir*/modgetonly*** is removed.
-d
dir*/digested*** is created, signalling to programs to send digests.
-D
dir*/digested*** is removed, signalling to not send digests.
-f
The text ``[local]'' is placed in dir*/prefix*** resulting in
the text being used as the list's subject index.
-F
dir*/prefix*** is removed.
-g
dir*/subgetonly*** is created, signalling ezmlm-get(1) to only
allow subscribers to access the archive.
-G
dir*/subgetonly*** is removed, signalling ezmlm-get(1) That anyone
can access the archive if archive (access) in general is enabled (see
-p for ``public'', -a for ``archived'', and -i for
``indexed''.
-i
dir*/threaded*** is created to signal ezmlm-archive(1) to run as
appropriate after messages are posted. This sets up the cross-reference
for ezmlm-cgi(1) WWW access.
-I
dir*/threaded*** is removed.
-j
dir*/nounsubconfirm*** is created to signal ezmlm-manage(1) to not
require confirmation after unsubscription requests.
-J
dir*/nounsubconfirm*** is removed.
-l
dir*/modcanlist*** is created to signal ezmlm-manage(1) to allow
retrieval of subscriber list and list log by remote administrators.
NOTE: This is pointless, unless the list is also set up for remote
administration with the -r switch.
-L
dir*/modcanlist*** is removed, disallowing access to the subscriber
list under any circumstances.
-m
Message moderation. dir*/modpost*** is created, which signals
ezmlm-store(1) to store messages and forward confirmation requests
to the moderators. Special action is taken when the -m switch is
combined with -u. In this case, the handling is as for the -m
switch alone, but dir*/editor*** is set up with ezmlm-gate(1)
which will fork ezmlm-send(1) for posts with an envelope sender that
is a subscriber or a moderator, and for ezmlm-store(1) for posts
with other envelope senders. The consequence is that posts from
subscribers (with the usual caveats for SENDER checks) are posted
directly, whereas other posts are sent for moderation.
-M
dir*/modpost*** is removed, undoing the changes above.
-n
Allow text file editing. dir*/modcanedit*** is created to signal
ezmlm-manage(1) to allow remote admins to via E-mail edit the files
in dir*/text/***. NOTE: This is pointless, unless the list is also
set up for remote administration with the -r switch.
-N
dir*/modcanedit*** is removed to disallow editing of files in
dir*/text***.
-o
dir*/modpostonly*** is created to signal ezmlm-store(1) ro reject
posts from non-moderators on moderated lists rather than sending them
for moderation. This is for some announcement lists.
-O
dir*/modpostonly*** is removed.
-p
Public. dir*/public*** is created, signaling ezmlm-get(1) to allow
archive retrieval attempts, and ezmlm-manage(1) to allow
subscription and unsubscription attempts.
-P
Not public. dir*/public*** is removed.
-r
Remote admin. dir*/remote*** is created to signal ezmlm-manage(1)
to allow remote administration of mailing lists.
-R
dir*/remote*** is removed.
-s
Subscription moderation. dir*/modsub*** is created to signal
ezmlm-manage(1) to forward confirmed subscription requests to the
moderators for approval. The unsubscription process is unchanged.
-S
dir*/modsub*** is removed.
-t
dir*/addtrailer*** is created to signal ezmlm-send(1) to include
the trailer portions in dir*/text/trailer*** in messages posted to the
list.
-T
dir*/addtrailer*** is removed.
-u
Subscriber-only posts. dir*/subpostonly*** is created to allow posts
only from subscribers. ezmlm-checksub(1) is checks the envelope
sender against the subscriber address databases. If the sender is not
found, the post is rejected. This results in subscriber-only posts, with
the usual caveats for SENDER checks. Special action is taken when the
-u switch is combined with -m. In this case, the setup is as for
the -m switch alone, but ezmlm-gate(1) will execute
ezmlm-send(1) for posts with an envelope sender that is a subscriber
or a moderator, and will otherwise moderate the message. The consequence
is that posts from subscribers (with the usual caveats for SENDER
checks) are posted directly, whereas other posts are sent for
moderation. Also, dir*/noreturnposts*** is created to silently drop
ignored posts rather than returning them to their senders.
-U
dir*/subpostonly** is removed.*
-w
dir*/nowarn*** is created to signal ezmlm-warn(1) to do no work.
-W
dir*/nowarn*** is removed.
-x
dir*/mimeremove*** is created containing many MIME types not routinely
supported. MIME types in dir*/mimeremove*** are stripped from
multipart posts before archiving and distribution. To view the list of
MIME types, see ezmlmrc or create a list and view
dir*/mimeremove***. In addition dir*/msgsize*** is created
containing ``30000:2'' causing ezmlm-reject(1) to reject all posts
that have a body of less than 2 bytes (empty) or more than 30000 bytes
(too large).
-y
Confirm postings. dir*/confirmpost*** is created to signal
ezmlm-store(1) to send a confirmation probe to the sender of each
post.
-Y
dir*/confirmpost*** is removed.
-0 mainlist@mainhost**
dir*/sublist*** is created with ``mainlist@mainhost''.
dir/ezmlm-reject**** is not used in dir*/editor*** to avoid
rejecting messages that the main list has accepted.
-3 fromarg**
The list is set up to add ``from'' to dir*/headerremove*** and
From: fromarg to dir*/headeradd***. This replaces the incoming
``From:'' header as desirable for some announcement lists.
-4 tstdigopts**
tstdigopts will be used as the arguments for ezmlm-tstdig(1) in
dir*/editor***. This must be both switches and their arguments for
ezmlm-tstdig(1). NOTE: This is pointless, unless the list is
also set up for digests with the -d switch.
-5 owner@ownerhost**
owner@ownerhost is placed in dir*/owner*** so that mail to
``list-owner'' is forwarded to that address, rather than being stored
in dir*/Mailbox***. If the address does not start with an underscore
or alphanumeric character, the argument must start with an ampersand.
-6 plugin:host:port:user:password:datab:table**
The string, followed by the list name is placed in dir*/subdb***,
indicating what subscriber database plugin and parameters to use.
-7 /msgmodPath**
msgmodPath is placed in dir*/modpost*** is the list is set up for
message moderation with the -m switch.
-8 /submodPath**
submodPath is placed in dir*/modsub*** is the list is set up for
subscription moderation with the -s switch.
-9 /remoteAdminPath**
remoteAdminPath is placed in dir*/remote*** is the list is set up
for remote administration with the -r switch.
ezmlm(5), ezmlm-checksub(1), ezmlm-clean(1), ezmlm-gate(1), ezmlm-get(1), ezmlm-issubn(1), ezmlm-make(1), ezmlm-manage(1), ezmlm-moderate(1), ezmlm-request(1), ezmlm-return(1), ezmlm-send(1), ezmlm-store(1), ezmlm-tstdig(1), ezmlm-warn(1),