I wish mailers had a real programming language
I really wish that the authors of mail transport agents would give me an actual language to program the behavior of their mailers. Well, not the low-level behavior; what I want is a high-level language I can use to cleanly write out the logic of what should happen to messages, the sequence of checks and actions and destinations that a particular message should go through.
I feel that our message flow logic is not particularly complicated, when written out directly. The problem is that as far as I can see, current mailers don't let me actually do that; instead I am forced to glue the logic together indirectly through the mailer's (limited) configuration system. Effectively the mailer's configuration system becomes an extremely peculiar assembly language.
This is more than an annoyance; it is a danger. When the logic is only expressed indirectly, it's harder to see what it actually is and thus harder to make sure that your configuration really works the way you want it to. (This should be no surprise, since it is one of the general drawbacks of assembly languages.)
This is all the more frustrating with mailers like exim, which already more or less have an embedded programming language, just at too low a level to do this. They're so close yet so far, and at the same time the best choice I have.