feat(mail): add smtp email delivery
This commit is contained in:
parent
faddaa91d0
commit
3456b04ed4
25 changed files with 529 additions and 60 deletions
49
README.md
49
README.md
|
|
@ -13,7 +13,7 @@ Eigenständige öffentliche Firmenwebsite für Funktechnik Schubert. Dieses Proj
|
|||
- Nginx/Reverse-Proxy-fähig
|
||||
- SEO Metadata, Sitemap und robots.txt
|
||||
|
||||
Version: `0.2.2`
|
||||
Version: `0.3.0`
|
||||
|
||||
## Seiten
|
||||
|
||||
|
|
@ -140,12 +140,12 @@ Funktionen:
|
|||
- Reparaturanfragen verwalten
|
||||
- Website-Inhaltsverwaltung vorbereitet
|
||||
- Firmendaten pflegen
|
||||
- SMTP-Konfiguration vorbereiten
|
||||
- SMTP-Konfiguration speichern und Testmail senden
|
||||
- Medien hochladen
|
||||
- SEO-Übersicht
|
||||
- Systemübersicht
|
||||
|
||||
SMTP-Versand, Publishing von Website-Inhalten und Olympus-Übernahme sind bewusst noch nicht aktiv gekoppelt.
|
||||
Publishing von Website-Inhalten und Olympus-Übernahme sind bewusst noch nicht aktiv gekoppelt. SMTP-Versand fuer Kontakt- und Reparaturanfragen ist serverseitig angebunden, sofern `/admin/smtp` vollstaendig konfiguriert ist.
|
||||
|
||||
## Runtime Data
|
||||
|
||||
|
|
@ -163,9 +163,10 @@ Echte Runtime-Dateien werden nicht committed:
|
|||
data/contact-inquiries.json
|
||||
data/repair-inquiries.json
|
||||
data/site-settings.json
|
||||
data/smtp-settings.json
|
||||
```
|
||||
|
||||
SMTP-Konfiguration wird unter `storage/config/smtp.json` gespeichert und nicht committed. Das SMTP-Passwort wird nicht im Admin-Formular ausgegeben.
|
||||
|
||||
Uploads liegen unter `storage/uploads/images/`, werden über `/api/media/[filename]` ausgeliefert und nicht committed.
|
||||
|
||||
Alte Uploads aus `public/uploads/images` werden beim Start einmalig nach `storage/uploads/images` migriert, falls sie dort noch nicht vorhanden sind.
|
||||
|
|
@ -187,13 +188,50 @@ Antwort:
|
|||
```json
|
||||
{
|
||||
"status": "ok",
|
||||
"version": "0.2.2",
|
||||
"version": "0.3.0",
|
||||
"storage": "ok",
|
||||
"admin": "configured",
|
||||
"smtp": "configured",
|
||||
"timestamp": "..."
|
||||
}
|
||||
```
|
||||
|
||||
## SMTP
|
||||
|
||||
SMTP wird im Adminbereich unter `/admin/smtp` konfiguriert. Die Konfiguration wird persistent unter `storage/config/smtp.json` gespeichert und liegt damit im Docker-Storage-Volume, nicht in `public/`.
|
||||
|
||||
Pflichtfelder:
|
||||
|
||||
- SMTP Host
|
||||
- SMTP Port
|
||||
- SMTP Benutzername
|
||||
- SMTP Passwort
|
||||
- Verschlüsselung
|
||||
- Absenderadresse
|
||||
- Empfängeradresse
|
||||
|
||||
Für Apple Mail/iCloud Mail:
|
||||
|
||||
```text
|
||||
Host: smtp.mail.me.com
|
||||
Port: 587
|
||||
Verschlüsselung: STARTTLS
|
||||
Benutzername: vollständige E-Mail-Adresse
|
||||
Passwort: app-spezifisches Passwort
|
||||
```
|
||||
|
||||
Nicht das normale Apple-ID-Passwort verwenden. In der Apple-ID-Verwaltung ein app-spezifisches Passwort erzeugen und dieses als SMTP-Passwort speichern.
|
||||
|
||||
Nach dem Speichern kann im Adminbereich eine Testmail gesendet werden. Kontakt- und Reparaturanfragen werden weiterhin lokal gespeichert. Wenn SMTP konfiguriert ist, wird zusaetzlich eine E-Mail an die konfigurierte Empfaengeradresse gesendet. Schlaegt der Mailversand fehl, bleibt die Anfrage gespeichert; der Besucher sieht keine technische Fehlermeldung.
|
||||
|
||||
Troubleshooting:
|
||||
|
||||
- Host, Port und Verschlüsselung prüfen
|
||||
- bei Apple Mail STARTTLS und Port 587 verwenden
|
||||
- vollständige E-Mail-Adresse als Benutzername verwenden
|
||||
- app-spezifisches Passwort neu erzeugen
|
||||
- letzte Testmail und letzte Fehlermeldung unter `/admin/smtp` prüfen
|
||||
|
||||
## Deployment
|
||||
|
||||
```bash
|
||||
|
|
@ -259,6 +297,5 @@ certbot --nginx -d funktechnik-schubert.de -d www.funktechnik-schubert.de
|
|||
## Offene manuelle Punkte
|
||||
|
||||
- TODO: Rechtliche Angaben ergänzen
|
||||
- Produktives Kontakt-/Mail-System anbinden
|
||||
- Spätere Olympus-Reparaturannahme serverseitig anbinden
|
||||
- Finale Domain und HTTPS-Konfiguration setzen
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue