From 4c8c4415dd05b3e4f1cfe8aaae012fb4e4d6390c Mon Sep 17 00:00:00 2001 From: gferg <> Date: Wed, 13 Mar 2002 14:05:37 +0000 Subject: [PATCH] update; movd to docbook --- .../Qmail-VMailMgr-Courier-imap-HOWTO.sgml | 1226 +++++++++++++++++ 1 file changed, 1226 insertions(+) create mode 100644 LDP/howto/docbook/Qmail-VMailMgr-Courier-imap-HOWTO.sgml diff --git a/LDP/howto/docbook/Qmail-VMailMgr-Courier-imap-HOWTO.sgml b/LDP/howto/docbook/Qmail-VMailMgr-Courier-imap-HOWTO.sgml new file mode 100644 index 00000000..84bd3b4b --- /dev/null +++ b/LDP/howto/docbook/Qmail-VMailMgr-Courier-imap-HOWTO.sgml @@ -0,0 +1,1226 @@ + + +
+ + +Qmail VMailMgr and Courier-Imap HOWTO + +Dan Kuykendall <dan@kuykendall.org> + +v1.5, 12 March 2002 + + + + This document is about building a mail server that will + support virtual domain hosting and provide smtp, pop3 and imap services, + using a powerful alternative to sendmail. + + + + + +Introduction + + Qmail, VMailMgr and Courier-IMAP are a very powerful and easy to use + solution, but they are not what I would consider easy to setup. + I hope this document helps with that. + + + +What is Qmail and why should I use it? + +Here is the authors (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. + + + +It offers POP3, and IMAP (with the help of Courier-IMAP) so that you can +use any mail client you prefer. + + + +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. + + + + +What is VMailMgr and why should I use it? + +VMailMgr is: + + + +A password checking interface between qmail-popup and qmail-pop3d which +replaces the usual checkpassword, as well as an authentication module +for Courier IMAP, that provide access to the virtual mailboxes by one of +three methods: + + + + IP-based virtual server access (invisible to the POP3 user) + + + + + username-based access (username-virtualuser) + + + + + hostname-based access (virtualuser@virtual.host or virtualuser:virtual.host) + + + + + + +You should use it if: + + +You prefer to have the users manage their own domains email accounts, +and store their email in their own home dir. +(This makes setting up disk space quotas much easier) + + + + +What is Courier-imap and why should I use it? + +Courier-IMAP is: + + + +A server that provides IMAP access to Maildir mailboxes. This IMAP server +does NOT handle traditional mailbox files (/var/spool/mail, and derivatives), +it was written for the specific purpose of providing IMAP access to Maildirs. + + + +You should use it because: + + + +By default Qmail uses the newer more efficient Maildir format for storing email, +and Courier-imap is the only imap server I am aware of that supports Maildir. +So in short, if you use Qmail, and want imap support, you have to use it. + + + + +Description of the components + +The email system you hopefully will get after having read this HOWTO is +composed of several parts, the patched Qmail rpms are key to using this +document. I recommend using the software versions I tried, they will +probably compile without many problems and result in a fairly stable +daemon. If you are courageous, you can try to compile all the +latest-stuff-with-tons-of-new-features, but don't blame me if something +fails ;-). However, you may report other working configurations to be +included in future versions of this document. All of the steps were tested +on a RedHat Linux 7.2 box, so the HOWTO is somewhat specific, but you should +be able to use it for other linux distributions as well. + + + +You do not necessarily have to install in all components. I tried to +structure this HOWTO so that you can skip the parts you are not +interested in. + + + +The document is neither a user manual to Qmail, VMailMgr nor +Courier-imap. Its prime intention is to save email admins some +headaches when installing their server and to do my little +contribution to the linux community. + + + + +Working configurations + + +Though this document is only able to cover a snapshot in time on a limited number of setups, +I am pretty confident that it can help you get your email system up and running. +Combinations that work for me are: + + + + RedHat 7.2, Qmail 1.03+patches-18, VMailMgr 0.96.9, Courier-imap 1.4.3 + + + + + RedHat 6.2, Linux 2.2.14, Qmail 1.03+patches-12, VMailMgr 0.96.6, Courier-imap 0.31 + + + + + Mandrake 7.0, Linux 2.2.13, Qmail 1.03+patches-12, VMailMgr 0.96.6, Courier-imap 0.31 + + + + + Debian Potato, Qmail 1.03, VMailMgr 0.96.9, Courier-imap 1.4.3 + + + + + + + +History + +This document was started on April 18, 2000 by Dan Kuykendall after several installs of Qmail and VMailMgr. +Then even more setups when Courier-imap support was ready. + + + + +New versions + +The newest version of this can be found on my homepage + as SGML source, as HTML and as TEXT. +Other versions may be found in different formats at the LDP homepage . + + + + +Comments + +Comments on this HOWTO may be directed to the author Dan Kuykendall (dan@kuykendall.org). + + + + +Version History + +v0.1 (April 18, 2000) + + + + + + +Preview version, wasn't in HOWTO format. + + + + + + +v1.0 (April 18, 2000) + + + + + +Minor corrections. + + + + +Added details and put into HOWTO format. + + + + + + +v1.1 (April 19, 2000) + + + + + +Minor corrections. + + + + +Restructured RPM install step. + + + + +Added source compile and install steps. + + + + + + +v1.2 (April 19, 2000) + + + + + +Minor corrections. + + + + +Fixed source compile locations and install steps. + + + + +Added source compile and install steps. + + + + + + +v1.3 (April 19, 2000) + + + + + +Minor corrections. + + + + +Built proper SGML version (using LinuxDoc DTD). + + + + + + +v1.4 (April 23, 2000) + + + + + +Updated the Courier-IMAP setup information for new VMailMgr version. + + + + +Switched the license to the GNU FDL. + + + + +Other minor additions and corrections. + + + + + + +v1.5 (March 11, 2002) + + + + + +Updated the Courier-IMAP setup information for new VMailMgr version. + + + + +Updated links to various websites. + + + + +Other minor additions and corrections. + + + + +Switched SGML from LinuxDOC to DocBook. + + + + + + + +Copyrights and Trademarks + +Copyright (c) Dan Kuykendall. +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation + + + +A copy of the license is available at +GNU Free Documentation License. + + + + +Acknowledgements and Thanks + +Thanks to everyone that gave comments as I was writing this. This includes +Bruce Guenter and other members of the vmailmgr-discuss list. + + + + + + +Component installation + + +Preparations + +You have two options + + + + Get and compile source rpms. +This has the benefit of being able to review the source before compiling, +and compiling for your specific setup. + + + + + Or simply get the binary rpms. +This has the benefit of simplicity, and not having to worry about having the +necessary libraries installed. + + + +I recommend using Bruce Guenter's rpm releases, since they are well patched, and +its what I used for building my systems. + + + +Get source rpms + +You will need: + + + + ucspi-tcp-0.88-1.src.rpm - + + + + + ucspi-unix-0.34-1.src.rpm - + + + + + daemontools-0.70-3.src.rpm - + + + + + supervise-scripts-3.3-1.src.rpm - + + + + + qmail-1.03+patches-18.src.rpm - + + + + + vmailmgr-0.96.9-1.src.rpm - + + + + + courier-imap-1.4.3.tar.gz - + + + +For Courier-imap you must build the source rpm from the tar +file (instructions will follow). + + + + +Get binary rpms + +Qmail does not come in binary form. Such packages are explicitly disallowed by +the author of Qmail, and frustrating as it may be, I understand his reasoning. + + +Courier-imap does not come in binary form, unless you want to use the one +I built. If you want mine, visit . + + +VMailMgr does not come in binary form that supports Courier-imap, unless you +want to use the one I built. If you want mine, email me, and I will send it. + + + + ucspi-tcp-0.88-1.i386.rpm - + + + + + ucspi-unix-0.34-1.i386.rpm - + + + + + daemontools-0.70-1.i386.rpm - + + + + + supervise-scripts-3.3-1.noarch.rpm - + + + + + qmail-1.03+patches-18.src.rpm - (*) + + + + + vmailmgr-0.96.9-2.i386.rpm - + + + + + vmailmgr-courier-imap-0.96.9-2.i386.rpm - + + + + + courier-imap-1.4.3.tar.gz - (**) + + + +* For qmail, you must always compile yourself due to the license restrictions. +** For Courier-imap you must build the binary rpm from the tar file (instructions will follow) or email me for my binary rpm. + + + + +Get deb packages + + There are multiple locations for qmail and vmailmgr deb packages. + Courier-imap is part of the normal debian applications. + + + You can get them in the following locations: + + + + - by Hon billy@bagic.net + + + + + - by Ole Barnkob Kaas admin@tet.dk + + + + + - by Gerrit Pape pape@smarden.org + + + + The packages by Hon are current and even include support for courier-imap, + which was a great help for me, so I am going to use a combination of them for my examples. + You can of course choose the ones you want for yourself, but your results may vary. + + + You will need: + + + + ucspi-tcp_0.88-3_i386.deb - + + + + + ucspi-unix_0.34-1_i386.deb - + + + + + The latest daemontools from - + + + + + supervise-scripts_3.3-6_i386.deb - + + + + + qmail_1.03-17_i386.deb - (*) + + + + + vmailmgr_0.96.9-3_i386.deb - + + + + + courier-imap - apt-get courier-imap + + + + + + + +Get tarred sources (for non-RPM users) + +If your system does not have, or you do not use RPMS, you can install from source. + + + + ucspi-tcp-0.88.tar.gz - + + + + + ucspi-unix-0.34.tar.gz - + + + + + daemontools-0.70.tar.gz - + + + + + supervise-scripts-3.3.tar.gz - + + + + + (qmail) release-18.tar.gz - (*) + + + + + vmailmgr-0.96.9.tar.gz - + + + + + courier-imap-1.4.3.tar.gz - + + + + + + +(*) There may be minor differences in these instructions due to the use of the standard +Qmail package. Please review the documentation for Qmail and VMailMgr if any of +the files deviates from my instructions. + + + + + + + +Install support packages + + +Install with RPMS + + +Compiling SRC.RPM's + +Simply run the following command for each package +rpm --rebuild <package.src.rpm> +-Example- + + rpm --rebuild ucspi-tcp-0.88-1.src.rpm + rpm --rebuild ucspi-unix-0.34-1.src.rpm + rpm --rebuild daemontools-0.70-3.src.rpm + rpm --rebuild supervise-scripts-3.3-1.src.rpm + +You may get dependancy errors. If you do then install the package that is being requested using the steps below. +This may happen when you compile daemontools before installing ucspi-tcp. + + + + +Installing RPM's + +If you compiled the source rpms, the binaries will be located +in /usr/src/redhat/RPMS/i386/ or something similar. + + +Simply run the following command for each package +rpm -ivh <location>/<package.i386.rpm> + + +-Example- + + rpm -ivh /usr/src/redhat/RPMS/i386/ucspi-tcp-0.88-1.i386.rpm + rpm -ivh /usr/src/redhat/RPMS/i386/ucspi-unix-0.34-1.i386.rpm + rpm -ivh /usr/src/redhat/RPMS/i386/daemontools-0.70-3.i386.rpm + rpm -ivh /usr/src/redhat/RPMS/i386/supervise-scripts-3.3-1.i386.rpm + + + + + + +Install with debs + +Run the following commands for each package + (as root) + dpkg -i <package.deb> + + +-Example- + + dpkg -i ucspi-tcp_0.88-3_i386.deb + dpkg -i ucspi-unix_0.34-1_i386.deb + dpkg -i daemontools_0.70-1_i386.deb + dpkg -i supervise-scripts_3.3-6_i386.deb + + + + + +Install with source + +Run the following commands for each package + (As non-root user) + tar zxf <package.tar.gz> + cd <newly created dir> + ./configure + make + (As root) + make setup check (for ucspi-tcp and daemontools) + or + make install (for ucspi-unix and supervise-scripts) + + +-Example- + + (As non-root user) + tar zxf supervise-scripts-2.4.tar.gz + cd supervise-scripts-2.4 + ./configure + make + (As root) + make setup check or make install + + + + + + + +Install Qmail + + +Install with RPMS + + +Compiling SRC.RPM's + + +After installing the support packages, + +Simply run the following command: +rpm --rebuild <package.src.rpm> + + +-Example- + + rpm --rebuild qmail-1.03+patches-18.src.rpm + + + + + +Installing RPM's + + +After compiling the source rpms, the binaries will be located +in /usr/src/redhat/RPMS/i386/ or something similar. + + +Simply run the following command for the qmail package +rpm -ivh <location>/<package.i386.rpm> + + +-Example- + + rpm -ivh /usr/src/redhat/RPMS/i386/qmail-1.03+patches-18.i386.rpm + + + + * note start * + - Remove sendmail and any dependant applications prior to installing Qmail + - by running the following command for each package + - rpm -e <packagename>* + - + - On my system I had to remove sendmail, so I typed + - rpm -e sendmail + * note end * + + + + + +Install with debs + +Run the following commands for each package + (as root) + dpkg -i <package.deb> + + +-Example- + + dpkg -i qmail_1.03-17_i386.deb + + + + + +Install with source + +Run the following command + (As non-root user) + tar zxf <package.tar.gz> + cd <newly created dir> + (Now read the INSTALL file and follow the steps to install Qmail) +-Example- + + (As non-root user) + tar zxf release-18.tar.gz + cd release-1.03 + vi INSTALL (Read and follow steps) + + + + + + +Install Courier-imap + + +Install with RPMS + + +Compiling SRC.RPM's + + +Build the courier-imap rpms from the tar file +rpm -ta courier-imap-1.4.3.tar.gz + + + * note start * + - This errors out if you compile as root, but if your not root you + - wont have permissions to /usr/src/redhat. You will want to build as a + - non-root user, so create a ".rpmmacros" file (for rpm v3 and later) in + - your home directory containing the line "%_topdir /path/to/home/redhat". + - Then create your own "redhat" directory containing all the subdirs that + - /usr/src/redhat contains. + - You should never build RPMs as root unless you have to. + * note end * + + +* I will mention again, that I have built the binaries, and you can get them at * +* . * + + + + + +Installing RPM's + +After compiling the source rpms, the binary will be located +in /usr/src/redhat/RPMS/i386/ or something similar. + + +Simply run the following command for each package + rpm -ivh <location>/<package.i386.rpm> + + +-Example- + + rpm -ivh /usr/src/redhat/RPMS/i386/courier-imap-1.4.3.i386.rpm + + + + + + +Install with debs + +Run the following commands for each package + (as root) + apt-get <package.deb> + + +-Example- + + apt-get courier-imap + + + + + +Install with source + +Run the following command + (As non-root user) + tar zxf <package.tar.gz> + cd <newly created dir> + ./configure + make + (As root) + make install + + +-Example- + + (As non-root user) + tar zxf courier-imap-1.4.3.tar.gz + cd courier-imap-1.4.3 + ./configure + make + (As root) + make install + + + + + + + +Install VMailMgr + + +Install with RPMS + + +Compiling SRC.RPM's + +There is a problem compliling VMailMGR on RedHat 7.x distros (and maybe other new ones as well). +To solve this you must edit the source files +These files need to have an #include <string.h> added + +lib/misc/exec.cc +lib/misc/keystrlist.cc +lib/misc/strlist.cc +lib/mystring/append.cc +authenticate/authvmailmgr.cc + + +The following needs to have an #include <stdlib.h>: + +authenticate/vauthenticate.cc +authenticate/checkvpw.cc + +The copies I have on are already patched. + + +Simply run the following command +rpm --rebuild <package.src.rpm> +-Example- + + rpm --rebuild vmailmgr-0.96.9-1.src.rpm + + + + + +Installing RPM's + + +If you compiled the source rpm, the binaries will be located +in /usr/src/redhat/RPMS/i386/ or something similar. + + +Simply run the following command for each package +rpm -ivh <location>/<package.i386.rpm> + + +-Example- + + rpm -ivh /usr/src/redhat/RPMS/i386/vmailmgr-0.96.9-1.i386.rpm + rpm -ivh /usr/src/redhat/RPMS/i386/VMailMgr-daemon-0.96.6-1.i386.rpm + rpm -ivh /usr/src/redhat/RPMS/i386/vmailmgr-courier-imap-0.96.9-2.i386.rpm + + + + + + +Install with debs + +Run the following commands for each package + (as root) + dpkg -i <package.deb> + + +-Example- + + dpkg -i vmailmgr_0.96.9-3_i386.deb + + + + + +Install with source + +There is a problem compliling VMailMGR on RedHat 7.x distros (and maybe other new ones as well). +To solve this you must edit the source files +These files need to have an #include <string.h> added + +lib/misc/exec.cc +lib/misc/keystrlist.cc +lib/misc/strlist.cc +lib/mystring/append.cc +authenticate/authvmailmgr.cc + + +The following needs to have an #include <stdlib.h>: + +authenticate/vauthenticate.cc +authenticate/checkvpw.cc + +The copies I have on are already patched. + + +Run the following commands + (As non-root user) + tar zxf <package.tar.gz> + cd <newly created dir> + ./configure + make + (As root) + make install +-Example- + + (As non-root user) + tar zxf vmailmgr-0.96.9.tar.gz + cd vmailmgr-0.96.9 + ./configure + make + (As root) + make setup check or make install + +That should do it. + + + + + + + +Putting it all together + + +Basic Qmail config + + +You will need to add your domains to the /var/qmail/control/virtualdomains +file in the following format as is normal with qmail and VMailMgr. + domain1.com:user1 +For more detailed setup and config documentation visit the Qmail website + and the VMailMgr website + + + + +Tell Qmail to use VMailMgr for authentication + +By default qmail uses checkpassword for authentication, to tell Qmail +to use VMailMgr for authentication type the following command: + + echo checkvpw > /var/qmail/control/checkpassword + + + + + +Setup Courier-imap for VMailMgr + +Copy the VMailMgr auth libs to courier's directory. +If you installed from RPM, then the vmailmgr-courier-imap RPM will have done this for you. +Otherwise use this command: + + cp /usr/bin/authvmailmgr /usr/lib/courier-imap/libexec/authlib/ + + + +Edit /usr/lib/courier-imap/etc/imapd +and add authvmailmgr as the only entry in AUTHMODULES + + +For more detailed setup and config documentation visit the Courier-imap +website + + + + +Setup virtual domain with VMailMgr + + +With the user account that will be managing the domain go to their home dir +and type: + + vsetup + + + +This will setup the users home dir with the necessary structure to handle +incoming email. You will probably want to create a email account by typing + + + + vadduser emailuser + + + +For more detailed setup and config documentation visit the VMailMgr website + + + + +Starting the daemons + + + Starting the Qmail daemon. Qmail installs itself to autostart by some mysterious (to me) way. + If you like init scripts you can get Larry Doolittle's (ldoolitta@ajlab.org) + init.d script at + If you have the Larry's init.d script just do this. + + /etc/rc.d/init.d/qmail start + + + + +Start VMailMgr daemon + + /etc/rc.d/init.d/vmailmgrd start + + + + +Start Courier-imap damon + + /etc/rc.d/init.d/courier-imap start + + + + + + +Some considerations left + +Qmail and the Maildirs may cause some email apps that run locally to +not work. Visit the Qmail website for details +on email apps that have been patched to work with Maildirs. + + +Courier-imap is not as widely used as Cyrus or UWash imap servers. +As such, you may suffer from minor incompatibilities. Courier-imap is +extremely well written, and tries to comply with the imap definition +even if it means some imap clients wont work well. For details visit +the Courier-imap website . + + + + +Mail clients + +With the solution you should now have setup you will need to know that user accounts will be user@domain.com +Netscape does not like this, so for netscape use user:domain.com + + +I would like to suggest that you also checkout phpGroupWare at . +I have built in support for vmailmgr into it already and it can give you an end result of a full Groupware solution to fend of MS Exchange/Outlook or Lotus Domino. + + +If you decide to use a web based mail client, you will probably want to adjust courier-imaps MAXPERIP setting. By default it is 4, which is a bit low. +Bump it up to something more sensible, like 10 - 50. Otherwise our webmail users will have problems connecting. This setting is in /usr/lib/courier-imap/etc/imapd. + + + + +Known bugs + +None yet. + + + + +The final word + +Im tired, and wonder if anyone will ever use this, but I'm happy its done. +I'm sure if you have read this far your tired too. Well, all I can hope is +that you have Qmail, VMailMgr and Courier-imap working. If so, Enjoy! +If not, bummer! + + +O.K. readers, you're done for today. Feel free to send me your +feedback, eternal gratitude, flowers, ecash, cars, oil sources etc. + + + +
+ +