Update of /cvsroot/mailman/mailman/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15398/doc

Modified Files:
      Tag: Release_2_1-maint
        mailman-install.tex 
Log Message:
Integrate Qmail instructions into the install manual.


Index: mailman-install.tex
===================================================================
RCS file: /cvsroot/mailman/mailman/doc/Attic/mailman-install.tex,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -d -r1.1.2.2 -r1.1.2.3
--- mailman-install.tex 13 Dec 2004 21:24:41 -0000      1.1.2.2
+++ mailman-install.tex 14 Dec 2004 03:37:50 -0000      1.1.2.3
@@ -27,6 +27,7 @@
 instructions, as well as guidelines for integrating Mailman with your web and
 mail servers.
 
+\noindent
 The GNU Mailman website is at \url{http://www.list.org}
 \end{abstract}
 
@@ -60,13 +61,13 @@
 somewhere on your system.  Mailman 2.1 requires Python 2.1 or newer, although
 Python 2.3 or newer is recommended.
 
-\section{Setting up your system}
+\section{Set up your system}
 
 Before installing Mailman, you need to prepare your system by adding certain
 users and groups.  You will need to have root privileges to perform the steps
 in this section.
 
-\subsection{Adding the group and user}
+\subsection{Add the group and user}
 
 Mailman requires a unique user and group name which will own its files, and
 under which its processes will run.  Mailman's basic security is based on
@@ -92,7 +93,7 @@
     % useradd -c''GNU Mailman'' -s /no/shell -d /no/home -g mailman mailman
 \end{verbatim}
 
-\subsection{Creating the installation directory\label{create-install-dir}}
+\subsection{Create the installation directory\label{create-install-dir}}
 Typically, Mailman is installed into a single directory, which includes both
 the Mailman source code and the run-time list and archive data.  It is
 possible to split the static program files from the variable data files and
@@ -130,9 +131,9 @@
 
 You are now ready to configure and install the Mailman software.
 
-\section{Building and installing\label{building}}
+\section{Build and install Mailman\label{building}}
 
-\subsection{Running \program{configure}}
+\subsection{Run \program{configure}}
 
 Before you can install Mailman, you must run \program{configure} to set
 various installation options your system might need.
@@ -282,7 +283,7 @@
 \item Repeat previous step until no more errors are reported!
 \end{itemize}
 
-\section{Setting up your web server}
+\section{Set up your web server}
 
 Congratulations!  You've installed the Mailman software.  To get everything
 running you need to hook Mailman up to both your web server and your mail
@@ -367,7 +368,7 @@
 
 Now restart your web server.
 
-\section{Setting up your mail server\label{mail-server}}
+\section{Set up your mail server\label{mail-server}}
 
 This section describes some of the things you need to do to connect Mailman's
 email interface to your mail server.  The instructions here are different for
@@ -830,7 +831,6 @@
 from non-127.0.0.1 hosts, but it should do the trick for Mailman.)
 
 \subsubsection{SMTP Callback}
--------------
 
 Exim's SMTP callback feature is an even more powerful way to detect bogus
 sender addresses than normal sender verification.  Unfortunately, lots of
@@ -1039,9 +1039,213 @@
 Sendmail to \strong{not} do DNS verification synchronously for localhost
 connections.
 
-\subsection{Using the Qmail mail server}
+\subsection{Using the Qmail mail server\label{qmail-issues}}
 
