Os e-mails de Resumo de Chat estão sendo ignorados para usuários com um e-mail válido:
Fiz algumas análises e acredito saber o motivo:
Aqui é onde o pulo acontece:
Isso ocorre porque message.to está em branco.
message.to está em branco porque os argumentos enviados para send_user_email não incluem to_address e isso nunca é enriquecido com o e-mail principal do usuário, por exemplo:
Isso é chamado pelo Chat Mailer, e você notará que to_address está faltando:
E isso talvez esteja tudo bem, mas quando você chega ao topo de send_user_email, acredito que to_address deveria ser enriquecido com o e-mail do usuário para que, quando ele for passado adiante, o remetente receba acesso a essa propriedade e o envio de e-mail seja bem-sucedido.
Quando adicionei este pequeno monkey-patch a send_user_email, o problema desaparece:
# BUG CORE: se não definirmos to_address, eventualmente o e-mail não será enviado e será ignorado.
# Este é um bug core e precisaremos levantá-lo no Meta.
if args[:to_address].blank? && user&.primary_email&.email
args[:to_address] = user&.primary_email&.email
end
Eu investiguei um pouco isso e, se seguirmos o rastro, deve haver um enriquecimento:
Começa do emailer aqui e então chama a extensão de notificação do usuário que enriquece com o email do usuário aqui e então o passa para o helper de construção de email aqui e finalmente define o endereço no construtor de mensagens aqui antes de enviá-lo.
Além disso, o email de resumo do chat já funciona em outros sites, então provavelmente há algo mais causando um problema aqui.
Acho que uma solução provisória é passar o email do usuário para o job, o que nos dará um pouco mais de confiança/visibilidade de que os dados corretos estão lá desde o início: