M3 Mailversand und Public-Landingpage vorbereiten

- Mail-Transport fuer Reset- und Verifizierungslinks ergaenzen
- Public-Landingpage mit Hero-Asset und App-CTAs bauen
- Mail-Flow-Test, Smoke-Abdeckung und SaaS-Doku aktualisieren
This commit is contained in:
2026-07-13 20:38:01 +02:00
parent 9f2e1bdfb1
commit b0e21bbb0a
12 changed files with 462 additions and 20 deletions
+34 -5
View File
@@ -1,6 +1,6 @@
# M3 SaaS-Basis Vorbereitung
Stand: 2026-07-12
Stand: 2026-07-13
M3 fuehrt Mandanten, Benutzer, Mitgliedschaften und Grundeinstellungen additiv
ein. Die bestehende Legacy-App bleibt dabei lauffaehig und wird noch nicht auf
@@ -53,6 +53,7 @@ scripts/check-m3-auth-flow.php
scripts/check-m3-settings-flow.php
scripts/check-m3-password-email-flow.php
scripts/check-m3-tenant-resolution-flow.php
scripts/check-m3-mail-flow.php
```
Wichtige Regeln:
@@ -122,6 +123,7 @@ Umgesetzte Dateien:
```text
app/database.php
app/saas-auth.php
app/saas-mail.php
login.php
register.php
konto.php
@@ -131,6 +133,8 @@ passwort-vergessen.php
passwort-zuruecksetzen.php
email-verifikation-senden.php
email-verifizieren.php
landing.php
assets/images/landing-hero.png
```
Umgesetzter Umfang:
@@ -151,13 +155,33 @@ Umgesetzter Umfang:
- Passwort-Reset erzeugt Single-Use-Tokens und speichert nur Token-Hashes.
- E-Mail-Verifikation erzeugt Single-Use-Tokens und setzt
`users.email_verified_at`.
- Bis zum produktiven Mailversand werden Links nur im Dev-Modus angezeigt
beziehungsweise in CLI-Checks direkt verwendet.
- Reset- und Verifikationslinks werden ueber `app/saas-mail.php` versendet.
Der Dev-Standard schreibt Mails nach `var/mail`; produktiv kann auf PHP
`mail()` umgestellt werden.
- Dev-Links werden weiterhin nur im Dev-Modus angezeigt, damit lokale Checks
ohne echten Postausgang reproduzierbar bleiben.
Noch offen im M3-Auth-Scope:
- Weitergehende Rollenmatrix fuer spaetere SaaS-Seiten.
- Produktiver Mailversand fuer Reset- und Verifikationslinks.
- Produktive SMTP-/Provider-Anbindung inklusive Bounce-/Fehlerprotokoll.
## Public-Landingpage
Umgesetzte Dateien:
```text
landing.php
assets/images/landing-hero.png
```
Umgesetzter Umfang:
- Oeffentliche Landingpage ohne Legacy-DB-Zugriff.
- Hero mit generiertem Bild-Asset, bestehender Typografie und gruenem Akzent.
- CTA zu Login und Registrierung.
- Kurzabschnitt zu Stricherfassung, Mandantenfaehigkeit und Webspace-Betrieb.
- Die geschuetzte App-Sidebar bleibt von der Public-Seite getrennt.
## Tenant-Aufloesung
@@ -212,7 +236,10 @@ Umgesetzter Umfang:
- Owner-/Admin-Grundeinstellungen koennen aktualisiert werden: erfuellt.
- Passwort-Reset und E-Mail-Verifikation funktionieren mit Single-Use-Tokens:
erfuellt.
- Reset- und Verifikationslinks werden im Dev-/Testmodus als Mail-Log erzeugt:
erfuellt.
- Mandantenauswahl funktioniert fuer User mit mehreren Mandanten: erfuellt.
- Oeffentliche Landingpage ist per HTTP-Smoke erreichbar: erfuellt.
- Golden-Master und HTTP-Smoke bleiben gruen: erfuellt.
## Risiken
@@ -243,5 +270,7 @@ Umgesetzter Umfang:
14. Mandantenauswahl und zentrale Session-Aufloesung bauen: erledigt.
15. Tenant-Resolution-Kontrollskript schreiben: erledigt.
16. Golden-Master und HTTP-Smoke ausfuehren: erledigt.
17. Produktiven Mailversand oder Landingpage vorbereiten:
17. Mail-Transport-Abstraktion und Mail-Flow-Kontrollskript bauen: erledigt.
18. Public-Landingpage mit erstem Hero-Asset vorbereiten: erledigt.
19. M3-Abschlusscheck dokumentieren und M4-Datenmigration starten:
naechster Schritt.