
As I said a month ago, my main server
Delmak was dying. Well it still runs (proof: you could read this blog some days ago).
Thanks to friends I host for free, they've kindly given enough money to buy a brand new server (C2D E8400, 4 GB RAM, 2x500 GB RAID 1) in order to replace the good old
Delmak.

This new box has been named
Prometheus after the only
BC-303 class battleship ever built.
Delmak was used to mainly run as a Web, mail and databases server. I decided to do use this server switch to change the server software I use.
The first mail server I setup was based on
Exim 3,
courier- imap,pop -ssl, with userdb files. That was... rough. Later I switched to
Exim 4, using
vexim, and
MySQL as a back-end. That was something like 3 years ago I guess. Since then I never really touched that back. I added
spamassassin and
clamav filtering some months after, because some users asked for it. That's all.
So this week, I decided to switch away from this configuration. I do not understand
Exim anymore anyway, so I decided to use
Postfix which I often use and administrate at work. Obviously, I also now use
PostgreSQL as database back-end, since it rocks, and since
Postfixadmin supports it. By the way, be aware that the Debian package of
postfixadmin is crappy (the configuration file is readable by anyone by default, with the database password in it).
I also set up
postgrey which is quite nice and efficient.
Well, then was time for
amavisd-new installation, but I did not do it. Seriously,
amavisd-new configuration is a bloody mess, as the language it is written in (yes,
Perl).
So I switched to
dspam which I heard is nice. Well, it seems to be for now, since it even supports
clamav daemon usage directly, which is very very nice because that means I do not have to set up another thing for that.
I also switched from
courier to
dovecot, mainly because the latter seems to be faster and lighter. I then changed the default
virtual_transport to
Dovecot LDA. The main advantage of this is that the LDA updates the
Dovecot index while delivering. It also supports quota, which I do not use and plug-ins, like the
Sieve language for mail filtering.
So I decided to change my
procmailrc to a new Sieve filter. My
procmailrc is quite small since I only use regex to match lists and some mail address, so it has only something like 12 rules.
And well, I did not do it since I discovered after some googling that
Dovecot implementation of
Sieve is grabbed from
Cyrus which does not support variables for now. That means that the following
procmailrc code:
:0:
* ^X-Mailing-List: <debian-.+@lists.debian.org>
* ^X-Mailing-List: <debian-\/[^@]+
list-debian-$MATCH/
which will translate to:
require [ "regex", "variables", "fileinto" ]
if header :regex "X-Mailing-List" "<debian-(.+)@"
fileinto "lists.debian.$ 1 ";
stop;
But that won't work since
Dovecot Sieve implementation does not support "variables". Well, since I'm not ready to list all the lists I'm subscribed to,
Sieve is a no-go for now. I'll stick with
procmail.