From c1c58597cd9e3e4f8aef7fd18919a4d84d76942a Mon Sep 17 00:00:00 2001 From: Abhinav Ohri Date: Sun, 7 Dec 2025 14:41:58 +0530 Subject: [PATCH] fix(settings): improve mail test error handling and logging Signed-off-by: Abhinav Ohri --- apps/settings/css/settings.scss | 9 +++++++++ apps/settings/lib/Controller/MailSettingsController.php | 3 +++ apps/settings/src/admin.js | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/settings/css/settings.scss b/apps/settings/css/settings.scss index 782733a76a8..fe9e53f5d82 100644 --- a/apps/settings/css/settings.scss +++ b/apps/settings/css/settings.scss @@ -890,3 +890,12 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { opacity: 1; } } + +#sendtestmail_msg { + &.error { + display: inline-block; + margin-top: 5px; + border-radius: var(--border-radius); + padding: 5px 10px; + } +} diff --git a/apps/settings/lib/Controller/MailSettingsController.php b/apps/settings/lib/Controller/MailSettingsController.php index 13871bc13b6..44db3d371c3 100644 --- a/apps/settings/lib/Controller/MailSettingsController.php +++ b/apps/settings/lib/Controller/MailSettingsController.php @@ -18,6 +18,7 @@ use OCP\IRequest; use OCP\IURLGenerator; use OCP\IUserSession; use OCP\Mail\IMailer; +use Psr\Log\LoggerInterface; class MailSettingsController extends Controller { @@ -38,6 +39,7 @@ class MailSettingsController extends Controller { private IUserSession $userSession, private IURLGenerator $urlGenerator, private IMailer $mailer, + private LoggerInterface $logger, ) { parent::__construct($appName, $request); } @@ -149,6 +151,7 @@ class MailSettingsController extends Controller { } $this->config->setAppValue('core', 'emailTestSuccessful', '0'); + $this->logger->error('Failed sending test email: User ' . $this->userSession->getUser()->getUID() . ' has no email address configured in their account settings'); return new DataResponse($this->l10n->t('You need to set your account email before being able to send test emails. Go to %s for that.', [$this->urlGenerator->linkToRouteAbsolute('settings.PersonalSettings.index')]), Http::STATUS_BAD_REQUEST); } } diff --git a/apps/settings/src/admin.js b/apps/settings/src/admin.js index 66848162d28..b71e336aa35 100644 --- a/apps/settings/src/admin.js +++ b/apps/settings/src/admin.js @@ -89,7 +89,7 @@ window.addEventListener('DOMContentLoaded', () => { .then(() => { OC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent')) }).catch((error) => { - OC.msg.finishedError('#sendtestmail_msg', error) + OC.msg.finishedError('#sendtestmail_msg', error.response.data) }) })