Stefan,
We ran into the same problem, need to customize the email subject/body so we can have custom Error/Good email subject/body.
We fought with the field built custom_email jar, and then went to just sending all of our emails through a shell script with all the parameters then build logic within our shell script to assemble our message and send through the system's retrieved DNS email host.
By doing this, we have a very simple if/then logic that determines if the current state is lower than the previous state and then send a "good"/"solved" email.
Depending on the state, that picks up a different text file to inject into the email as the subject and a different one for the body.
An issue we hit when we did this was to determine what to do when the metric when from danger to caution, then from caution to good. Should we send danger-good and also send a caution-error on that one message. We fixed that by adding a custom flag on the parameters that we can then if/then to determine which case it was and react accordingly.
Hope this helps,
Billy