Mise à jour / Étapes de reproduction (Discourse 3.6)
J’ai effectué une reproduction explicite de ce problème en utilisant la console Rails pour confirmer ce qui se passe au niveau des tâches. Voici ce que nous observons pour l’utilisateur concerné :
site : hvac
maintenant : 2025-10-15 17:23:01 UTC
disable_emails : “non”
disable_digest_emails : false
default_email_digest_frequency_minutes : 10080
ENV_DISABLE_EMAILS : nil
perform_deliveries : nil
smtp_address : “smtp.netcorecloud.net”
smtp_port : 587
– UTILISATEUR –
id : 42122
username : milnerlarry
active : true
suspended : false
email_digests : true
digest_after_minutes : 10080
eligible_by_time : true
– DERNIERS 15 JOURNAUX D’EMAIL –
2025-10-01 | type=digest | bounced=false
2025-09-22 | type=digest | bounced=false
perform_deliveries_now : true
Ensuite, lorsque j’ai forcé la construction manuelle du digest, Discourse pense qu’il le construit mais renvoie :
mail = UserNotifications.digest(u)
=> Digest mail construit : subject=nil bytes=50
Donc, Discourse pense qu’il construit le digest, mais il est en fait vide (subject=nil) – et est donc silencieusement ignoré lorsque la tâche s’exécute. Aucune entrée EmailLog n’est créée et rien n’est envoyé.
Ceci confirme :
- La tâche s’enfile avec succès
- Le SMTP et les envois sont activés
- La tâche de digest se termine sans erreur car le service de messagerie renvoie un digest vide
L’exécution de la tâche en ligne avec :
Jobs::UserEmail.new.execute(“type” => “digest”, “user_id” => u.id”)
produit le même résultat – aucune nouvelle ligne EmailLog n’est créée.
Cause possible :
Il semble que le digest soit ignoré en raison d’une condition de “digest vide” – peut-être quelque chose a-t-il changé dans la façon dont Discourse 3.6 évalue le contenu à inclure. La vue Admin → Emails → Test de digest rend le digest correctement, mais la tâche d’arrière-plan ne voit rien à inclure.
Résumé :
Utilisateur éligible
Email actif + SMTP valide
Le test de digest de l’administrateur s’affiche correctement
La tâche de digest d’arrière-plan s’ignore silencieusement (digest vide)
Aucune tentative d’enregistrement EmailLog ou d’envoi enregistrée
J’aimerais une confirmation de l’équipe – y a-t-il potentiellement une régression dans la façon dont UserNotifications.digest collecte le contenu dans la version 3.6 ?