I recently decided to setup my own email server.

After testing various email systems on virtual machines I decided on postfix + dovecot. I also decided to use MySQL/mariadb as the user/email database as it supports SHA-512 (bcrypt soon?).

I had previously worked on servers with exim + spamassassin + clamav but the memory usage always seemed quite high (especially with clamav scanning zip attachments). So I looked around and found dspam was an alternative, from what I had read it seemed as much a resource hog as spamassassin. Then I found postscreen.

Here is a graph of memory usage from 15th Feb:


Hardly any memory used, this was after the server had been running for a week.

Base packages: postfix, dovecot, mariadb
Antispam: postscreen, header checks
Protocols: IMAPS, SMTP (TLS, SASL)
Administration: Python CLI Tools*
Other: SPF + DKIM (signing and checking)

*I wrote my own Python CLI Tools for administration of domains, mailboxes and aliases (will hopefully be releasing these on github soon)