xgrr.de – the whole not the half

things, thoughts and stuff out of life, daily business and computer science


Dovecot as drop-in replacement for Courier

dovecotAll my mailservers are running Courier very successfully. It’s reliable most of the time until now I had almost no complains about anything. TLS/SSL support works fine, even with self signed certificates. The reason why I use Courier is that it has Vpopmail integration which I use in junction with qmail. So thats a mandantory requirement.

Quite a whileago I heard of Dovecot. And I was very pleased to also hear that it brings out of the box support for Vpopmail as user/password backend. Then I forgot about it for quite a while until a week ago when I finally decided that it is time to check it out.

Before I start: It was the best thing that I did to my self for quite a while. The compilation is quite easy and fast (compared to Courier where ./configure is recursing through all modules even you disabled them). I dropped it in a very simple deamontools script and I was good to go.

TLS/SSL support out of the box. Vpopmail support without hassle (I had absolutely no problems with authentication). Only the namespace was something not working. So if you don’t want you customers to reconfigure their clients simply change the namespace configuration of Dovecot (which is very easy) and your replacement is ready.

One small drawback I didn’t look at due to a lack of time is quota. The most functions extensions in Dovecot are implemented using a plugin interface so is quota. I didn’t check out how exactly this is done but judging from the overall experience I would say it should be straight forward.

But let’s talk some numbers. Of course I didn’t run a stress test or benchmark on my production servers but I am subscribed to the Debian mailinglist for quite a while now and have about 24k emails in one directory. So I compared the re-indexing with both Courier and Dovecot and Dovecot was faster and more responsive than Courier during the whole test even when accessing other mailboxes from the same connection.
The webmail system my other key component in my (subjective) test was also a bit faster on initial connection to the mail server and much faster afterwards when browsing through the folders as Dovecot implements some kind of indexing method.

During the next weeks I will migrate to Dovecot completely and remove Courier from my systems as I’m very pleased with this test result. Scripts for configuration and for daemontools are available on request.

qmail: Now “really” Open Source

I couldn’t believe it. I wanted to install daemontools a package programmed by Bernstein primarily to use with qmail. In the qmail “handbook” “Life with qmail” are a lot of tricks to patch this external tools. So even when I don’t install qmail but these external tools I check this site. When I downloaded the netqmail package I was astonished. After a few years of version 1.05 there was 1.06 released. Even better I found a site from Bernstein declaring that all the packages are really Open Source now and NOT prohibited from redistributing with modified source. This is a big happening for the qmail community because all the nice things can be included in one source now without the need of incompatible patches.

Realized a good thing…

When I started playing around with the library tool we have here at HP I browsed a book about qmail. A mailserver I’m involved with for about five years now but still I discovered something very, very nice about the used architecture. The most parts of qmail aren’t able to do anything on the network. This is done by external tools like tcpserver. There are also other programs which enhance tcpserver to use ssl encryption.

For a current project I created a C# program which transmits control information to slaves via ssl. Currently I programmed the network part and all the communication in my executable. But due to limitations of C# on Linux I wasn’t able to use SSL certificate authentication from within C# yet. Maybe I’ll adapt the tcpserver idea to simplify my application…