ezmlm-make(1)                                                                    General Commands Manual                                                                   ezmlm-make(1)

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  con‐
       trolled 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 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 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.  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 ``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 cus‐
       tomization 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.
            ezmlmrc(5) 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 mes‐
            sages.

       -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 dot-qmail(5)).  ezmlmrc(5) 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 tempo‐
            rarily 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 mod‐
            erators 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  config‐
            ured 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.

       
              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  man‐
              ner. 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 edit‐
              ing. This is useful for files that you frequently customize manually.

       
              dir/filename will be erased, if the options after the ``#'' are active, in this case not archived and edit.

       
              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.

       
              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 bina‐
       ries 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)