From a quick review I see the code has problems.
E.g: Configuration.getChild NEVER returns null (read the javadocs), so the check to see if the child exists or not should be made differently.
I have no time to fix it and check the correctness of the code now.
As you can see this is assigned, don't ask for updates to issues: we have hundreds of issues, if everyone asked for updates I would pass my time reading comments .
Don't take me wrong but it's not as easy as to apply and commit: I write tests for new features, we should add documentation and comments in the config.xml to let the user know he can use 2 different helo handlers. If we add this code as is, it will serve no one but you and me and it will be one more class in our repository to be mantained.
Please, if you have time, check it works with no "checkValidHelo" child, add unittests to the SMTPServerTest to test both behaviours and add comment in the default config.xml. We can keep the HelpCmdHandler name and simply add the feature to that class (disabled by default).