-\subsection{Create a site-wide mailing list}
+There are some issues that users of the qmail mail transport agent have
+encountered.  None of the core maintainers use qmail, so all of this
+information has been contributed by the Mailman user community, especially
+Martin Preishuber and Christian Tismer, with notes by Balazs Nagy (BN) and
+Norbert Bollow (NB).
+
+\begin{itemize}
+\item You might need to set the mail-gid user to either \code{qmail},
+      \code{mailman}, or \code{nofiles} by using the
+      \longprogramopt{with-mail-gid} \program{configure} option.
+
+      \emph{BN:} it highly depends on your mail storing policy.  For example
+      if you use the simple \file{~alias/.qmail-*} files, you can use
+      \program{`id -g alias`}.  But if you use \file{/var/qmail/users}, the
+      specified mail gid can be used.
+
+      If you are going to be directing virtual domains directly to the
+      \code{mailman} user (using ``virtualdomains'' on a list-only domain, for
+      example), you will have to use \longprogramopt{with-mail-gid}=\var{gid
+      of mailman user's group}.  This is incompatible with having list aliases
+      in \file{~alias}, unless that alias simply forwards to
+      \code{mailman-listname*}.
+
+\item If there is a user \code{mailman} on your system, the alias
+      \code{mailman-owner} will work only in \file{~mailman}.  You have to do
+      a \program{touch .qmail-owner} in \file{~mailman} directory to create
+      this alias.
+
+      \emph{NB:} An alternative, IMHO better solution is to \program{chown
+      root ~mailman}, that will stop qmail from considering \code{mailman} to
+      be a user to whom mail can be delivered.  (See ``man 8 qmail-getpw''.)
+
+\item In a related issue, if you have any users with the same name as one of
+      your mailing lists, you will have problems if list names contain
+      \samp{-} in them.  Putting \file{.qmail} redirections into the user's
+      home directory doesn't work because the Mailman wrappers will not get
+      spawned with the proper GID.  The solution is to put the following lines
+      in the \file{/var/qmail/users/assign} file:
+
+\begin{verbatim}
+  +zope-:alias:112:11:/var/qmail/alias:-:zope-:
+  .
+\end{verbatim}
+
+      where in this case the listname is e.g. \code{zope-users}.
+
+      \emph{NB:} Alternatively, you could host the lists on a virtual domain,
+      and use the \file{/var/qmail/control/virtualdomains} file to put the
+      \code{mailman} user in charge of this virtual domain.
+
+\item \emph{BN:}If inbound messages are delivered by another user than
+      \code{mailman}, it's necessary to allow it to access \file{~mailman}.
+      Be sure that \file{~mailman} has group writing access and setgid bit is
+      set.  Then put the delivering user to \code{mailman} group, and you can
+      deny access to \file{~mailman} to others.  Be sure that you can do the
+      same with the WWW service.
+
+      By the way the best thing is to make a virtual mail server to handle all
+      of the mail.  \emph{NB:} E.g. make an additional "A" DNS record for the
+      virtual mailserver pointing to your IP address, add the line
+      \code{lists.kva.hu:mailman} to \file{/var/qmail/control/virtualdomains}
+      and a \code{lists.kva.hu} line to \file{/var/qmail/control/rcpthosts}
+      file.  Don't forget to HUP the qmail-send after modifying
+      ``virtualdomains''.  Then every mail to lists.kva.hu will arrive to
+      mail.kva.hu's mailman user.
+
+      Then make your aliases:
+
+\begin{verbatim}
+          .qmail              => [EMAIL PROTECTED]'s letters
+          .qmail-owner        => mailman-owner's letters
+\end{verbatim}
+
+      For list aliases, you can either create them manually:
+
+\begin{verbatim}
+          .qmail-list         => posts to the 'list' list
+          .qmail-list-admin   => posts to the 'list's owner
+          .qmail-list-request => requests to 'list'
+          etc
+\end{verbatim}
+
+      or for automatic list alias handling (when using the lists.kva.hu
+      virtual as above), see \file{contrib/qmail-to-mailman.py} in the Mailman
+      source distribution.  Modify the \file{~mailman/.qmail-default} to
+      include:
+
+\begin{verbatim}
+          |/path/to/python /path/to/qmail-to-mailman.py
+\end{verbatim}
+
+      and new lists will automatically be picked up.
+
+\item You have to make sure that the localhost can relay.  If you start qmail
+      via inetd and tcpenv, you need some line the following in your
+      \file{/etc/hosts.allow} file:
+
+\begin{verbatim}
+      tcp-env: 127. 10.205.200 : setenv RELAYCLIENT
+\end{verbatim}
+
+      where 10.205.200. is your IP address block.  If you use tcpserver, then
+      you need something like the following in your \file{/etc/tcp.smtp} file:
+
+\begin{verbatim}
+      10.205.200.:allow,RELAYCLIENT=""
+      127.:allow,RELAYCLIENT=""
+\end{verbatim}
+
+\item \emph{BN:} Bigger \file{/var/qmail/control/concurrencyremote} values
+      work better sending outbound messages, within reason.  Unless you know
+      your system can handle it (many if not most cannot) this should not be
+      set to a value greater than 120.
+
+\item More information about setting up qmail and relaying can be found in the
+      qmail documentation.
+\end{itemize}
+
+\emph{BN:} Last but not least, here's a little script to generate aliases to
+your lists (if for some reason you can/will not have them automatically picked
+up using \file{contrib/qmail-to-mailman.py}):
+
+This script is for the Mailman 2.0 series:
+
+\begin{verbatim}
+#!/bin/sh
+if [ $# = 1 ]; then
+    i=$1
+    echo Making links to $i in the current directory...
+    echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i
+    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin
+    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner
+    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i
+    echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request
+fi
+\end{verbatim}
+% $ - emacs turd
+
+\begin{notice}[note]
+This is for a new Mailman 2.1 installation.  Users upgrading from
+Mailman 2.0 would most likely change \file{/usr/local/mailman} to
+\file{/home/mailman}.  If in doubt, refer to the \longprogramopt{prefix}
+option passed to \program{configure} during compile time.
+\end{notice}
+
+\begin{verbatim}
+#!/bin/sh
+if [ $# = 1 ]; then
+    i=$1
+    echo Making links to $i in the current directory...
+    echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i
+    echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin
+    echo "|preline /usr/local/mailman/mail/mailman bounces $i" > 
.qmail-$i-bounces
+    # The following line is for VERP
+    # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > 
.qmail-$i-bounces-default
+    echo "|preline /usr/local/mailman/mail/mailman confirm $i" > 
.qmail-$i-confirm
+    echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join
+    echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave
+    echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner
+    echo "|preline /usr/local/mailman/mail/mailman request $i" > 
.qmail-$i-request
+    echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > 
.qmail-$i-subscribe
+    echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > 
.qmail-$i-unsubscribe
+fi
+\end{verbatim}
+% $ - emacs turd
+
+\subsubsection{Information on VERP}
+
+You will note in the alias generating script for 2.1 above, there is a line
+for VERP that has been commented out.  If you are interested in VERP there are
+two options.  The first option is to allow Mailman to do the VERP formatting.
+To activate this, uncomment that line and add the following lines to your
+\file{mm_cfg.py} file:
+
+\begin{verbatim}
+    VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s'
+    VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[EMAIL 
PROTECTED])@.*$'
+\end{verbatim}
+% $ - emacs turd
+
+The second option is a patch on SourceForge located at:
+
+\url{http://sourceforge.net/tracker/?func=detail\&atid=300103\&aid=645513\&group_id=103}
+
+This patch currently needs more testing and might best be suitable for
+developers or people well familiar with qmail.  Having said that, this patch
+is the more qmail-friendly approach resulting in large performance gains.
+
+\subsubsection{Virtual mail server}
+
+As mentioned in the \ref{qmail-issues} section for a virtual mail server, a
+patch under testing is located at:
+
+\url{http://sf.net/tracker/index.php?func=detail\&aid=621257\&group_id=103\&atid=300103}
+
+Again, this patch is for people familiar with their qmail installation.
+
+\subsubsection{More information}
+
+You might be interested in some information on modifying footers that Norbert
+Bollow has written about Mailman and qmail, available here:
+
+    \url{http://mailman.cis.to/qmail-verh/}
+
+\section{Create a site-wide mailing list}
 
 After you have completed the integration of Mailman and your mail server, you
 need to create a ``site-wide'' mailing list.  This is the one that password
@@ -1073,7 +1277,7 @@
 
 You should also subscribe yourself to the site list.
 
-\section{Setting up cron}
+\section{Set up cron}
 
 Several Mailman features occur on a regular schedule, so you must set up
 \program{cron} to run the right programs at the right time\footnote{Note that
@@ -1101,7 +1305,7 @@
     % crontab crontab.in
 \end{verbatim}
 
-\section{Starting the Mailman qrunner}
+\section{Start the Mailman qrunner}
 
 Mailman depends on a process called the ``qrunner'' to delivery all
 email messages it sees.  You must start the qrunner by executing the following
@@ -1173,7 +1377,7 @@
 You will want to run the \program{bin/fix_url.py} to change the domain of any
 existing lists.
 
-\section{Customizing Mailman\label{customizing}}
+\section{Customize Mailman\label{customizing}}
 
 Now that Mailman is all set up, there are a few site-wide configurations you
 can make before you start creating mailing lists.  You should do these steps

_______________________________________________
Mailman-checkins mailing list
[EMAIL PROTECTED]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to