From 40340c709a7f07e7adff84ff5a2d933f554da632 Mon Sep 17 00:00:00 2001 From: boban Date: Tue, 21 Oct 2025 19:11:59 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20Mailbox=20Stats=20=C3=BCber=20Dovecot=20?= =?UTF-8?q?mit=20config/mailpool.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Livewire/Ui/Mail/MailboxList.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/Livewire/Ui/Mail/MailboxList.php b/app/Livewire/Ui/Mail/MailboxList.php index c378b7b..489429e 100644 --- a/app/Livewire/Ui/Mail/MailboxList.php +++ b/app/Livewire/Ui/Mail/MailboxList.php @@ -134,18 +134,14 @@ class MailboxList extends Component $domainActive = (bool)($d->is_active ?? true); foreach ($d->mailUsers as $u) { - // E-Mail sicher bestimmen (Fallback aus localpart + Domain) - $email = $u->email ?? ($u->localpart ? ($u->localpart.'@'.$d->domain) : null); + $email = trim($u->email ?? '') !== '' + ? $u->email + : ($u->localpart !== '' ? ($u->localpart.'@'.$d->domain) : null); - // Stats aus Redis/DB holen (kann array, json-string oder null sein) - $statsRaw = $email ? Setting::get("mailbox.$email") : null; - $stats = is_array($statsRaw) - ? $statsRaw - : (is_string($statsRaw) ? (json_decode($statsRaw, true) ?: null) : null); + $stats = $email ? Setting::get("mailbox.$email") : null; - // Werte priorisieren: Setting → DB-Felder → 0 - $usedBytes = (int)($stats['used_bytes'] ?? ($u->used_bytes ?? 0)); - $messageCount = (int)($stats['message_count'] ?? ($u->message_count ?? 0)); + $usedBytes = is_array($stats) && isset($stats['used_bytes']) ? (int)$stats['used_bytes'] : (int)($u->used_bytes ?? 0); + $messageCount = is_array($stats) && isset($stats['message_count']) ? (int)$stats['message_count'] : (int)($u->message_count ?? 0); $usedMB = (int) round($usedBytes / 1024 / 1024); $quota = (int)($u->quota_mb ?? 0);