The lines changed may have already achieved this previously. I could not reproduce seeing any revealing details in the errors I provoked. However, it is now ensured that no detail of the exception is logged to the user and they just get told to contact the admin. The exception is logged to the system logs with the injected logger instance. Currently it is only using the implied
__toString() method of the exception, which should provide adequate detail to admins. However, there might be better detail that could be logged here. Maybe we want to log the message with
$ex->getMessage() instead like was previously fed back to the user.
Also, I noticed that
Piwik::translate was used instead of using an injected
Translator instance. @tsteur mentioned that we prefer to use DI, but there are a few instances of
Piwik::translate in this file, so I left it for now, also because there it uses the injected class anyway and it might be easier to understand for a significant amount of users/developers.
When this error happens, please check your SMTP settings.
Also tell user where to change settings.
Catch the specific exception and show above error message.
No need to merge as solution is documentation. See issue.