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

Signed-off-by: Abhinav Ohri <abhinavohri13@gmail.com>
pull/56931/head
Abhinav Ohri 2025-12-07 14:41:58 +07:00
parent bbca4fe56e
commit babab821a7
7 changed files with 18 additions and 6 deletions

File diff suppressed because one or more lines are too long

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/variables.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFUC,0BACC,WAKF,OACC,WAID,4BE2BC,2CFvBD,mBEuBC,kDFnBD,qBEmBC,yCFfD,0BEeC,wCFXD,oEEWC,2CFPD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,uEACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,sBACA,mBACA,gBAGD,mGACC,4BACA,0BACA,WAMF,oBACC,kBACA,wCACC,0BAIF,aACC,oBACA,4CACA,kFACA,8CACA,wCACA,2CACA,8CACA,6CACA,mBACA,yCAEA,sCAEC,oDAGD,+CAEC,6DACA,oDAGD,6BACC,qCACA,WACA,YAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,qBACA,UACA,oBACA,YAKH,qCACC,kBACA,wBACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,sBACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,oCACA,qCACA,6CACA,SACA,gBACA,YAEA,8CAEC,+CACA,2CAEA,0FACC,WAIF,uCACC,0BACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,kCAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,sBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,oBACA,wBACA,qBAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,qBACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,yBAGD,oDACC,WACA,YACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,mBAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,UACA,uBACA,4CACA,iBACA,mBAGD,cACC,4CACA,UACA,uBACA,iBACA,mBAKD,gBACC,0BACA,cACA,eACA,uBACA,gBAGD,wBACC,0BAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,wBACA,cAIF,2BACC,mBAMA,oBACC,mBACA,sBACA,WAGD,gCACC,0BAIA,gGACC,cAOH,SACC,gBAEA,0BACC,4CAID,YACC,oBACA,mBACA,uBACA,eACA,iBACA,gBACA,aAEA,uBACC,aACA,mBACA,uBACA,oCACA,qCACA,yDACA,sBACA,oCAKF,WACC,kBACA,kBACA,oCACA,gBAKF,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAIA,sBACC,aAGD,YACC,oBAGD,kBACC,0BAGD,yBACC,0BAGD,sBACC,0BAGD,oCACC,uBAIF,yCACC,uBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,yBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,eAGD,+EAEC,YAIF,yBACC,mCACC,YACA,iBACA,cACA,iDAIF,eACC,WAGD,SACC,yBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,yBACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAGD,SACC,UAGD,eACC,oCACA,wBAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"}
{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/variables.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFUC,0BACC,WAKF,OACC,WAID,4BE2BC,2CFvBD,mBEuBC,kDFnBD,qBEmBC,yCFfD,0BEeC,wCFXD,oEEWC,2CFPD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,uEACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,sBACA,mBACA,gBAGD,mGACC,4BACA,0BACA,WAMF,oBACC,kBACA,wCACC,0BAIF,aACC,oBACA,4CACA,kFACA,8CACA,wCACA,2CACA,8CACA,6CACA,mBACA,yCAEA,sCAEC,oDAGD,+CAEC,6DACA,oDAGD,6BACC,qCACA,WACA,YAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,qBACA,UACA,oBACA,YAKH,qCACC,kBACA,wBACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,sBACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,oCACA,qCACA,6CACA,SACA,gBACA,YAEA,8CAEC,+CACA,2CAEA,0FACC,WAIF,uCACC,0BACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,kCAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,sBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,oBACA,wBACA,qBAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,qBACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,yBAGD,oDACC,WACA,YACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,mBAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,UACA,uBACA,4CACA,iBACA,mBAGD,cACC,4CACA,UACA,uBACA,iBACA,mBAKD,gBACC,0BACA,cACA,eACA,uBACA,gBAGD,wBACC,0BAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,wBACA,cAIF,2BACC,mBAMA,oBACC,mBACA,sBACA,WAGD,gCACC,0BAIA,gGACC,cAOH,SACC,gBAEA,0BACC,4CAID,YACC,oBACA,mBACA,uBACA,eACA,iBACA,gBACA,aAEA,uBACC,aACA,mBACA,uBACA,oCACA,qCACA,yDACA,sBACA,oCAKF,WACC,kBACA,kBACA,oCACA,gBAKF,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAIA,sBACC,aAGD,YACC,oBAGD,kBACC,0BAGD,yBACC,0BAGD,sBACC,0BAGD,oCACC,uBAIF,yCACC,uBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,yBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,eAGD,+EAEC,YAIF,yBACC,mCACC,YACA,iBACA,cACA,iDAIF,eACC,WAGD,SACC,yBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,yBACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAGD,SACC,UAGD,eACC,oCACA,wBAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE,WAKH,wBACC,qBACA,eACA,mCACA","file":"settings.css"}

@ -789,3 +789,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;
}
}

