Files
Backend/WEBROOT/Commands/TerminErinnerung.php
T
2026-07-07 10:07:22 +02:00

77 lines
1.9 KiB
PHP

<?php
include_once(__DIR__ . "/../controller/DatabaseController.php");
include_once(__DIR__ . "/../modules/Mail.php");
date_default_timezone_set("Europe/Berlin");
$jetzt = new DateTime();
$heute = $jetzt->format("Y-m-d");
// Alle heutigen Termine laden
$termine = DatabaseShow(
"Termine",
"*",
"DATUM = ? AND ERINNERUNG_AM IS NULL",
$heute
);
foreach ($termine as $termin) {
$terminZeit = new DateTime($termin["DATUM"] . " " . $termin["ZEIT"]);
$sekundenBisTermin = $terminZeit->getTimestamp() - $jetzt->getTimestamp();
// Nur Termine innerhalb der nächsten 30 Minuten
if ($sekundenBisTermin > 0 && $sekundenBisTermin <= 1800) {
// Benutzer laden
$benutzer = DatabaseShow(
"Benutzer",
"*",
"NAME = ?",
$termin["ERSTELLT_VON"]
);
if (empty($benutzer)) {
continue;
}
$benutzer = $benutzer[0];
if (empty($benutzer["EMAIL"])) {
continue;
}
$subject = "Terminerinnerung";
$message = "Hallo {$benutzer["NAME"]},\n\n";
$message .= "Du hast in weniger als 30 Minuten einen Termin.\n\n";
$message .= "Termin: {$termin["NAME"]}\n";
$message .= "Datum: {$termin["DATUM"]}\n";
$message .= "Uhrzeit: {$termin["ZEIT"]}\n";
if (!empty($termin["NOTIZ"])) {
$notizClean = mb_convert_encoding($termin["NOTIZ"], "UTF-8", "auto");
$message .= "Notiz: {$notizClean}\n";
}
sendMail(
$subject,
$message,
$_SERVER['SCRIPT_NAME'] ?? 'CLI/Unbekannt',
true,
$benutzer["EMAIL"],
);
print_r("{$benutzer["EMAIL"]}\n{$message}");
DatabaseUpdate(
"Termine",
"ERINNERUNG_AM = ?",
"ID = ?",
date('d-m-Y H:i:s'),
$termin["ID"]
);
}
}