There’s a plug in somewhere that does exactly this, we used it for a while.
Et Voila
I had a comment on here:
Would it be difficult to implement a function where posts rejected have a reason text field that’s PM’d to the user?
I think that ought to be a feature when rejecting anything from the pre-approval queue in core, in an ideal world a mod would PM the user every time manually but some users are getting knocked back without a reason why and left in the dark somewhat.