Files
zentral/docs/development/devlog/2025-12-12-120000_resend_integration.md

1.9 KiB

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

  • Backend DTO Update (SmtpConfigDto)
  • Backend Controller Update (CommunicationsController)
  • Backend Service Logic (SmtpEmailSender now handles Resend via HTTP)
  • Frontend Types Update
  • Frontend UI Update (SettingsPage.tsx with Provider selector)
  • 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.