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:
@@ -306,7 +306,7 @@ Nicht tun:
|
||||
| M3 | SaaS-Basis | Abgeschlossen: Tenants, User, Registrierung, Login, Rollen, Mail-Links und zentrale Mandantenauswahl funktionieren |
|
||||
| M4 | Datenmigration | Gestartet: Ledger-Tabelle, Legacy-Backfill, Paritätscheck, Ledger-Service und Preview sind umgesetzt |
|
||||
| M5 | App-Kern | Weit fortgeschritten: Kernseiten lesen und schreiben tenant-sicher gegen das Ledger, inklusive Hinweise und rollenbasiertem Zugang; offen ist ein eigener Zahlungs-Screen |
|
||||
| M6 | Betriebsflows | Gestartet: CSV-Import und PDF-Export stehen; Mail und Jahresprozesse offen |
|
||||
| M6 | Betriebsflows | Weit fortgeschritten: CSV-Import, PDF-Export und Mailversand stehen; Jahresprozesse offen |
|
||||
| M7 | Landingpage | Public-Seite und Auth-Seiten sind im gemeinsamen Stil nutzbar; spätere Ausbaustufen folgen |
|
||||
| M8 | Härtung | Betrieb, Datenschutz, Monitoring und Isolation sind geprüft |
|
||||
| M9 | Cutover | Produktivumstellung ist vorbereitet und Legacy ist read-only |
|
||||
@@ -579,7 +579,12 @@ Schritte:
|
||||
Zugriffskontrolle; das ist behoben, die Seite liest jetzt tenant-sicher
|
||||
aus dem Ledger.
|
||||
- Mailversand als nachvollziehbaren Versandjob mit Dry-Run und Versandlog
|
||||
gestalten.
|
||||
gestalten: erledigt. `mailversenden.php` versendete zuvor ungeprüft bei
|
||||
jedem GET-Request echte Mails über PHPMailer (dessen Quelldateien im Repo
|
||||
gar nicht vorhanden waren) mit fest codierten Alt-Kunden-Inhalten (SMTP,
|
||||
PayPal-Link, FAQ-URL). Ersetzt durch die bestehende `saas_send_mail()`-
|
||||
Abstraktion aus M3, eine neue `outbound_emails`-Tabelle als Versandlog
|
||||
und eine standardmäßig aktive Dry-Run-Option.
|
||||
- Jahresauswertung beziehungsweise Jahresbuchungen tenant-sicher abbilden.
|
||||
|
||||
Ergebnis:
|
||||
|
||||
Reference in New Issue
Block a user