(string) ($_POST['group'] ?? ''), 'subject' => (string) ($_POST['subject'] ?? ''), 'body' => (string) ($_POST['body'] ?? '')]; $preview = null; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verify_csrf(); $action = $_POST['action'] ?? ''; if ($action === 'preview') { $g = rundmail_parse_group($pdo, $form['group']); $err = rundmail_validate($form['subject'], $form['body']); if (!$g) $error = 'Bitte eine Empfängergruppe wählen.'; elseif ($err) $error = $err; else { $rcpt = rundmail_recipients($pdo, $staff, $g['type'], $g['id']); if (!$rcpt) $error = 'In dieser Gruppe gibt es keine Empfänger (oder Sie dürfen ihr nicht schreiben).'; else $preview = ['group' => $g, 'rcpt' => $rcpt]; } } elseif ($action === 'send') { if (empty($_POST['confirm'])) { $error = 'Bitte bestätigen, dass Text und Empfänger geprüft sind.'; } else { $r = rundmail_create($pdo, $staff, $form['group'], $form['subject'], $form['body']); if ($r['ok']) { $message = 'Die Nachricht geht an ' . $r['total'] . ' Empfänger. Der Versand läuft im Hintergrund, den Stand sehen Sie unten.'; $form = ['group' => '', 'subject' => '', 'body' => '']; } else $error = $r['error']; } } elseif ($action === 'test') { $r = rundmail_test($staff, $form['subject'], $form['body']); if ($r['ok']) $message = 'Die Probemail ist an ' . $staff['email'] . ' unterwegs.'; else $error = $r['error']; } elseif ($action === 'cancel') { if (rundmail_cancel($pdo, $staff, (int) ($_POST['id'] ?? 0))) $message = 'Der Versand wurde abgebrochen.'; else $error = 'Dieser Versand lässt sich nicht abbrechen.'; } } // Offene Versände weiterschieben, damit der Stand beim Ansehen nicht stehen bleibt if ($_SERVER['REQUEST_METHOD'] !== 'POST') rundmail_tick($pdo); $groups = rundmail_groups($pdo, $staff); $history = rundmail_history($pdo, $staff); $presets = rundmail_presets(); $statusLabels = ['sending' => 'Läuft', 'done' => 'Fertig', 'cancelled' => 'Abgebrochen']; ?>

Störungsmitteilung und Rundmail

Neue Nachricht

Jede Mail geht einzeln an den Kunden (keine sichtbare Empfängerliste). Gedacht für Kunden mit offenen Tickets, etwa bei einer Wartung oder Störung. Mit {name} wird der Name eingesetzt.

Vor dem Senden prüfen

Empfänger:

Zum Beispiel: $r['email'], array_slice($preview['rcpt'], 0, 5)))) ?> 5 ? ' …' : '' ?>



Noch nichts gesendet.

WannBetreffEmpfängerVonStand
von gesendet' . (int) $h['failed'] . ' fehlgeschlagen' : '' ?>