Chat-Zusammenfassungs-E-Mails werden für Benutzer mit einer gültigen E-Mail übersprungen:
Ich habe einige Analysen durchgeführt und glaube, den Grund zu kennen:
Hier ist letztendlich, wo das Überspringen passiert:
Dies liegt daran, dass message.to leer ist.
message.to ist leer, da die an send_user_email gesendeten Argumente keine to_address enthalten und dies nie mit der primären E-Mail des Benutzers angereichert wird, z. B.:
Dies wird vom Chat Mailer aufgerufen, und Sie werden feststellen, dass to_address fehlt:
und das ist vielleicht in Ordnung, aber bis Sie oben in send_user_email ankommen, glaube ich, dass to_address mit der E-Mail des Benutzers angereichert werden sollte, damit der E-Mail-Versender beim Weiterleiten Zugriff auf diese Eigenschaft erhält und der E-Mail-Versand erfolgreich ist.
Als ich diesen kleinen Monkey-Patch zu send_user_email hinzufügte, verschwand das Problem:
# CORE BUG: if we don't set to_address, ultimately the email won't send and will be skipped.
# This is a core bug and we will need to raise it on Meta.
if args[:to_address].blank? && user&.primary_email&.email
args[:to_address] = user&.primary_email&.email
end
Ich habe mich ein wenig damit beschäftigt, und wenn wir der Spur folgen, sollte es eine Anreicherung geben:
Es beginnt mit dem E-Mail-Versender hier und dann ruft es die Benutzerbenachrichtigungserweiterung hier auf, die mit der Benutzer-E-Mail hier angereichert wird und sie dann an den E-Mail-Hilfshelfer hier weitergibt und schließlich die Adresse im Nachrichten-Builder hier festlegt, bevor er sie sendet.
Abgesehen davon funktioniert die Chat-Zusammenfassungs-E-Mail bereits auf anderen Websites, daher gibt es hier wahrscheinlich ein anderes Problem.
Ich denke, eine Zwischenlösung besteht darin, die Benutzer-E-Mail an den Job zu übergeben, was uns von Anfang an mehr Vertrauen/Sichtbarkeit gibt, dass die richtigen Daten vorhanden sind: