# E-Mail-System Dokumentation ## Übersicht Das E-Mail-System des Fursuit Shops versendet automatisch Benachrichtigungen an Kunden und Administratoren bei verschiedenen Shop-Ereignissen. Das System ist mehrsprachig (DE/EN) und verwendet responsive HTML-Templates mit Text-Alternativen. ## Konfiguration ### E-Mail-Einstellungen Die E-Mail-Konfiguration erfolgt über Umgebungsvariablen in der `.env`-Datei: ```env EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_USE_TLS=True EMAIL_HOST_USER=your-email@gmail.com EMAIL_HOST_PASSWORD=your-app-specific-password DEFAULT_FROM_EMAIL=Fursuit Shop ``` ### Admin-Benachrichtigungen Administratoren werden in `settings.py` konfiguriert: ```python ADMINS = [ ('Shop Admin', 'admin@fursuitshop.com'), ] ``` ### Lagerbestand-Schwellenwert ```python LOW_STOCK_THRESHOLD = 5 # Benachrichtigung bei ≤ 5 Artikeln ``` ## E-Mail-Typen ### 1. Kundenbenachrichtigungen #### Bestellbestätigung - Gesendet nach erfolgreicher Zahlung - Enthält Bestelldetails, Produkte und Preise - Template: `order_confirmation.html/txt` #### Status-Updates - Gesendet bei Statusänderungen der Bestellung - Kann Fortschrittsbilder und Beschreibungen enthalten - Template: `order_status_update.html/txt` #### Versandbestätigung - Gesendet wenn Bestellung versendet wurde - Enthält Tracking-Nummer und Versanddetails - Template: `shipping_confirmation.html/txt` ### 2. Admin-Benachrichtigungen #### Neue Bestellung - Bei jeder neuen Bestellung - Spezielle Markierung für Fursuit-Bestellungen - Template: `admin_notification.html/txt` #### Zahlungsfehler - Bei fehlgeschlagenen Zahlungen - Enthält detaillierte Fehlerinformationen - Template: `admin_notification.html/txt` #### Custom Design - Bei Bestellungen mit Custom Designs - Enthält Design-Dateien und Notizen - Template: `admin_notification.html/txt` #### Niedriger Lagerbestand - Bei Unterschreitung des Schwellenwerts - Enthält Produktdetails und aktuellen Bestand - Template: `low_stock_notification.html/txt` ## Signal-Handler Das System verwendet Django-Signals für automatische Benachrichtigungen: ### Order-Signals ```python @receiver(post_save, sender=Order) def handle_order_notifications(sender, instance, created, **kwargs): # Sendet Benachrichtigungen bei neuen Bestellungen und Statusänderungen ``` ### Payment-Signals ```python @receiver(post_save, sender=PaymentError) def handle_payment_error(sender, instance, created, **kwargs): # Benachrichtigt Admins über Zahlungsfehler ``` ### Product-Signals ```python @receiver(pre_save, sender=Product) def check_stock_level(sender, instance, **kwargs): # Überprüft Lagerbestand und sendet Warnungen ``` ## E-Mail-Templates Alle E-Mail-Templates: - Sind vollständig responsive - Unterstützen HTML und Text-Alternativen - Sind mehrsprachig (DE/EN) - Verwenden einheitliches Branding ### Template-Struktur ``` shop/templates/shop/emails/ ├── order_confirmation.html ├── order_confirmation.txt ├── order_status_update.html ├── order_status_update.txt ├── shipping_confirmation.html ├── shipping_confirmation.txt ├── admin_notification.html ├── admin_notification.txt ├── low_stock_notification.html └── low_stock_notification.txt ``` ## Sicherheit - TLS-Verschlüsselung für E-Mail-Versand - Keine sensiblen Daten in E-Mails - Sichere Links zu Admin-Bereich - App-spezifische Passwörter für SMTP ## Fehlerbehandlung - Robuste Exception-Handling - Logging von Versandfehlern - Vermeidung von Doppel-Benachrichtigungen - Fallback auf Text-Version bei HTML-Problemen ## Wartung ### Neue E-Mail-Typen hinzufügen 1. Templates erstellen (HTML und Text) 2. E-Mail-Funktion in `emails.py` hinzufügen 3. Signal-Handler in `signals.py` registrieren 4. Übersetzungen in `.po`-Dateien hinzufügen ### Template-Anpassung - CSS-Styles in Template-Header - Einheitliche Farbcodes und Abstände - Bootstrap-kompatible Klassen - Responsive Breakpoints