@ -19,6 +19,7 @@ use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\Mail\IMailer;
use Psr\Log\LoggerInterface;
class MailSettingsController extends Controller {
@ -39,6 +40,7 @@ class MailSettingsController extends Controller {
private IUserSession $userSession,
private IURLGenerator $urlGenerator,
private IMailer $mailer,
private LoggerInterface $logger,
) {
parent::__construct($appName, $request);
}
@ -150,6 +152,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);
}
}

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

@ -1,2 +1,2 @@
(()=>{"use strict";var e,s={69129:(e,s,i)=>{var a=i(19051),n=i(63814),d=i(74692),l=i.n(d);window.addEventListener("DOMContentLoaded",()=>{l()("#loglevel").change(function(){l().post((0,n.Jv)("/settings/admin/log/level"),{level:l()(this).val()},()=>{OC.Log.reload()})}),l()("#mail_smtpauth").change(function(){this.checked?l()("#mail_credentials").removeClass("hidden"):l()("#mail_credentials").addClass("hidden")}),l()("#mail_smtpmode").change(function(){"smtp"!==l()(this).val()?(l()("#setting_smtpauth").addClass("hidden"),l()("#setting_smtphost").addClass("hidden"),l()("#mail_smtpsecure_label").addClass("hidden"),l()("#mail_smtpsecure").addClass("hidden"),l()("#mail_credentials").addClass("hidden"),l()("#mail_sendmailmode_label, #mail_sendmailmode").removeClass("hidden")):(l()("#setting_smtpauth").removeClass("hidden"),l()("#setting_smtphost").removeClass("hidden"),l()("#mail_smtpsecure_label").removeClass("hidden"),l()("#mail_smtpsecure").removeClass("hidden"),l()("#mail_smtpauth").is(":checked")&&l()("#mail_credentials").removeClass("hidden"),l()("#mail_sendmailmode_label, #mail_sendmailmode").addClass("hidden"))});const e=function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),a.Ay.post((0,n.Jv)("/settings/admin/mailsettings"),l()("#mail_general_settings_form").serialize()).then(()=>{OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))}).catch(e=>{OC.msg.finishedError("#mail_settings_msg",e)}))},s=function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(s):(OC.msg.startSaving("#mail_settings_msg"),a.Ay.post((0,n.Jv)("/settings/admin/mailsettings/credentials"),l()("#mail_credentials_settings").serialize()).then(()=>{OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))}).catch(e=>{OC.msg.finishedError("#mail_settings_msg",e)}))};l()("#mail_general_settings_form").change(e),l()("#mail_credentials_settings_submit").click(s),l()("#mail_smtppassword").click(()=>{"text"===(void 0).type&&"********"===(void 0).value&&((void 0).type="password",(void 0).value="")}),l()("#sendtestemail").click(e=>{e.preventDefault(),OC.msg.startAction("#sendtestmail_msg",t("settings","Sending…")),a.Ay.post((0,n.Jv)("/settings/admin/mailtest")).then(()=>{OC.msg.finishedSuccess("#sendtestmail_msg",t("settings","Email sent"))}).catch(e=>{OC.msg.finishedError("#sendtestmail_msg",e)})})})}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,loaded:!1,exports:{}};return s[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=s,e=[],a.O=(s,i,t,n)=>{if(!i){var d=1/0;for(m=0;m<e.length;m++){for(var[i,t,n]=e[m],l=!0,r=0;r<i.length;r++)(!1&n||d>=n)&&Object.keys(a.O).every(e=>a.O[e](i[r]))?i.splice(r--,1):(l=!1,n<d&&(d=n));if(l){e.splice(m--,1);var o=t();void 0!==o&&(s=o)}}return s}n=n||0;for(var m=e.length;m>0&&e[m-1][2]>n;m--)e[m]=e[m-1];e[m]=[i,t,n]},a.n=e=>{var s=e&&e.__esModule?()=>e.default:()=>e;return a.d(s,{a:s}),s},a.d=(e,s)=>{for(var i in s)a.o(s,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})},a.e=()=>Promise.resolve(),a.o=(e,s)=>Object.prototype.hasOwnProperty.call(e,s),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=6010,(()=>{var e={6010:0};a.O.j=s=>0===e[s];var s=(s,i)=>{var t,n,[d,l,r]=i,o=0;if(d.some(s=>0!==e[s])){for(t in l)a.o(l,t)&&(a.m[t]=l[t]);if(r)var m=r(a)}for(s&&s(i);o<d.length;o++)n=d[o],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(m)},i=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];i.forEach(s.bind(null,0)),i.push=s.bind(null,i.push.bind(i))})(),a.nc=void 0;var n=a.O(void 0,[4208],()=>a(69129));n=a.O(n)})();
//# sourceMappingURL=settings-legacy-admin.js.map?v=61a49f430c187fcc5dc2
(()=>{"use strict";var e,s={69129:(e,s,i)=>{var a=i(19051),n=i(63814),d=i(74692),l=i.n(d);window.addEventListener("DOMContentLoaded",()=>{l()("#loglevel").change(function(){l().post((0,n.Jv)("/settings/admin/log/level"),{level:l()(this).val()},()=>{OC.Log.reload()})}),l()("#mail_smtpauth").change(function(){this.checked?l()("#mail_credentials").removeClass("hidden"):l()("#mail_credentials").addClass("hidden")}),l()("#mail_smtpmode").change(function(){"smtp"!==l()(this).val()?(l()("#setting_smtpauth").addClass("hidden"),l()("#setting_smtphost").addClass("hidden"),l()("#mail_smtpsecure_label").addClass("hidden"),l()("#mail_smtpsecure").addClass("hidden"),l()("#mail_credentials").addClass("hidden"),l()("#mail_sendmailmode_label, #mail_sendmailmode").removeClass("hidden")):(l()("#setting_smtpauth").removeClass("hidden"),l()("#setting_smtphost").removeClass("hidden"),l()("#mail_smtpsecure_label").removeClass("hidden"),l()("#mail_smtpsecure").removeClass("hidden"),l()("#mail_smtpauth").is(":checked")&&l()("#mail_credentials").removeClass("hidden"),l()("#mail_sendmailmode_label, #mail_sendmailmode").addClass("hidden"))});const e=function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),a.Ay.post((0,n.Jv)("/settings/admin/mailsettings"),l()("#mail_general_settings_form").serialize()).then(()=>{OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))}).catch(e=>{OC.msg.finishedError("#mail_settings_msg",e)}))},s=function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(s):(OC.msg.startSaving("#mail_settings_msg"),a.Ay.post((0,n.Jv)("/settings/admin/mailsettings/credentials"),l()("#mail_credentials_settings").serialize()).then(()=>{OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))}).catch(e=>{OC.msg.finishedError("#mail_settings_msg",e)}))};l()("#mail_general_settings_form").change(e),l()("#mail_credentials_settings_submit").click(s),l()("#mail_smtppassword").click(()=>{"text"===(void 0).type&&"********"===(void 0).value&&((void 0).type="password",(void 0).value="")}),l()("#sendtestemail").click(e=>{e.preventDefault(),OC.msg.startAction("#sendtestmail_msg",t("settings","Sending…")),a.Ay.post((0,n.Jv)("/settings/admin/mailtest")).then(()=>{OC.msg.finishedSuccess("#sendtestmail_msg",t("settings","Email sent"))}).catch(e=>{OC.msg.finishedError("#sendtestmail_msg",e.response.data)})})})}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,loaded:!1,exports:{}};return s[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=s,e=[],a.O=(s,i,t,n)=>{if(!i){var d=1/0;for(m=0;m<e.length;m++){for(var[i,t,n]=e[m],l=!0,r=0;r<i.length;r++)(!1&n||d>=n)&&Object.keys(a.O).every(e=>a.O[e](i[r]))?i.splice(r--,1):(l=!1,n<d&&(d=n));if(l){e.splice(m--,1);var o=t();void 0!==o&&(s=o)}}return s}n=n||0;for(var m=e.length;m>0&&e[m-1][2]>n;m--)e[m]=e[m-1];e[m]=[i,t,n]},a.n=e=>{var s=e&&e.__esModule?()=>e.default:()=>e;return a.d(s,{a:s}),s},a.d=(e,s)=>{for(var i in s)a.o(s,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})},a.e=()=>Promise.resolve(),a.o=(e,s)=>Object.prototype.hasOwnProperty.call(e,s),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=6010,(()=>{var e={6010:0};a.O.j=s=>0===e[s];var s=(s,i)=>{var t,n,[d,l,r]=i,o=0;if(d.some(s=>0!==e[s])){for(t in l)a.o(l,t)&&(a.m[t]=l[t]);if(r)var m=r(a)}for(s&&s(i);o<d.length;o++)n=d[o],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(m)},i=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];i.forEach(s.bind(null,0)),i.push=s.bind(null,i.push.bind(i))})(),a.nc=void 0;var n=a.O(void 0,[4208],()=>a(69129));n=a.O(n)})();
//# sourceMappingURL=settings-legacy-admin.js.map?v=b378cd5e27a1bcaa8b5b

File diff suppressed because one or more lines are too long