INTERCOMS: MessageSender + SmtpProvider (migrar mailer::send_html) #68

Open
opened 2026-07-27 13:37:45 -03:00 by navigator · 1 comment
Owner

Fundação do INTERCOMS (ADR-0016). Sem novo comportamento — refactor:

  • trait MessageSender + Channel
  • SmtpProvider embrulha lettre + email_templates::html_wrap
  • Migrar envios atuais (password-reset, signup-verify, contato, SLA, mandate-invite) pro trait
  • Verde em prod (mesmos e-mails, agora via INTERCOMS)
Fundação do INTERCOMS (ADR-0016). Sem novo comportamento — refactor: - [ ] `trait MessageSender` + `Channel` - [ ] `SmtpProvider` embrulha lettre + `email_templates::html_wrap` - [ ] Migrar envios atuais (password-reset, signup-verify, contato, SLA, mandate-invite) pro trait - [ ] Verde em prod (mesmos e-mails, agora via INTERCOMS)
Author
Owner

Fundação entregue (commit 33f0052): módulo intercoms com trait MessageSender, Channel {Email,Sms}, OutboundMessage e SmtpProvider (lettre). mailer::send_html agora DELEGA ao SmtpProvider (assinatura idêntica; admin_users já envia via INTERCOMS).

Descoberta: mailer::send_html só era usado por admin_users; os demais ~7 caminhos de e-mail (contato, proposal_delivery, forum_mailer, profile_nudge, civic_notify, email_templates, federation) têm cada um seu próprio lettre + SmtpConfig duplicado.

Restante do #68:

  • Migrar os ~7 sends lettre avulsos do gateway pro SmtpProvider
  • Extrair INTERCOMS pra crate compartilhado (auth: signup-verify/password-reset/mandate-invite usam o seu próprio SmtpConfig)
  • MailgunProvider + disparo em massa; SmsGatewayProvider (#69)
  • intercoms_provider_config por escopo cifrada + rate-limit

Não deployado sozinho (refactor no-op, só afeta o path de admin_users que não dá pra testar live sem sessão) — vai junto com o F3, que consome o SmtpProvider e é testável.

Fundação entregue (commit 33f0052): módulo `intercoms` com trait `MessageSender`, `Channel {Email,Sms}`, `OutboundMessage` e `SmtpProvider` (lettre). `mailer::send_html` agora DELEGA ao SmtpProvider (assinatura idêntica; admin_users já envia via INTERCOMS). Descoberta: `mailer::send_html` só era usado por admin_users; os demais ~7 caminhos de e-mail (contato, proposal_delivery, forum_mailer, profile_nudge, civic_notify, email_templates, federation) têm cada um seu próprio lettre + SmtpConfig duplicado. Restante do #68: - [ ] Migrar os ~7 sends lettre avulsos do gateway pro SmtpProvider - [ ] Extrair INTERCOMS pra crate compartilhado (auth: signup-verify/password-reset/mandate-invite usam o seu próprio SmtpConfig) - [ ] MailgunProvider + disparo em massa; SmsGatewayProvider (#69) - [ ] intercoms_provider_config por escopo cifrada + rate-limit Não deployado sozinho (refactor no-op, só afeta o path de admin_users que não dá pra testar live sem sessão) — vai junto com o F3, que consome o SmtpProvider e é testável.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
brasil/democracia-social#68
No description provided.