Bug de saut du résumé du chat

Les e-mails de résumé de chat sont ignorés pour les utilisateurs ayant une adresse e-mail valide :

image

J’ai effectué une analyse et je pense savoir pourquoi :

Voici finalement où le saut se produit :

C’est parce que message.to est vide.

message.to est vide car les arguments envoyés à send_user_email n’incluent pas to_address et celui-ci n’est jamais enrichi avec l’e-mail principal de l’utilisateur, par exemple :

args: {"type"=>"chat_summary", "user_id"=>3, "force_respect_seen_recently"=>true, "current_site_id"=>"default"}

Ceci est appelé par Chat Mailer, et vous remarquerez que to_address est manquant :

Et c’est peut-être bien, mais au moment où vous arrivez en haut de send_user_email, je pense que to_address devrait être enrichi avec l’e-mail de l’utilisateur afin que lorsqu’il est transmis, l’expéditeur d’e-mails ait accès à cette propriété et que l’envoi d’e-mail réussisse.

Lorsque j’ai ajouté ce petit monkey-patch à send_user_email, le problème disparaît :

      # BUG CORE : si nous ne définissons pas to_address, l'e-mail ne sera finalement pas envoyé et sera ignoré.
      # C'est un bug de base et nous devrons le signaler sur Meta.
      if args[:to_address].blank? && user&.primary_email&.email
        args[:to_address] = user&.primary_email&.email
      end
2 « J'aime »

Merci beaucoup pour le débogage @merefield, je m’assurerai que le membre xp examine cela bientôt.

2 « J'aime »

J’ai un peu creusé la question, et si nous suivons la piste, il devrait y avoir un enrichissement :

Cela commence par l’emailer ici puis il appelle l’extension de notification utilisateur qui enrichit avec l’email utilisateur ici puis le transmet à l’aide de construction d’email ici et enfin définit l’adresse dans le constructeur de message ici avant de l’envoyer.

En dehors de cela, l’email de résumé de chat fonctionne déjà sur d’autres sites, il y a donc probablement autre chose qui cause un problème ici.

Je pense qu’une solution intermédiaire consiste à transmettre l’email de l’utilisateur au job, ce qui devrait nous donner un peu plus de confiance/visibilité sur le fait que les bonnes données sont présentes dès le départ :

3 « J'aime »

Fermer car nous n’avons pas eu de retour sur la correction.