The FreeBSD Diary |
(TM) | Providing practical examples since 1998If you buy from Amazon USA, please support us by using this link. |
installing qmail --- by rtroy@springsips.com
29 November 1999
|
This article was written by Ryan Troy rtroy@springsips.com.
Thanks Ryan.
Another reference for qmail is at http://www.flounder.net/qmail/. |
OK, we need to turn off sendmail before installing qmail, we are
going to edit the rc.conf file. Below is an example.# vi /etc/rc.conf Now we are in the rc.conf file, search for sendmail you will see something similar to this. sendmail_enable="YES" # Run the sendmail daemon (or NO). sendmail_flags="-bd -q30m" # Flags to sendmail (if enabled) We want to change YES to NO Save the file and exit. To remove sendmail from the sytem we will do this. Note the binary may be at a different location on your machine. [ed: This doesn't actually remove the files, it makes them non-executable, non-readble, non-writeable]. chmod 0 /usr/lib/sendmail chmod 0 /usr/sbin/sendmail chmod 0 /usr/lib/sendmail.mx Move the sendmail binary out of the way. Again this may vary from system to system: mv /usr/lib/sendmail /usr/lib/sendmail.bak mv /usr/sbin/sendmail /usr/sbin/sendmail.bak |
cd /usr/ports/mail/qmail make make install This will download the code from an ftp site, if you haven't already copied the source files into /usr/ports/distfiles. Here we are going to setup some qmail options, so it will boot at startup time and use the ./Maildir mail delivery structure cp /var/qmail/boot/home /var/qmail/rc Now we are editing the boot file to change to ./Maildir format vi /var/qmail/rc Now you will see: #!/bin/sh # Using splogger to send the log through syslog. # Using qmail-local to deliver messages to ~/Mailbox by default. exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Mailbox splogger qmail& We want this, notice the highlighted ./Maildir: #!/bin/sh # Using splogger to send the log through syslog. # Using qmail-local to deliver messages to ~/Mailbox by default. exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir splogger qmail& We want to link the sendmail file (from the qmail installation) to the locations of the old sendmail binary so. ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail Then we edit the inetd.conf file so we can run qmail and pop3 vi /etc/inetd.conf Uncomment this line the following line. This will make let qmail run from inetd. [note this line has been wrapped in this article to make it fit the page] smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd This line will let pop3 run from inetd pop3 stream tcp nowait root /usr/local/libexec/popper popper Now qmail automatically puts a bootup file in /usr/local/etc/rc.d/. The file name is qmail.sh and it will make sure qmail starts when the box gets rebooted. |
Download the the patch here http://www.qmail.org/qpopper2.53.patch.tar.gz Download the qpopper source here ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper2.53.tar.Z [ed: I questioned Troy about this patch. He said it provides qpopper with MAILDIR support. Someone else told me the patch at http://www.flounder.net/qmail/c-client.maildir.module.tar.gz allows PINE and imap2 to read messages from MAILDIRs] Now install the qmail patch and compile qpopper2.53 tar xvzf qpopper2.53.tar.Z tar qpopper2.53.patch.tar.gz Then copy qpopper.patch qpopper2.53 cd qpopper2.53 patch < qpopper.patch Now we have to edit popper.h search for HOMEDIRMAIL you will see this /* Define HOMEDIRMAIL as the string for the mail drop location * if you have the the user mailboxes in the user's home * directory. */ /* #define HOMEDIRMAIL "./mail" */ #define HOMEDIRMAIL "/Mailbox"
/* #define HOMEDIRMAIL "./mail" */ #define HOMEDIRMAIL "/Maildir" Now lets compile qpopper and install it ./configure<make cp popper /usr/local/libexec/ If you're going to be using pine, you will need to find the global pine.conf file mine is located in /usr/local/etc/ |
To make pine see ./Maildir you need to edit pine.conf and
change inbox-path=Maildir, see the example below.vi /usr/local/etc/pine.conf # Path of (local or remote) INBOX, e.g. ={mail.somewhere.edu}inbox # Normal Unix default is the local INBOX (usually # /usr/spool/mail/$USER). inbox-path=Maildir Finished: killall -HUP inetd /usr/local/etc/rc.d/qmail.sh |
Mailbox migration
31 December 2000
|
Troy Bowman wrote in with this suggestion:
|