Los correos electrónicos de resumen de chat se omiten para los usuarios con un correo electrónico válido:
He realizado un análisis y creo que sé por qué:
Aquí es donde finalmente ocurre el salto:
Esto se debe a que message.to está en blanco.
message.to está en blanco porque los argumentos enviados a send_user_email no incluyen to_address y esto nunca se enriquece con el correo electrónico principal del usuario, por ejemplo:
Esto es llamado por Chat Mailer, y notará que falta to_address:
Y eso está bien, pero para cuando llegas a la parte superior de send_user_email, creo que to_address debería enriquecerse con el correo electrónico del usuario para que, cuando se pase, el remitente de correo electrónico tenga acceso a esta propiedad y el envío de correo electrónico tenga éxito.
Cuando agregué este pequeño parche a send_user_email, el problema desaparece:
# BUG PRINCIPAL: si no establecemos to_address, finalmente el correo electrónico no se enviará y se omitirá.
# Este es un error principal y tendremos que plantearlo en Meta.
if args[:to_address].blank? && user&.primary_email&.email
args[:to_address] = user&.primary_email&.email
end
Investigué un poco y, si seguimos el rastro, debería haber un enriquecimiento:
Comienza desde el emisor de correo aquí y luego llama a la extensión de notificación de usuario que enriquece con el correo electrónico del usuario aquí y luego lo pasa al ayudante de construcción de correo aquí y finalmente establece la dirección en el constructor de mensajes aquí antes de enviarlo.
Aparte de eso, el correo electrónico de resumen del chat ya funciona en otros sitios, por lo que es probable que algo más esté causando un problema aquí.
Creo que una solución provisional es pasar el correo electrónico del usuario al trabajo, lo que debería darnos un poco más de confianza/visibilidad de que los datos correctos están allí desde el principio: