요약 이메일 전송 불가: Jobs::UserEmail 비추천 통보 / Rails를 통한 큐 등록 후 이메일 미수신

Digest(요약 이메일)을 보내지 못하고 있습니다. Digest 작업은 대기열에 추가되지만 실제로는 전송되지 않습니다. 이메일 로그도 확인되지 않습니다.

  • Sidekiq에서 digest 작업이 대기열에 추가되는 것을 확인할 수 있습니다.
  • 실제로 digest 이메일이 전송되지 않습니다.
  • 각 작업은 다음을 로그로 남깁니다:
Deprecation notice: Jobs::UserEmail was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than the ones supplied to `enqueue`. Argument values should be strings, booleans, numbers, or nil (or arrays/hashes of those value types). (deprecated since Discourse 2.9) (removal in Discourse 3.0)
  • SMTP 또는 Sidekiq 프로세스 문제는 없습니다.
  • digest가 아닌 모든 이메일(테스트 이메일 포함)은 정상적으로 전송 및 전달됩니다.

전체 에러 로그는 다음과 같습니다.
Info:

[privateinvestigator] Deprecation notice: Jobs::UserEmail was enqueued with argument values which do not cleanly serialize to/from JSON. This means that the job will be run with slightly different values than the ones supplied to `enqueue`. Argument values should be strings, booleans, numbers, or nil (or arrays/hashes of those value types). (deprecated since Discourse 2.9) (removal in Discourse 3.0) 
At (discourse):89:in `block (3 levels) in <main>`

Backtrace

activesupport-8.0.3/lib/active_support/broadcast_logger.rb:218:in `block in dispatch' 
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `map' 
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `dispatch' 
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:129:in `warn' 
/var/www/discourse/lib/discourse.rb:1053:in `deprecate' 
/var/www/discourse/app/jobs/base.rb:407:in `enqueue' 
(discourse):89:in `block (3 levels) in <main>'
activerecord-8.0.3/lib/active_record/relation/batches.rb:88:in `each' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:88:in `block in find_each' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:172:in `block in find_in_batches' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:461:in `block in batch_on_unloaded_relation' 
<internal:kernel>:187:in `loop'
activerecord-8.0.3/lib/active_record/relation/batches.rb:434:in `batch_on_unloaded_relation' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:289:in `in_batches' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:171:in `find_in_batches' 
activerecord-8.0.3/lib/active_record/relation/batches.rb:87:in `find_each' 
(discourse):86:in `with_index'
(discourse):86:in `block (2 levels) in <main>'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:203:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
(discourse):55:in `block in <main>'
(discourse):54:in `each'
(discourse):54:in `<main>'
irb-1.15.2/lib/irb/workspace.rb:101:in `eval' 
irb-1.15.2/lib/irb/workspace.rb:101:in `evaluate' 
irb-1.15.2/lib/irb/context.rb:591:in `evaluate_expression' 
irb-1.15.2/lib/irb/context.rb:557:in `evaluate' 
irb-1.15.2/lib/irb.rb:201:in `block (2 levels) in eval_input' 
irb-1.15.2/lib/irb.rb:512:in `signal_status' 
irb-1.15.2/lib/irb.rb:193:in `block in eval_input' 
irb-1.15.2/lib/irb.rb:272:in `block in each_top_level_statement' 
<internal:kernel>:187:in `loop'
irb-1.15.2/lib/irb.rb:269:in `each_top_level_statement' 
irb-1.15.2/lib/irb.rb:192:in `eval_input' 
irb-1.15.2/lib/irb.rb:173:in `block in run' 
irb-1.15.2/lib/irb.rb:172:in `catch' 
irb-1.15.2/lib/irb.rb:172:in `run' 
railties-8.0.3/lib/rails/commands/console/irb_console.rb:113:in `start' 
railties-8.0.3/lib/rails/commands/console/console_command.rb:59:in `start' 
railties-8.0.3/lib/rails/commands/console/console_command.rb:8:in `start' 
railties-8.0.3/lib/rails/commands/console/console_command.rb:87:in `perform' 
thor-1.4.0/lib/thor/command.rb:28:in `run' 
thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command' 
railties-8.0.3/lib/rails/command/base.rb:178:in `invoke_command' 
thor-1.4.0/lib/thor.rb:538:in `dispatch' 
railties-8.0.3/lib/rails/command/base.rb:73:in `perform' 
railties-8.0.3/lib/rails/command.rb:65:in `block in invoke' 
railties-8.0.3/lib/rails/command.rb:143:in `with_argv' 
railties-8.0.3/lib/rails/command.rb:63:in `invoke' 
railties-8.0.3/lib/rails/commands.rb:18:in `<main>' 
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require' 
script/rails:8:in `<top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `kernel_load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:452:in `exec'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor.rb:538:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:35:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:29:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:28:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:20:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

다른 분들도 동일한 문제를 겪고 계신가요?
이를 어떻게 수정할 수 있을까요?

@emonunix 커뮤니티에서 질문을 도와줄 수 있는 사람이 없는 것 같습니다. 죄송합니다! 문제를 해결하셨나요?

아니면, 설정에 대해 알려줄 수 있는 부분이 있나요? 공식 설치 지침을 따라 구축한 셀프호스트드 사이트를 사용 중인가요? 사이트가 최신 상태인가요?

안녕하세요 @tobiaseigen. 후속 조치에 감사드립니다.

현재도 digest 관련 문제가 지속되고 있습니다.
저희는 Discourse 멀티사이트 환경을 사용 중인데, 흥미롭게도 일부 사이트는 대상 사용자에게 digest를 정상적으로 전송하는 반면, 다른 사이트들은 digest 작업을 큐에 추가하되 실제로는 전송하지 않는 상황이 발생합니다.

Rails에서 digest 전송을 수동으로 트리거해도 동일한 현상이 나타납니다:

  • 작업이 Sidekiq → Queued에 표시되지만,
  • 실제 이메일은 전송되지 않으며,
  • 이메일 로그에도 해당 항목이 표시되지 않습니다.

사용자 활성화, 비밀번호 재설정, 테스트 이메일 등 모든 일반(비-digest) 이메일은 정상적으로 전송됩니다.

저희는 이미 공식 Discourse 설정 지침을 따르고 있으며, 설치 환경은 최신 상태입니다.
호스트 머신에는 Ubuntu 20.04 LTS가 설치되어 있습니다.

추가 진단을 위해 어떤 구체적인 정보나 로그를 공유할 수 있는지 알려주시면 감사하겠습니다.

디제스트와 관련된 설정을 변경하셨나요? Suppress digest email after days 같은 설정이요.

@moin, Suppress digest email after days 값을 늘리고 줄여가며 시도해 보았지만
아무 변화가 없었습니다.

이것이 Digest/Activity Summary emails not sending for users even though all conditions are met (Discourse 3.6)? 와도 관련이 있나요? 이 주제를 닫고, @Jacob_Peebles 님과 함께 해당 곳에서 다이제스트 전송 문제를 해결하는 데 필요한 도움을 받을 수 있는지 확인해 보겠습니다. 만약 제 판단이 틀렸다면 개인 메시지로 알려주시면 이 주제를 다시 열겠습니다.