M6: Mailversand als nachvollziehbaren Versandjob mit Dry-Run/Log
mailversenden.php hatte keine Zugriffskontrolle, versendete bei jedem GET-Request sofort echte Mails und nutzte PHPMailer, dessen Quelldateien im Repo gar nicht vorhanden waren (nur composer.json/Lizenz) - der Aufruf waere also ohnehin mit Fatal Error abgebrochen. Zusaetzlich waren SMTP- Host, Absender, PayPal-Link und FAQ-URL fest auf einen Alt-Kunden (AOK) codiert. - Ersetzt PHPMailer durch die bestehende saas_send_mail()-Abstraktion aus M3 (Transport log/mail je nach APP_MAIL_TRANSPORT) statt eine fehlende Abhaengigkeit nachzuvendoren. - Neue Tabelle outbound_emails protokolliert jeden Versandversuch: Mandant, Mitglied, Vorlage, Betreff, Status, Fehler - das Versandlog. - Formular hat eine standardmaessig aktive Dry-Run-Checkbox; im Dry-Run wird nur geloggt, saas_send_mail() nicht aufgerufen. - Mailtext ist jetzt tenant-generisch (Saldo, optionaler PayPal-Link nur wenn der Mandant PayPal aktiviert hat, eigener Dashboard-Link) statt hartcodierter Alt-Kunden-Inhalte. - Zugriffskontrolle ergaenzt (owner/admin/treasurer + Legacy-Fallback). - http-smoke.php: mailversenden.php ist jetzt reguel</EOF>
This commit is contained in:
@@ -137,16 +137,17 @@ $checks = [
|
||||
'path' => 'exportKaffeeliste.php',
|
||||
'contains' => ['%PDF'],
|
||||
],
|
||||
[
|
||||
'label' => 'Mailversand',
|
||||
'path' => 'mailversenden.php',
|
||||
'contains' => ['Info-Mail versenden', 'Dry-Run', 'Versandlog'],
|
||||
],
|
||||
];
|
||||
|
||||
$knownIssueChecks = [
|
||||
];
|
||||
|
||||
$skippedUnsafe = [
|
||||
[
|
||||
'path' => 'mailversenden.php',
|
||||
'reason' => 'GET kann bei vollständiger PHPMailer-Installation E-Mails versenden.',
|
||||
],
|
||||
[
|
||||
'path' => 'jahresauswertung.php',
|
||||
'reason' => 'GET kann Jahresbuchungen schreiben und E-Mails versenden; PHPMailer-Abhängigkeit ist zudem unvollständig.',
|
||||
|
||||
Reference in New Issue
Block a user