I particularly like Exim4's configuration on Debian. It provides IMHO very reasonable defaults, but allows overriding of most of these defaults using a mechanism similar to hooks. In that sense, the configuration is more like a framework.
This allows me to easily add my own configuration, while also not touching the default configuration as shipped by the Maintainer (and thereby avoiding nagging about a changed conffile [1]).
If using the split config format (ie, /etc/exim4/conf.d), it's not that complicated figuring out how to to a particular thing.
For example, [2] is the folder that contains Exim's ACL configuration. [3] is the file pertaining to SMTP's RCPT TO command. The individual features, and how to enable/disable/modify them, are well documented and the steps are usually trivial.
I don't use it anymore, but I remember that in order to set up a mail system with purely virtual users backed by a PostgresSQL database, I only needed to add a half-dozen or so of files, each containing small configuration snippets.
(Exim configuration is still complicated of course, to say the least. Debian just makes it a lot simpler.)
If you're looking to quickly get up and running, there's pawnmail.com lets you host your emails for free and the guy who runs the server promises not to read your email ;)
I actually run gilani.me through ZohoMail's free options, I dropped pawnmail because it didn't offer DKIM, and mail-tester.com was giving my outbound emails a score of 2, which means it was very surprising that they ever got delivered, at all!
Postfix and Dovecot work well together (and that's my setup). Though it requires quite a reading to get Postfix configured in such a way that your server will stand attacks from the internet.
I particularly like Exim4's configuration on Debian. It provides IMHO very reasonable defaults, but allows overriding of most of these defaults using a mechanism similar to hooks. In that sense, the configuration is more like a framework.
This allows me to easily add my own configuration, while also not touching the default configuration as shipped by the Maintainer (and thereby avoiding nagging about a changed conffile [1]).
If using the split config format (ie, /etc/exim4/conf.d), it's not that complicated figuring out how to to a particular thing.
For example, [2] is the folder that contains Exim's ACL configuration. [3] is the file pertaining to SMTP's RCPT TO command. The individual features, and how to enable/disable/modify them, are well documented and the steps are usually trivial.
I don't use it anymore, but I remember that in order to set up a mail system with purely virtual users backed by a PostgresSQL database, I only needed to add a half-dozen or so of files, each containing small configuration snippets.
(Exim configuration is still complicated of course, to say the least. Debian just makes it a lot simpler.)
[1] https://raphaelhertzog.com/2010/09/21/debian-conffile-config...
[2] https://sources.debian.net/src/exim4/4.87-3/debian/debconf/c...
[3] https://sources.debian.net/src/exim4/4.87-3/debian/debconf/c...