Überblick
Die SMTP-API ist ein Express-Server auf Port 3000, erreichbar über:
https://api.events-52grad.de
Caddy fungiert als Reverse Proxy und stellt automatisch SSL-Zertifikate via Let’s Encrypt bereit.
Was passiert beim Senden?
- WeWeb sendet POST-Request an
/api/send
- API validiert den Request und das API-Secret
- Mail wird über
smtp.ionos.de versendet
- Kopie wird per IMAP APPEND in “Gesendete Objekte” abgelegt
- Mail wird in
emails-Tabelle gespeichert
- Thread wird aktualisiert oder neu erstellt
- Anhänge werden in Supabase Storage hochgeladen
- Response mit
id, messageId und threadId zurück
Konfiguration
SMTP_HOST=smtp.ionos.de
SMTP_PORT=465
SMTP_USER=team@events-52grad.de
SMTP_PASSWORD=***
SMTP_FROM_NAME=Events 52 Grad
SMTP_FROM_EMAIL=team@events-52grad.de
API_SECRET=***
API_PORT=3000
Sicherheit
- Alle Endpunkte (außer
/api/health) sind mit Bearer-Token geschützt
- CORS ist aktiviert für WeWeb
- Helmet setzt Security-Header automatisch
- Das
API_SECRET ist ein 64-Zeichen Hex-String
Das API_SECRET muss sowohl auf dem VPS (in .env) als auch in WeWeb (im Workflow) identisch sein. Wenn es auf einer Seite geändert wird, bricht der Versand.
Logs prüfen
pm2 logs smtp-api --lines 50