fix(settings): improve mail test error handling and logging

Signed-off-by: Abhinav Ohri <abhinavohri13@gmail.com>
This commit is contained in:
Abhinav Ohri 2025-12-07 14:41:58 +05:30 committed by backportbot[bot]
parent 2c8ab5f4e7
commit c1c58597cd
3 changed files with 13 additions and 1 deletions

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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)
})
})