23 lines
1.1 KiB
Ruby
23 lines
1.1 KiB
Ruby
# app/mailers/application_mailer.rb
|
|
#
|
|
# O remetente e as credenciais SMTP saem do BANCO (ConfiguracaoNotificacao), em
|
|
# tempo de ENVIO — mudar na tela /admin/configuracao_notificacao vale sem
|
|
# reiniciar o container.
|
|
#
|
|
# ⚠️ Tem que ser `proc`, NÃO lambda. O Devise avalia o `default from:` com
|
|
# `instance_eval(&proc)`, que passa 1 argumento; um lambda de aridade 0
|
|
# estouraria ArgumentError em todo "esqueci minha senha".
|
|
#
|
|
# ⚠️ E tem que ser `delivery_method_options`, NÃO um before_action mexendo em
|
|
# `message.delivery_method`: o `mail()` roda DEPOIS dos callbacks e chama
|
|
# `wrap_delivery_behavior!`, que sobrescreveria o callback. O
|
|
# `delivery_method_options` é lido dentro do próprio `mail()` e MERGEADO por
|
|
# cima do smtp_settings da classe — é daí que vem, de graça, o fallback para
|
|
# o que o config/initializers/smtp.rb montou a partir do .env.
|
|
class ApplicationMailer < ActionMailer::Base
|
|
layout 'mailer'
|
|
|
|
default from: proc { ConfiguracaoNotificacao.remetente },
|
|
delivery_method_options: proc { ConfiguracaoNotificacao.opcoes_de_entrega }
|
|
end
|