load(); } public function render() { return view('livewire.ui.mail.queue-card'); } public function refresh(): void { $this->load(); } protected function load(): void { $out = trim(@shell_exec('postqueue -p 2>/dev/null') ?? ''); $this->active = preg_match_all('/^[A-F0-9]{10}\*?\s+/mi', $out); // grob $this->deferred = preg_match_all('/\s+(\(deferred\))/mi', $out); // älteste Mail grob: erste Queue-ID-Zeile → Zeit parsen (optional) $this->oldestAge = $this->active + $this->deferred > 0 ? '~'.date('H:i') : '–'; } public function flush(): void { @shell_exec('postqueue -f >/dev/null 2>&1 &'); $this->dispatch('toast', type:'info', title:'Queue flush gestartet'); } }