Skip to content
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
64 lines (51 sloc) 3.35 KB
Your requirements:
-IPv6 capable system (no need to have IPv6, but libc must know inet_pton and friends)
-support for openat()
-ucspi-tcp including IPv6 patches (get them at
-libowfat (>=0.28, get from
-qmail (netqmail is fine)
-vpopmail (optional)
-CMake (>= 2.8.6, get it from 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 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. Make sure Qsmtpd can read the free space in the queue:
chmod 755 /var/qmail/queue
13. Install IPv6 enabled tcpserver. Normally just build and install ucspi-tcp with the IPv6 patch. 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.
If you are compiling Qsmtpd with the IPV4ONLY option set you may omit the IPv6 patch. You may still use it and
everything will work as expected. If you use IPv6 you _must_ use it.
14. Test it.
echo nobounce > /home/vpopmail/domains/
telnet yourmachine 25
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
You can’t perform that action at this time.