Neue Dateien
- src/Koogle.Domain/Interfaces/IEmailService.cs - Interface
- src/Koogle.Infrastructure/Configuration/SmtpSettings.cs - SMTP-Konfiguration
- src/Koogle.Infrastructure/Services/SmtpEmailService.cs - MailKit-basierte Implementierung
Geänderte Dateien
| Datei | Änderung |
|------------------------|---------------------------------------------|
| Club.cs | + SenderEmail Property |
| Person.cs | + UserProfileId + Navigation zu UserProfile |
| ClubConfiguration.cs | + SenderEmail Config |
| PersonConfiguration.cs | + UserProfileId FK + Index |
| DayService.cs | + E-Mail-Versand bei Day-Close |
| ClubDto.cs | + SenderEmail in allen DTOs |
| PersonDto.cs | + UserProfileId |
| DependencyInjection.cs | + SmtpSettings + SmtpEmailService |
| appsettings.json | + SmtpSettings Section |
Gelöschte Dateien
- StubEmailService.cs
- IEmailService.cs (Application → Domain verschoben)
Migration
- AddEmailFeatures - Neue Spalten SenderEmail (Clubs) und UserProfileId (Persons)
Konfiguration (appsettings.json)
"SmtpSettings": {
"Host": "smtp.example.com",
"Port": 587,
"Enabled": false // Auf true setzen um E-Mails zu aktivieren
}
Funktionen
1. Club-spezifische Absender-Adresse - Club.SenderEmail (Fallback: DefaultSenderEmail)
2. Spieltag-Protokoll - HTML-E-Mail mit Tabelle der Strafen pro Teilnehmer
3. Empfänger - Nur Teilnehmer mit verknüpftem UserProfile
4. Error Handling - Log & Continue (Day-Close schlägt nicht fehl)
|
||
|---|---|---|
| .. | ||
| commands | ||
| settings.local.json | ||