Thought it worth a go
This currently only works on default XF watched content templates.
In theory an add-on could extend the code further to include other templates, e.g. templates from other add-ons.
I like this, because we have access to the receiving user's node permissions at this point. This means the permission is actually content based rather than global. Meaning you could of course set this globally per user group or per user, but if you want even more control, you can prevent message text being sent out on a per node basis. Possible use for that, is, if there is a forum which is private, or deals with sensitive information, you could prevent the message text being sent out for that forum only while messages/threads in other forums could have the text sent out in the email.
I am releasing it here as I have not tested this fully and you would need to exercise caution while testing it yourself. Note it is an Alpha and did not take me very long to write at all so there could be bugs!
If it works ok, I'll look at conversation emails, too, and eventually release in the RM.