feat: introduce Resend email provider and add admin email configuration page.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Integrazione Supporto Resend per Invio Email
|
||||
|
||||
## Obiettivo
|
||||
Abilitare l'invio di email tramite servizi terzi (Resend) oltre al già presente SMTP, con configurazione via interfaccia grafica.
|
||||
|
||||
## Stato Attuale
|
||||
- Backend: `SmtpEmailSender` gestisce solo SMTP.
|
||||
- Frontend: `SettingsPage` gestisce solo campi SMTP.
|
||||
- DTO: `SmtpConfigDto` limitato a SMTP.
|
||||
|
||||
## Piano di Lavoro
|
||||
1. **Backend DTO**: Aggiornare `SmtpConfigDto` con campi `Provider` e `ResendApiKey`.
|
||||
2. **Backend Controller**: Aggiornare `CommunicationsController` per leggere/salvare le nuove configurazioni (`EMAIL_PROVIDER`, `RESEND_API_KEY`).
|
||||
3. **Backend Service**: Modificare `SmtpEmailSender` (o rinominarlo in `UnifiedEmailSender`) per supportare la logica condizionale (SMTP vs Resend). Implementare l'invio tramite HTTP Client per Resend.
|
||||
4. **Frontend Service**: Aggiornare le definizioni di tipo TypeScript.
|
||||
5. **Frontend UI**: Modificare `SettingsPage` per aggiungere un selettore di provider (SMTP/Resend) e mostrare i campi pertinenti dinamicamente.
|
||||
6. **Traduzioni**: Aggiungere le nuove etichette.
|
||||
|
||||
## Dettagli Tecnici
|
||||
- **API Resend**: Richiesta POST a `https://api.resend.com/emails` con Bearer Token.
|
||||
- **Provider Enum**: "smtp", "resend".
|
||||
- **Defaut**: SMTP per retrocompatibilità.
|
||||
|
||||
## Avanzamento
|
||||
- [x] Backend DTO Update (`SmtpConfigDto`)
|
||||
- [x] Backend Controller Update (`CommunicationsController`)
|
||||
- [x] Backend Service Logic (`SmtpEmailSender` now handles Resend via HTTP)
|
||||
- [x] Frontend Types Update
|
||||
- [x] Frontend UI Update (`SettingsPage.tsx` with Provider selector)
|
||||
- [x] Dependencies (Added `Microsoft.Extensions.Http` to Infrastructure)
|
||||
|
||||
## Note Finali
|
||||
- L'integrazione supporta ora la selezione dinamica tra SMTP e Resend.
|
||||
- La configurazione viene salvata su database (`EMAIL_PROVIDER`, `RESEND_API_KEY`).
|
||||
- Il backend utilizza `IHttpClientFactory` per le chiamate API verso Resend.
|
||||
- UI aggiornata per mostrare campi condizionali.
|
||||
|
||||
Reference in New Issue
Block a user