Files
clemensandClaude Sonnet 5 7b517bcbf6 Doku: Mailversand im Produktivbetrieb ueber Webspace-Mailserver
Klaerung auf Nutzerfrage: saas_send_mail() nutzt produktiv PHP mail()
statt eines externen SMTP-Relays, laeuft also automatisch ueber den
Mailserver des Webspace-Anbieters, der fuer die eigene Domain i.d.R.
bereits autorisiert ist (SPF/rDNS). Dokumentiert die dafuer noetigen
Env-Variablen, insbesondere APP_MAIL_FROM, das produktiv nicht auf dem
Platzhalter noreply@kaffeeliste.local stehen bleiben darf.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 17:49:49 +02:00

58 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mailversand im Produktivbetrieb
Stand: 2026-07-15
Der Mailversand läuft über `app/saas-mail.php` und nutzt bewusst **keinen**
fest codierten SMTP-Client. Alle Versandwege der App (Passwort-Reset,
E-Mail-Verifikation, Einladungen, Info-Mails, Jahresabschluss) laufen über
`saas_send_mail()`.
## Wie der Versand funktioniert
- Im Dev-Modus (`APP_ENV=dev`) schreibt `saas_send_mail()` jede Mail nur als
Datei nach `var/mail` (`APP_MAIL_TRANSPORT=log`), es wird nichts wirklich
verschickt.
- Außerhalb des Dev-Modus verschickt `saas_send_mail()` standardmäßig über
PHPs eingebaute `mail()`-Funktion (`APP_MAIL_TRANSPORT=mail`). `mail()`
übergibt die Nachricht an den lokalen Mail-Transport-Agent des Servers,
auf dem PHP läuft (typischerweise `sendmail`), **nicht** an einen
externen SMTP-Relay.
## Warum das für Webspace-Hosting passt
Läuft die App auf dem eigenen Webspace, geht die Mail damit automatisch
über den Mailserver des Webspace-Anbieters raus. Bei den meisten
Webspace-Anbietern ist genau dieser Mailserver bereits für die gehosteten
Domains autorisiert (passender SPF-Eintrag, korrektes rDNS), sodass Mails
im Namen der eigenen Domain ohne zusätzliche SMTP-Konfiguration
zuverlässig zugestellt werden. Ein externer SMTP-Provider ist für den
Start nicht nötig.
## Produktiv zu setzende Umgebungsvariablen
```bash
export APP_ENV="prod"
# APP_MAIL_TRANSPORT kann entfallen, "mail" ist der Standard sobald
# APP_ENV nicht "dev" ist. Explizit setzen schadet aber nicht:
export APP_MAIL_TRANSPORT="mail"
# Wichtig: echte Absenderadresse auf der eigenen Domain, sonst ist SPF-
# Alignment beim Empfänger nicht gegeben, selbst wenn der Server senden
# darf. Der Code-Default "noreply@kaffeeliste.local" ist nur ein
# Platzhalter und darf produktiv nicht stehen bleiben.
export APP_MAIL_FROM="noreply@kaffeeliste.de"
export APP_MAIL_FROM_NAME="Kaffeeliste"
# Für korrekte Links in Mails (Passwort-Reset, Einladungen, Dashboard-Link):
export APP_BASE_URL="https://app.kaffeeliste.de"
```
## Später möglich, aktuell nicht nötig
Eine dedizierte SMTP-/Provider-Anbindung (z. B. über einen
Transaktionsmail-Dienst mit Bounce- und Zustellprotokoll) war in
`docs/m3-saas-basis-vorbereitung.md` als möglicher späterer Ausbau
vorgesehen. Das bleibt sinnvoll, sobald Zustellrate, Bounce-Handling oder
Versandvolumen eine eigene Überwachung brauchen für den Start reicht der
Versand über den ohnehin bereits autorisierten Webspace-Mailserver.