Your requirements: -IPv6 capable system (no need to have IPv6, but libc must know inet_pton and friends) -ucspi-tcp including IPv6 patches (get them at http://www.fefe.de/ucspi/) -libowfat (>=0.22, get from http://www.fefe.de/libowfat/) -cdb.a (i.e. from vpopmail or qmail, both should worked) -qmail -openssl -vpopmail (optional) How to install: 1. Install qmail, apply all the patches you want. Ignore any problems with qmail-smtpd, it will not be needed. If you plan to use Qremote you can also ignore problems with qmail-remote 2. Install vpopmail. If you don't want vpopmail you can't use all the nice features like immediately rejecting nonexistent users and per-user filter settings. Before building vpopmail change to vpopmail directory and apply the vpopmail patch: patch -p1 -i ../your/path/to/Qsmtpd/doc/vpopmail.diff This patch will modify vadddomain/vadduser to create the user/domain directories 755 instead of 750 so that Qsmtpd can look into them. The Maildirs will stay 700. 3. Download libowfat 4. Change into libowfat directory and run patch -p1 -i ../your/path/to/Qsmtpd/doc/libowfat.diff This patch adds some dns lookup functions to libowfat. They are the same already in libowfat but use the normal C style parameters instead of DJBs stralloc stuff. 5. Build libowfat. IMPORTANT: If you use dietlibc to build libowfat you must modify CC in Qsmtpd/Makefile to use dietlibc, too! 6. Make sure openssl is installed including the header files and that "-lssl -lcrypto" work. If the openssl libraries are in some special directories change LDFLAGS in Qsmtpd/Makefile to include this path (add -L/path). 7. Now build Qsmtpd. If you are on an IPv4-only node you may want to block all mails coming from domains with only IPv6 MX entries. In this case add "-DIPV4ONLY" to CFLAGS in Qsmtpd/Makefile 8. Edit trunk/Makefile and change CDBPATH to a directory where cdb.a is (using the one from vpopmail/cdb is ok). 8a.Look into trunk/patches/ to see if you might need some of these for some special purposes (like sending mail to aol.com). Apply everything you need. 9. cd trunk; make && make install 10. Change your startup scripts to run Qsmtpd instead of qmail-smtpd, the command line will stay the same 11. Make sure your /home/vpopmail/domains (or whereever you put vpopmail) and the domain/user directories are 755. Make sure every .qmail-default is mode 644. 12. Install IPv6 enabled tcpserver. Normally just build and install ucspi-tcp with the IPv6 diff. You can use Qsmtpd/doc/tcpserver.diff also. When you set the banner with tcpservers -b option it will set BANNER environment variable so that Qsmtpd will not send it's own banner. You can use this if you want a custom banner or if you want to reduce latency, tcpserver will fork Qsmtpd after all his lookups are done, if you have a slow connection this allows the client to send his EHLO/HELO earlier. 13. Test it. echo nobounce > /home/vpopmail/domains/one.of.your.domains/user/filterconf telnet yourmachine 25 EHLO mybox.com MAIL FROM:<> RCPT TO: QUIT The reply to the RCPT TO: should tell you that this user does not accept bounce messages. 14. If you want qmail-smtpd to accept IPv6 connections you probably also want to send on IPv6 links. First move qmail-remote out of the way, then link Qremote: mv /var/qmail/bin/qmail-remote /var/qmail/bin/qmail-remote.orig ln -s /var/qmail/bin/Qremote /var/qmail/bin/qmail-remote