# 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