  mini-HOWTO install qmail with MH
  Christopher Richardson (rdn@tara.n.eunet.de)
  v1.3 13.06.97

  I am just documenting my installation experiences to offer some help
  to other users who wish to use the above combination for their email.

  1.  Introduction

  My thanks to all netizens who have helped me, especially Tony Nugent
  (tony@trishul.sci.gu.edu.au), David Summers
  (david@summersoft.fay.ar.us) and S.u.S.E ( Linux distribution) who has
  made installing Linux so much easier, and the authors of the above
  excellent programs.

  What is qmail and why should I use it?  Here is the authorīs (Dan
  Bernstein) blurb:

  qmail is a secure, reliable, efficient, simple message transfer agent.
  It is meant as a replacement for the entire sendmail-binmail system on
  typical Internet-connected UNIX hosts.  Secure: Security isn't just a
  goal, but an absolute requirement. Mail delivery is critical for
  users; it cannot be turned off, so it must be completely secure. (This
  is why I started writing qmail: I was sick of the security holes in
  sendmail and other MTAs.)  Reliable: qmail's straight-paper-path
  philosophy guarantees that a message, once accepted into the system,
  will never be lost. qmail also supports maildir, a new, super-reliable
  user mailbox format. Maildirs, unlike mbox files and mh folders, won't
  be corrupted if the system crashes during delivery. Even better, not
  only can a user safely read his mail over NFS, but any number of NFS
  clients can deliver mail to him at the same time.  Efficient: On a
  Pentium under BSD/OS, qmail can easily sustain 200000 local messages
  per day---that's separate messages injected and delivered to mailboxes
  in a real test! Although remote deliveries are inherently limited by
  the slowness of DNS and SMTP, qmail overlaps 20 simultaneous
  deliveries by default, so it zooms quickly through mailing lists.
  (This is why I finished qmail: I had to get a big mailing list set
  up.)  Simple: qmail is vastly smaller than any other Internet MTA.
  Some reasons why: (1) Other MTAs have separate forwarding, aliasing,
  and mailing list mechanisms. qmail has one simple forwarding mechanism
  that lets users handle their own mailing lists. (2) Other MTAs offer a
  spectrum of delivery modes, from fast+unsafe to slow+queued. qmail-
  send is instantly triggered by new items in the queue, so the qmail
  system has just one delivery mode: fast+queued. (3) Other MTAs
  include, in effect, a specialized version of inetd that watches the
  load average.  qmail's design inherently limits the machine load, so
  qmail-smtpd can safely run from your system's inetd.  Replacement for
  sendmail: qmail supports host and user masquerading, full host hiding,
  virtual domains, null clients, list-owner rewriting, relay control,
  double-bounce recording, arbitrary RFC 822 address lists, cross-host
  mailing list loop detection, per-recipient checkpointing, downed host
  backoffs, independent message retry schedules, etc. In short, it's up
  to speed on modern MTA features. qmail also includes a drop-in
  ``sendmail'' wrapper so that it will be used transparently by your
  current UAs.

  2.  My System Details

  Cyrix 6x86, with the SuSE Linux Distribution. Kernel patched to 2.0.28
  with the unofficial Cyrix patch ( from http://www.escnet.com/). Elsa
  Winner Trio +64 graphics card.
  PPP link to ISP

  3.  Qmail Installation

  Follow the INSTALL instructions exactly.

  Notes:

  Please take the time to read the Fine documentation  completely.  The
  numerals refer to the installation steps in the above INSTALL doc.

  ·  2  - I had to set up the groups and users manually as per
     INSTALL.ids

  ·  7  - ./qmail-makectl did not work on my system. I added my domain
     name (mickey.n.eunet.de) manually in /var/qmail/control/me

  ·  23 - Make sure qmail-smtpd is spelt correctly in the inetd-conf
     file.  (I spelt it incorrectly i.e. qmail-smptd, which took me two
     days to find:( ) smtp  stream  tcp     nowait  qmaild
     /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd

  3.1.  Maildir2smtp

  Dan Bernstein has provided a package for sending queued email to an
  ISP via dial-in. This package is available as serialmailxxx from his
  site.

  Install this package as described in the man page (Thanks Rupert
  Mazzucco (maz@pap.univie.ac.at), it works out of the box!

         maildir2smtp - blast a maildir across SMTP

         maildir2smtp is designed to pass messages along a SLIP  or
         PPP  link.  To set this up on the disconnected end, create
         a new maildir in alias:

            # maildirmake ~alias/pppdir
            # chown -R alias ~alias/pppdir

         Put

            :alias-ppp

         into control/virtualdomains and

            ./pppdir/

         into ~alias/.qmail-ppp-default.  Don't  forget  the  extra
         slash in pppdir/.  Then, in the PPP startup script, do

            maildir2smtp ~alias/pppdir alias-ppp- $IP `hostname`

         replacing  $IP with the remote IP address.

  Notes:

  ·  Please read the Fine manual page completely.

  ·  Maildir2smtp requires the dotted IP address of your mail server. If
     you do not have this then ping YourMail.host.country which will
     return the IP.

  ·  This command can be included in your login script to flush all
     queued mail after logging in to your ISP.

  4.  MH Installation

  In addition to this, I also replaced /mh-6.8.4/mts/sendmail/smail.c
  with Dan Bernsteinīs mh-qmail-smail.c

  This is what my mh-6.8.4/conf/MH looks like:

  ______________________________________________________________________

  bin     /usr/bin/mh
  etc     /usr/lib/mh
  #mail
  #mandir /usr/man
  #manuals        standard
  chown   /bin/chown
  #cp     cp
  #ln     ln
  #remove mv -f
  cc      gcc
  ccoptions -traditional -O2 -m486 -D_NFILE='getdtablesize()'
            -DSIGEMT=SIGUSR1
  curses  -lncurses
  #ldoptions      -s
  #ldoptlibs
  lex     flex
  #oldload        off
  #ranlib on
  mts     sendmail
  #mf     off
  #bboards        off
  #bbdelivery     off
  #bbhome /usr/spool/bboards
  pop     on
  popdir  /usr/lib/mh
  sharedlib       sys5
  slflags -fPIC
  slibdir /usr/lib
  mailgroup       mail
  signal  void
  sprintf int
  #editor prompter
  #debug  off
  #regtest        off
  options ATHENA
  options BIND
  options DPOP
  options DUMB
  options FCNTL
  options MHE
  options MHRC
  options MIME
  options MORE='"/usr/bin/less"'
  options OVERHEAD
  options POP2
  options POPSERVICE='"pop3"'
  options RENAME
  options RPATHS
  options RPOP
  options SOCKETS
  options SVR4
  options SYS5
  options SYS5DIR
  options TERMINFO
  options UNISTD
  options VSPRINTF

  ______________________________________________________________________

  Notes:

  ·  I have only compiled ``mts sendmail'' - read in comp.mail.mh
     somewhere that /smtp can cause problems. Dominic Mitchell
     (hdm@demon.net) wrote in comp.mail.mh (13 June 1997):

     ``Not quite. With this option MH still talks SMTP, just over a pipe
     and not over a network. You *really* need a line in your
     /.mh_profile which says:

     postproc: /usr/local/nmh/lib/spost

     Or whever it's kept on your system. This will pass the message
     directly to sendmail in the traditional manner. You're using qmail
     of course, so sendmail will be qmail's wrapper script, but that's
     just fine.'' Thanks Dominic.

  ·  I have remmed out ``mail'' because I want to control it via
     mtstailor

  4.1.  mtstailor

  As qmail delivers mail to the home directory (~/Mailbox). I added the
  following to my mtstailor

       localname:      mickey
       localdomain:    n.eunet.de
       mmdfldir:
       mmdflfil:       Mailbox
       uucpldir:
       uucplfil:
       mmdelim1:       \001\001\001\001\n
       mmdelim2:       \001\001\001\001\n
       mmailid:        0
       umincproc:
       lockldir:
       sendmail:       /usr/lib/sendmail

  Notes:

  ·  sendmail: /usr/lib/sendmail is a link to the qmail sendmail wrapper
     in /var/qmail/bin

  ·  MH does not like the tilde notation (~/) use /home instead or leave
     blank which according to the docs defaults to $HOME.

  ·  I recently installed MH and qmail on my office machine which is
     connect via ethernet. I added the following line to mtstailor:

     servers: mailserver.company.country

  4.2.  mh_profile

  Here is my .mh_profile

       Path: Mail
       draft-folder: drafts
       unseen-sequence: unseen
       AliasFile: /home/rdn/.mh_aliases
       send: -msgid
       comp: -form /home/rdn/.mymh-components
       MailDrop: /home/rdn/Mailbox

  Notes:

  ·  I put in the MailDrop line to be ``sure to be sure''.

  5.  Fetchmail

  I decided to use fetchmail because I have a multiuser (my family :).
  Linux and fetchmail delivers mail to the smtp port where qmail takes
  over.

  Installation was no problem, but I have not got the multidrop working
  correctly.

  Here is my .fetchmailrc

       poll PersonalMail.Germany.EU.net
       protocol pop3
       username myname
       password mypassword

  6.  Exmh

  This is my mailer by choice. I love it.

  There is one problem - most pre-compiled TCL/TK packages have the
  security option compiled in.  The following script .xserverrc.secure
  which came with SuSE solves this.

  ______________________________________________________________________

  #!/bin/sh

  #
  # move this file to ~/.xserverrc, if you don't want to allow everybody to
  # get access to your X-Server
  #
  if [ -x /usr/bin/keygen ]; then
      if [ ! -x /usr/bin/hostname -a ! -x /bin/hostname \
           -a ! -x /usr/bsd/hostname ];
      then
          echo "startx: can't get my hostname - exiting"
          exit 1
      else
          host=`hostname`
      fi

      xauth add $host:0 . `/usr/bin/keygen`
      sleep 2
      xauth add $host/"unix":0 . `/usr/bin/keygen`
      exec X :0 -auth .Xauthority $*
  else
      exec X :0 $*
  fi
  ______________________________________________________________________

  7.  Disclaimers

  The usual no guarantees, no money back, use at your own risk.

  8.  Procmail

  The qmail FAQ gives this command:

  In  /.qmail add the line

       | preline procmail

  On my system this works iff when using vi to generate the .qmail file,
  I included an empty line after the command.

  I recompiled the procmail package with my defaults. I added a link
  from my /usr/local/bin/procmail to /bin/procmail, because I was not
  sure that the command could find procmail in /usr/local/bin.

  Procmail is an excellently documented program. Read the man pages for
  examples on how to set up your .procmailrc file.

  9.  Sources

  Required Packages

  ·  Find Qmail, setserial on http://pobox.com/~djb/qmail.html for other
     qmail-related software and a pointer to the qmail mailing list.

  ·  Find MH on ftp.ics.uci.edu:/pub/mh

     Tony Nugent has prepared a patch for the clean mh-6.8.3 sources
     (patch available ftp://ftp.gw.com/pub/unix/mail/mh/patches/linux/).

  ·  Find Metamail (for MIME support, including 8-bit charsets) on
     ftp.bellcore.com:/pub/nsb

  ·  Find Fetchmail on ftp://ftp.ccil.org/pub/esr/fetchmail Or you can
     get it from Eric's home page: http://www.ccil.org/~esr

  ·  Find Glimpse, the full text search engine, at University of
     Arizona: http://glimpse.cs.arizona.edu:1994/

  ·  Find Exmh ftp.sunlabs.com/pub/tcl/exmh/

  ·  Find TCL and TK on ftp.sunlabs.com:/pub/tcl
     ftp.aud.alcatel.com:/tcl ftp.cs.berkeley.edu:/ucb/tcl

