업데이트 / 재현 단계 (Discourse 3.6)
Rails 콘솔을 사용하여 작업(job) 레벨에서 어떤 일이 일어나고 있는지 확인하기 위해 명시적인 재현 테스트를 수행했습니다. 영향받는 사용자의 경우 다음 내용을 확인할 수 있습니다:
site: hvac
now: 2025-10-15 17:23:01 UTC
disable_emails: “no”
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
– USER –
id: 42122
username: XXXXXXXXXX
active: true
suspended: false
email_digests: true
digest_after_minutes: 10080
eligible_by_time: true
– LAST 15 EMAIL LOGS –
2025-10-01 | type=digest | bounced=false
2025-09-22 | type=digest | bounced=false
perform_deliveries_now: true
그런 다음 다이제스트를 수동으로 강제 빌드했을 때, Discourse는 다이제스트를 빌드하는 것으로 인식하지만 다음을 반환합니다:
mail = UserNotifications.digest(u)
=> Built digest mail: subject=nil bytes=50
즉, Discourse는 다이제스트를 빌드하는 것으로 생각하지만 실제로는 비어 있습니다(subject=nil) — 따라서 작업이 실행될 때 조용히 건너뛰어집니다. EmailLog 항목이 생성되지 않으며 아무것도 전송되지 않습니다.
이로써 다음 사항이 확인되었습니다:
다음과 같이 작업을 인라인으로 실행하면:
Jobs::UserEmail.new.execute(“type” => “digest”, “user_id” => u.id”)
동일한 결과가 나타납니다 — 새로운 EmailLog 행이 생성되지 않습니다.
가능한 원인:
다이제스트가 “빈 다이제스트” 조건으로 인해 건너뛰어지는 것 같습니다 — 아마도 Discourse 3.6에서 포함될 콘텐츠를 평가하는 방식이 변경되었을 수 있습니다. Admin → Emails → Digest Test 뷰에서는 다이제스트가 올바르게 렌더링되지만, 백그라운드 작업에는 포함할 것이 아무것도 보이지 않습니다.
요약:
대상 사용자
활성 이메일 + 유효한 SMTP
Admin Digest Test가 올바르게 렌더링됨
백그라운드 다이제스트 작업이 조용히 건너뛰어짐 (빈 다이제스트)
EmailLog 또는 전송 시도가 기록되지 않음
팀의 확인을 부탁드립니다 — 3.6에서 UserNotifications.digest가 콘텐츠를 수집하는 방식에 회귀(regression)가 있을 수 있나요?