Description
Currently EmailServiceDefault simply logs any exceptions and returns a simple true/false to indicate if a failure. It would be better if it could instead throw an exception.
Also, for testing it would be useful to allow the email to be "diverted" to some override location. That way, the entire setup of smtp server etc can be tested, but with the assurance that the email won't be sent out to some customer accidentally.