FIX Log any email exceptions gracefully

If an email send() generates any errors such as invalid template or API exceptions then capture the error in the logs rather than displaying the error to the user.
This commit is contained in:
Will Rossiter 2021-06-22 12:12:42 +12:00
parent e2f4378fff
commit 18eccb65d4
No known key found for this signature in database
GPG Key ID: 7FD2A809B22259EF

View File

@ -2,6 +2,7 @@
namespace SilverStripe\UserForms\Control; namespace SilverStripe\UserForms\Control;
use Exception;
use PageController; use PageController;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use SilverStripe\AssetAdmin\Controller\AssetAdmin; use SilverStripe\AssetAdmin\Controller\AssetAdmin;
@ -429,9 +430,18 @@ JS
} }
$email->setBody($body); $email->setBody($body);
try {
$email->sendPlain(); $email->sendPlain();
} catch (Exception $e) {
Injector::inst()->get(LoggerInterface::class)->error($e);
}
} else { } else {
try {
$email->send(); $email->send();
} catch (Exception $e) {
Injector::inst()->get(LoggerInterface::class)->error($e);
}
} }
} }
} }