From da49499b26b93fb4f7563412ac8ecaaa3a97422a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Spiderm=40n=E2=84=A2?= Date: Sun, 10 May 2026 19:39:49 +0300 Subject: [PATCH] [Bug]: Email settings endpoint returns HTTP 400 with port parameter type mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected Version: 33.0.3+ Issue: POST /settings/admin/mailsettings returns HTTP 400 for all users Root Cause: Vue admin frontend sends port as numeric JSON ("mail_smtpport": 587), but controller declares string $mail_smtpport. AppFramework doesn't auto-cast int→string, causing TypeError. Workaround: Use occ config:system:set CLI instead Signed-off-by: Spiderm@n™ --- apps/settings/lib/Controller/MailSettingsController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/settings/lib/Controller/MailSettingsController.php b/apps/settings/lib/Controller/MailSettingsController.php index 9fb3266c899ac..ff2c697045499 100644 --- a/apps/settings/lib/Controller/MailSettingsController.php +++ b/apps/settings/lib/Controller/MailSettingsController.php @@ -57,11 +57,12 @@ public function setMailSettings( string $mail_smtpsecure, string $mail_smtphost, ?bool $mail_smtpauth, - string $mail_smtpport, + string|int $mail_smtpport, string $mail_sendmailmode, ?bool $mail_noverify = null, ): DataResponse { $mail_smtpauth = $mail_smtpauth == '1'; + $mail_smtpport = (string)$mail_smtpport; $configs = [ 'mail_domain' => $mail_domain,