# E-Mail-Service Einrichtung

## Übersicht

Der E-Mail-Service ermöglicht den automatischen Versand von:
- ✉️ **Verträgen** an Kunden (mit PDF-Anhang + Signatur-Link)
- ✉️ **Buchungsbestätigungen**
- ✉️ **Status-Benachrichtigungen**

## SMTP-Konfiguration

Fügen Sie folgende Variablen in Ihre `.env` Datei ein:

```env
# E-Mail / SMTP Konfiguration
SMTP_HOST="smtp.beispiel.de"
SMTP_PORT="587"
SMTP_USER="noreply@savethemoment.photos"
SMTP_PASS="IhrPasswort"
SMTP_FROM="SaveTheMoment <noreply@savethemoment.photos>"
```

## Empfohlene E-Mail-Provider

### 1. **Gmail** (für Tests / kleine Mengen)
```env
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_USER="ihre-email@gmail.com"
SMTP_PASS="app-spezifisches-passwort"  # https://myaccount.google.com/apppasswords
SMTP_FROM="SaveTheMoment <ihre-email@gmail.com>"
```

⚠️ **Wichtig:** Verwenden Sie ein [App-spezifisches Passwort](https://myaccount.google.com/apppasswords), nicht Ihr normales Gmail-Passwort!

### 2. **Mailgun** (professionell, empfohlen)
```env
SMTP_HOST="smtp.eu.mailgun.org"
SMTP_PORT="587"
SMTP_USER="postmaster@ihre-domain.mailgun.org"
SMTP_PASS="ihr-mailgun-smtp-passwort"
SMTP_FROM="SaveTheMoment <noreply@savethemoment.photos>"
```

### 3. **SendGrid** (professionell)
```env
SMTP_HOST="smtp.sendgrid.net"
SMTP_PORT="587"
SMTP_USER="apikey"
SMTP_PASS="IhrSendGridAPIKey"
SMTP_FROM="SaveTheMoment <noreply@savethemoment.photos>"
```

### 4. **Ihr eigener Hosting-Provider**
Die meisten Hosting-Provider (z.B. Strato, 1&1, All-Inkl) bieten SMTP-Server:
```env
SMTP_HOST="smtp.ihre-domain.de"
SMTP_PORT="587"
SMTP_USER="noreply@ihre-domain.de"
SMTP_PASS="ihr-email-passwort"
SMTP_FROM="SaveTheMoment <noreply@ihre-domain.de>"
```

## Funktionen

### ✅ **Manueller Versand**
1. Buchung öffnen
2. "Vertrag generieren" klicken
3. "Vertrag per E-Mail senden" klicken
4. E-Mail wird an Kunden gesendet mit:
   - PDF-Anhang
   - Link zur Online-Signatur
   - Buchungsdetails

### ✅ **Automatischer Versand** (TODO)
- Bei Status-Änderung zu "CONFIRMED" → Vertrag automatisch senden
- Bei Stornierung → Benachrichtigung senden

## E-Mail-Templates

Die E-Mail-Templates sind in `/lib/email-service.ts` definiert und umfassen:

### 📄 **Vertrag-E-Mail**
- Professionelles HTML-Design mit SaveTheMoment Branding
- PDF-Anhang mit Mietvertrag
- Online-Signatur-Link
- Buchungsdetails

### ✅ **Bestätigungs-E-Mail**
- Buchungsbestätigung nach erfolgreicher Reservierung
- Zusammenfassung der Buchungsdetails

## Test

Nach der Konfiguration können Sie testen:

```bash
# Server neu starten
npm run dev

# Dann im Dashboard:
# 1. Buchung öffnen
# 2. "Vertrag generieren" klicken
# 3. "Vertrag per E-Mail senden" klicken
```

Die Konsole zeigt:
```
✅ SMTP transporter initialized
✅ Email sent: <message-id>
```

## Fehlerbehandlung

### "SMTP not configured"
- Überprüfen Sie, ob alle SMTP-Variablen in `.env` gesetzt sind
- Server neu starten nach Änderungen in `.env`

### "Authentication failed"
- Prüfen Sie Benutzername und Passwort
- Bei Gmail: App-spezifisches Passwort verwenden
- Bei 2FA: Spezielle App-Passwörter erforderlich

### "Connection timeout"
- Prüfen Sie SMTP_HOST und SMTP_PORT
- Firewall-Einstellungen überprüfen
- Port 587 (STARTTLS) oder 465 (SSL) verwenden

## Sicherheit

✅ **Empfehlungen:**
- Verwenden Sie dedizierte E-Mail-Adressen (z.B. `noreply@ihre-domain.de`)
- Speichern Sie SMTP-Passwörter niemals im Git-Repository
- Verwenden Sie starke Passwörter
- Aktivieren Sie SPF, DKIM und DMARC für Ihre Domain

## Kosten

| Provider | Kosten | Empfehlung |
|----------|--------|------------|
| Gmail | Kostenlos (bis 500/Tag) | ✅ Gut für Tests |
| Mailgun | Ab 0€ (1.000 E-Mails/Monat gratis) | ✅ **Empfohlen für Produktion** |
| SendGrid | Ab 0€ (100 E-Mails/Tag gratis) | ✅ Gut für kleine Projekte |
| Hosting-Provider | Meist inkludiert | ✅ Wenn bereits vorhanden |

## Support

Bei Fragen oder Problemen:
1. Prüfen Sie die Server-Logs (Terminal)
2. Überprüfen Sie die SMTP-Konfiguration
3. Testen Sie mit einem anderen Provider
