I suggest Postfix + Courier-IMAP + mySQL + Squirrelmail
Check out postfixadmin (
http://high5.net/postfixadmin/) -- it is a PHP web interface for the above. They have some interesting HOWTOs there.
Postfixadmin will also work with postgres, and maybe with other IMAP servers like dovecot (
http://dovecot.org/). IIRC, dovecot comes with Fedora Core 2.
As to the DNS server... Most people use BIND (use version 9, not anything earlier!), that is probably installed in your distribution already, but you may also be interested in djbdns (
http://cr.yp.to/djbdns.html).
You should probably read some tutorial on DNS, or better, the documentation that comes with BIND (it should be in /usr//share/doc/bind*)
J.