Fix: Mailbox Stats über Dovecot mit config/mailpool.php

main v1.0.08
boban 2025-10-21 19:11:59 +02:00
parent 323c6032af
commit 40340c709a
1 changed files with 6 additions and 10 deletions

View File

@ -134,18 +134,14 @@ class MailboxList extends Component
$domainActive = (bool)($d->is_active ?? true); $domainActive = (bool)($d->is_active ?? true);
foreach ($d->mailUsers as $u) { foreach ($d->mailUsers as $u) {
// E-Mail sicher bestimmen (Fallback aus localpart + Domain) $email = trim($u->email ?? '') !== ''
$email = $u->email ?? ($u->localpart ? ($u->localpart.'@'.$d->domain) : null); ? $u->email
: ($u->localpart !== '' ? ($u->localpart.'@'.$d->domain) : null);
// Stats aus Redis/DB holen (kann array, json-string oder null sein) $stats = $email ? Setting::get("mailbox.$email") : null;
$statsRaw = $email ? Setting::get("mailbox.$email") : null;
$stats = is_array($statsRaw)
? $statsRaw
: (is_string($statsRaw) ? (json_decode($statsRaw, true) ?: null) : null);
// Werte priorisieren: Setting → DB-Felder → 0 $usedBytes = is_array($stats) && isset($stats['used_bytes']) ? (int)$stats['used_bytes'] : (int)($u->used_bytes ?? 0);
$usedBytes = (int)($stats['used_bytes'] ?? ($u->used_bytes ?? 0)); $messageCount = is_array($stats) && isset($stats['message_count']) ? (int)$stats['message_count'] : (int)($u->message_count ?? 0);
$messageCount = (int)($stats['message_count'] ?? ($u->message_count ?? 0));
$usedMB = (int) round($usedBytes / 1024 / 1024); $usedMB = (int) round($usedBytes / 1024 / 1024);
$quota = (int)($u->quota_mb ?? 0); $quota = (int)($u->quota_mb ?? 0);