thank God all of this you mentioned can be built up in modules. http://wiki.apache.org/spamassassin/UsingSQL this is for sa with mysql. built it accordingly; very nice. Enables you doing per user/per domain/global settings. I guess it's what u're looking for. With a bit of shell/perl scripting you even can create per user quarantine inboxes. http://www.workaround.org/articles/ispmail-sarge/ this is perfectly what you are looking for when using postfix/some pop3 deamon with mysql. Vmailboxes with usernames and passwords, alias tables, forward tables, all stored in mysql tables. wonderful. Helped me a lot.
For antivirus there surely are howtos, too. But as I use Antivir and not clamav I cannot tell you anything 'bout that. Good Luck Philipp