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.25, get from http://www.fefe.de/libowfat/) -qmail -openssl -vpopmail (optional) -cmake (http://www.cmake.org) to generate the build files 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. Build libowfat. IMPORTANT: If you use dietlibc to build libowfat you must tell CMake to use a compiler that links against dietlibc, too! 6. Make sure openssl is installed including the header files and can be found by CMake. 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=On" to CMake command line 8. 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; mkdir build && cd build && cmake .. && 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. chmod 755 /var/qmail/queue /var/qmail/queue/lock This allows Qsmtpd to check the free disk space on the queue filesystem. 14. 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. 15. 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