Penguin

Differences between current version and predecessor to the previous major change of HowToQmailMH.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Sunday, November 28, 2004 1:04:02 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:22 am by perry Revert
@@ -1,915 +1 @@
-  
-  
-  
-mini-HOWTO install qmail with MH  
-  
-  
-  
-----  
-  
-!!!mini-HOWTO install qmail with MH  
-  
-!!Christopher Richardson (rdn@tara.n.eunet.de)v1.4, 5 March 1998  
-  
-  
-----  
-''I am just documenting my installation experiences to offer some help to  
-other users who wish to use the above combination for their email.  
-v1.4 - I have finally got a new Linux box running so I decided to  
-update this mini-howto''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. My System Details  
-  
-  
-  
-  
-!!3. Qmail Installation  
-  
-  
-*3.1 Maildir2smtp  
-  
-  
-  
-  
-  
-!!4. MH Installation  
-  
-  
-*4.1 mtstailor  
-  
-*4.2 mh_profile  
-  
-  
-  
-  
-  
-!!5. Fetchmail  
-  
-  
-  
-  
-!!6. Exmh  
-  
-  
-  
-  
-!!7. Procmail  
-  
-  
-  
-  
-!!8. ISDN  
-  
-  
-  
-  
-!!9. Sources  
-  
-  
-  
-  
-!!10. Disclaimers  
-  
-  
-  
-  
-!!11. Postscript  
-----  
-  
-!!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  
-  
-  
-  
-  
-  
-SuSE Linux Distribution 5.1 with 2..33 kernal.  
-  
-  
-  
-  
-  
-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:  
-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, multidrop works with the following .fetchmailrc :  
-  
-  
-  
-  
-  
-poll !PersonalMail.Germany.EU.net  
-protocol pop3  
-username myname  
-password mypassword  
-# the next two lines do the trick for multidrop  
-localdomains mydomain.de  
-is * here  
-# T2 of the fetchmail FAQ states that qmail needs this  
-forcecr  
-  
-  
-  
-  
-  
-----  
-  
-!!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. Procmail  
-  
-  
-  
-  
-  
-The qmail FAQ gives this command:  
-  
-  
-In /.qmail add the line  
-  
-  
-  
-  
-  
-| preline procmail  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-Version 3.11pre7 has changed the default mail box variable. It used to  
-be in config.h. It is now in src/authenticate.c:  
-  
-  
-  
-  
-  
-#define MAILSPOOLHOME "/Mailbox" /* watch the leading / */  
-/* delivers to $HOME/Mailbox */  
-  
-  
-  
-  
-I have culled from comp.mail.mh ans comp.mail.misc some hints on a .procmailrc file. Thanks to everyone!  
-  
-  
-  
-  
-  
-# A SAMPLE .PROCMAILRC FILE FOR NOVICES  
-# Written by Catherine Hampton <ariel@best.com>  
-# Version 1.1  
-# Updated 1/25/98  
-#  
-# Released to the Public Domain.  
-#  
-#  
-# SET VARIABLES  
-# Internal Variables  
-# the following have be modified by rdn 19980303  
-# Everyone says that the SHELL environment is essential  
-SHELL=/bin/sh #Shell used to run procmail. Be sure this points to  
-#your system's copy of sh. DO NOT substitute a  
-#different shell unless you really know UNIX  
-LINEBUF=4096 #Needed to keep Procmail from choking on long  
-#"recipes", or instructions on what to do with  
-#particular kinds of email.  
-PATH=$HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/mh:/usr/lib/mh:  
-#Path for your programs -- this is probably best  
-#left alone.  
-VERBOSE=off #Change this to "on" when you try a new recipe  
-#so that Procmail will log literally every step  
-#it takes. DO NOT LEAVE IT ON, though, because  
-#it creates huge logfiles.  
-# Default Program & file locations  
-MAILDIR=$HOME/Mail #you'd better make sure this directory exists  
-DEFAULT=$HOME/Mailbox #default incoming mailbox for shell2-5 users  
-#on Best Internet. Substitute the correct  
-#setting for your system.  
-LOGFILE=$MAILDIR/procmail.log #Logs message disposition. Recommended -- otherwise  
-#errors are emailed to you. :/  
-FORMAIL=/usr/bin/formail #useful for autoreply recipes. If you  
-#are not on Best Internet, modify this to  
-#your system's copy of formail.  
-SENDMAIL=/usr/sbin/sendmail #useful for autoreply recipes. If you are  
-#not on Best Internet, modify this to point  
-#to your system's copy of sendmail.  
-  
-  
-  
-  
-Procmail is an excellently documented program. Read the man pages for examples  
-on how to set up your .procmailrc file.  
-  
-  
-  
-----  
-  
-!!8. ISDN  
-  
-  
-  
-  
-  
-I am including this although this has nothing to do with qmail or  
-mh. But without a PPP line to your ISP there is no email at all. I had  
-quite a bit of bother to get my ISDN working. The SusE distribution  
-includes a configuration for ISDN, but I wanted something simpler. The  
-stuff here was adapted from Bernhard Hailer's scripts. (Vielen, vielen  
-dank!)  
-  
-  
-The following rc.config loads the necessary modules during  
-initialisation:  
-  
-  
-  
-  
-  
-#!/bin/bash  
-# This is adapted Bernhard Hailer's old script  
-LOCAL_NUMBER="91311234" # tel no. 091311234  
-REMOTE_NUMBER="0911123456" # ISP tel no.  
-LOCAL_IP="192.168..99" # I have dynamic IP so this will do  
-REMOTE_IP="195.112.123.11" # your ISP's gateway  
-DEVICE="ippp0"  
-SYSPATH="/sbin"  
-ISDNCTRL="$SYSPATH/isdnctrl"  
-case "$1" in  
-start)  
-# turn on isdn  
-insmod /lib/modules/2..33/net/slhc.o  
-insmod /lib/modules/2..33/misc/isdn.o  
-sleep 1  
-# load the hisax module  
-insmod /lib/modules/2..33/misc/hisax.o  
-id=Tel0 type=5 protocol=2 irq=10 io=0x300  
-echo "starting isdn4linux"  
-# global  
-$ISDNCTRL verbose  
-$ISDNCTRL addif $DEVICE # create new interface  
-$ISDNCTRL addphone $DEVICE in $REMOTE_NUMBER  
-$ISDNCTRL addphone $DEVICE out $REMOTE_NUMBER  
-$ISDNCTRL eaz $DEVICE $LOCAL_NUMBER  
-$ISDNCTRL l2_prot $DEVICE hdlc  
-$ISDNCTRL l3_prot $DEVICE trans  
-$ISDNCTRL encap $DEVICE syncppp  
-$ISDNCTRL huptimeout $DEVICE 300  
-$ISDNCTRL chargehup $DEVICE off  
-$ISDNCTRL secure $DEVICE on  
-$SYSPATH/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP metric 1  
-$SYSPATH/route add default $DEVICE  
-$SYSPATH/ipppd /dev/ippp0 file /etc/ppp/options.ipppd &  
-$SYSPATH/route del default  
-;;  
-stop)  
-#turn off isdn  
-rmmod hisax.o  
-sleep 1  
-rmmod isdn.o  
-rmmod slhc.o  
-echo "Shutting down isdn4linux"  
-$ISDNCTRL delif ippp0  
-;;  
-*)  
-echo "Usage: $0 (start|stop)"  
-exit 1  
-;;  
-esac  
-  
-  
-  
-  
-I use the following script to dial out, it is called simply isdn on|off  
-  
-  
-  
-  
-  
-#!/bin/bash  
-# This is based on an old script from Bernhard Hailer  
-IP_ADDRESS="195.112.123.11"  
-case "$1" in  
-on)  
-echo "Calling ippp0"  
-/sbin/isdnctrl dial ippp0  
-# the sleep is important as it gives the PPP time to settle down  
-echo "Sleep for 8s for PPP handshake"  
-sleep 8s  
-/sbin/route add default ippp0  
-echo "line open - checking...."  
-# check whether PPP negotiation was successful:  
-set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted`  
-if [[ $4 -gt 0 ];  
-then  
-echo "succeeded."  
-echo "Starting fetchmail daemon"  
-/usr/bin/fetchmail -d 600 -k -v -a -L /var/log/fetchmail  
-echo "Flushing mail queue...."  
-/usr/local/bin/serialmail/maildir2smtp  
-~alias/pppdir alias-ppp- mail.server.ip.no `hostname`  
-else  
-echo "failed!"  
-/sbin/isdnctrl hangup ippp0  
-fi  
-;;  
-off)  
-echo -n "Shutting down fetchmail daemon"  
-/usr/bin/fetchmail --quit  
-/sbin/isdnctrl hangup ippp0  
-/sbin/route del default # and delete route  
-echo "You're off line"  
-;;  
-*)  
-echo -e "\aUsage:"  
-echo "isdn on"  
-echo "isdn off"  
-;;  
-esac  
-  
-  
-The next lot is the ipppd options file /etc/ppp/options.ipppd  
-  
-  
-  
-  
-  
-# Based on:  
-# Klaus Franken, kfr@suse.de  
-# Version: 27.08.97 (5.1)  
-#  
-# This file is copy by YaST from /etc/ppp/ioptions.YaST  
-# to options.<device>  
-user "myuserid"  
-# my system name (only for CHAP!)  
-# name my_system_name  
-# accept IP addresses from peer  
-# use with dynamic IP  
-ipcp-accept-local  
-ipcp-accept-remote  
-noipdefault  
-# try to get IP address from interface  
-# option specific to ipppd (as opposed to pppd)  
-# use only with static IP  
-#useifip  
-# disable all header-compression  
--vj  
--vjccomp  
--ac  
--pc  
--bsdcomp  
-# sometimes you need this:  
-#noccp  
-# max receive unit  
-mru 1524  
-# max transmit unit  
-mtu 1500  
-# If this machine is a server, force authentication by uncommenting one  
-# of the following. However, if this machine is a client, doing this will  
-# prevent a succesful connection! (message "peer refused to authenticate").  
-# So, only uncomment on a server.  
-# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!!  
-#+pap  
-#+chap  
-# if you have problems with handshaking (no response for first  
-# lcp-package) try to decrease the retry-cycle. Default is 3 sec,  
-# try for example 2 sec:  
-# lcp-restart 2  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!9. Sources  
-  
-  
-  
-  
-  
-Required Packages:  
-  
-  
-  
-  
-  
-The net is so dynamic that it is pretty pointless to give sources.  
-but for what it's worth:  
-  
-  
-*Find Qmail, setserial on  
-http://www.qmail.org/  
-  
-*  
-  
-*Find MH on  
-http://www.ics.uci.edu/~mh/  
-  
-*  
-  
-*Find glimpse on  
-http://glimpse.cs.arizona.edu/  
-  
-*  
-  
-*Find Fetchmail on  
-http://sagan.earthspace.net/~esr/fetchmail  
-  
-*  
-  
-*Find Exmh  
-http://www.beedub.com/exmh  
-  
-*  
-  
-*Find Procmail  
-ftp.informatik.rwth-aachen.de/pub/packages/promail  
-  
-*  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!10. Disclaimers  
-  
-  
-The usual no guarantees, no money back, use at your own risk.  
-  
-  
-  
-----  
-  
-!!11. Postscript  
-  
-  
-  
-  
-  
-Has anyone got mh working with Maildir? I have not tried - the  
-principle of not fixing a running system . If you have got it working  
-please mail me your instruction for inclusion in the next revision  
-  
-  
-  
-  
-  
-  
-----  
+Describe [HowToQmailMH ] here.