I'm looking to replace our aging mail server and I've decided that I want to change the SMTP server software we use. We currently run exim. Over the years I've worked with a number of other MTAs (namely Postfix and Sendmail), and in my opinion, they all suck as far as configuration is concerned: they're all arcane, fiddly and inelegant, at least compared to the other mission-critical daemons I have to work with on a daily basis (Apache, MySQL, Dovecot, etc).
Our mail server does not handle much volume (we use MessageLabs to filter inbound mail: I am sure you will appreciate the pleasure that can be had from blocking access to tcp/25 on your firewall) so I don't need something that's high performance. Spam and anti-virus are also not too important, again thanks to MessageLabs. What I really want is a simple, terse configuration syntax that doesn't require arcane knowledge to read and write. Something that can accept mail for n domain names, and deliver to our IMAP server according to a simple mapping.
Any suggestions?
I won't try and sell you too hard on sticking with Exim, but it really seems to be about the best FOSS SMTP server out there. Of the SMTP servers you named, Exim is the only one that I'll touch.
The configuration is somewhat arcane, but that comes with the flexibility needed to handle the variety of deployment scenarios it gets thrown at. Perhaps your exim config has accumulated some "cruft" over time making it seem overly complex. For what you describe, assuming you don't want alias functionality, RBL lookups, anti-virus, etc, you really could have a pretty simple configuration.
My main production exim install handles delivery for my company's domain to one local recipient's Maildir, forwarding to two (2) remote recipients, and my personal domain name. The configuration is 289 lines long and I could easily strip out the comments and functionality for blacklisted recipients, RBL lookups, archiving incoming/outgoing email to BSMTP, handling my personal domain name, and relaying only company email to DynDNS MailHop Outbound and drop that to around 200 lines. That seems pretty terse to me. I could drop more if I took out authentication to my partners' SMTP servers and alias functionality.
BTW: When you say "deliver to our IMAP server according to a simple mapping", are you talking about delivering to local Maildirs, or what?
Postfix comes ready to run out of the box now for most distros with limited configuration required. If your delivery server is the same for all domains, configuration will be limited mostly to adding domains to your "destination domains". If you need to deliver to an internal server, just set it up as a "relay host" with the destination machine's IP in brackets [10.0.1.50] for example).
Also, there is a Webmin panel for Postfix which takes a lot of the tedium of editing text files away.
Were I in your position, I would seriously consider installing webmin on top of your favorite linux distribution. CentOS + webmin would be a slam dunk for this application.
Webmin abstracts the sendmail.cf file, and all its vagaries into an easy to use, well documented interface.