SMTP 없는 설치에서 "메일 작업 실패" 메시지 발생

대시보드에서 다음 메시지를 받았습니다:

실패한 이메일 작업이 95개 있습니다. app.yml 파일을 확인하고 메일 서버 설정이 올바른지 확인하십시오.

해당 사이트는 discourse.diy 도메인에서 SMTP 없이 설치되었습니다.

Sidekiq에는 다음과 같이 표시됩니다:

다음 재시도 재시도 횟수 작업 인자 오류
지금 0 default Jobs::CallDiscourseHub {} Jobs::HandledExceptionWrapper: Wrapped TypeError: Unsupported command argument type: TrueClass
2분 후 5 low Jobs::UserEmail {“type”=>“digest”,“user_id”=>2,“current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args
3분 후 7 low Jobs::UserEmail {“type”=>“digest”,“user_id”=>2,“current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args
9분 후 9 low Jobs::UserEmail {“type”=>“digest”,“user_id”=>2,“current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args
12분 후 12 low Jobs::UserEmail {“type”=>“digest”,“user_id”=>2,“current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args
15분 후 13 low Jobs::UserEmail {“type”=>“digest”,“user_id”=>2,“current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ArgumentError: :arguments expected to be an Array of individual string args

사이트는 2026.1.0-latest (0caa6e34fe) 버전을 사용하고 있습니다.

이것이 정상적인가요?

게시해 주셔서 감사합니다!

해당 이메일이 작동하지 않는 것은 예상되는 현상이지만, 현재 확인되고 있는 에러는 다소 이례적입니다. 설정 환경의 다른 요인 때문일 수 있습니다.

테스트용 셀프호스트 인스턴스에서 초대장을 보내려고 하면 다음과 같은 에러가 표시됩니다:

Jobs::HandledExceptionWrapper: Wrapped Socket::ResolutionError: getaddrinfo: No address associated with hostname

그리고 대시보드에는 이 알림이 표시됩니다.

또한, 이 항목의 실패는 이메일과 _무관_합니다. /logs에서 이 문제에 대한 추가 정보를 확인할 수 있나요?

기록된 오류에는 두 가지 유형이 있습니다:

하나의 Job exception: Unsupported command argument type: TrueClass

redis-client-0.26.1/lib/redis_client/command_builder.rb:37:in `block in generate' 
redis-client-0.26.1/lib/redis_client/command_builder.rb:28:in `map!' 
redis-client-0.26.1/lib/redis_client/command_builder.rb:28:in `generate' 
redis-client-0.26.1/lib/redis_client.rb:351:in `call_v' 
redis-5.4.0/lib/redis/client.rb:90:in `call_v' 
rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method' 
redis-5.4.0/lib/redis.rb:152:in `block in send_command' 
redis-5.4.0/lib/redis.rb:151:in `synchronize' 
redis-5.4.0/lib/redis.rb:151:in `send_command' 
redis-5.4.0/lib/redis/commands/hashes.rb:51:in `hmset' 
redis-5.4.0/lib/redis/commands/hashes.rb:66:in `mapped_hmset' 
/var/www/discourse/lib/discourse_redis.rb:144:in `public_send' 
/var/www/discourse/lib/discourse_redis.rb:144:in `block (3 levels) in <class:DiscourseRedis>' 
/var/www/discourse/lib/discourse_redis.rb:29:in `ignore_readonly' 
/var/www/discourse/lib/discourse_redis.rb:144:in `block (2 levels) in <class:DiscourseRedis>' 
/var/www/discourse/lib/discourse_updates.rb:116:in `block in missing_versions=' 
/var/www/discourse/lib/discourse_updates.rb:114:in `each' 
/var/www/discourse/lib/discourse_updates.rb:114:in `missing_versions=' 
/var/www/discourse/app/jobs/scheduled/call_discourse_hub.rb:19:in `execute' 
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform' 
rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:301:in `each' 
/var/www/discourse/app/jobs/base.rb:301:in `perform' 
/var/www/discourse/app/jobs/base.rb:381:in `perform' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/suppress_user_email_errors.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run' 
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog' 
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread' 

그리고 1,300개의 Job exception: :arguments expected to be an Array of individual string args:

mail-2.9.0/lib/mail/network/delivery_methods/sendmail.rb:53:in `initialize' 
mail-2.9.0/lib/mail/message.rb:278:in `new' 
mail-2.9.0/lib/mail/message.rb:278:in `delivery_method' 
actionmailer-8.0.4/lib/action_mailer/delivery_methods.rb:66:in `wrap_delivery_behavior' 
actionmailer-8.0.4/lib/action_mailer/delivery_methods.rb:80:in `wrap_delivery_behavior!' 
actionmailer-8.0.4/lib/action_mailer/base.rb:876:in `mail' 
/var/www/discourse/lib/email/build_email_helper.rb:8:in `build_email' 
/var/www/discourse/app/mailers/user_notifications.rb:369:in `digest' 
actionpack-8.0.4/lib/abstract_controller/base.rb:215:in `process_action' 
actionpack-8.0.4/lib/abstract_controller/callbacks.rb:261:in `block in process_action' 
activesupport-8.0.4/lib/active_support/callbacks.rb:100:in `run_callbacks' 
actionpack-8.0.4/lib/abstract_controller/callbacks.rb:260:in `process_action' 
actionpack-8.0.4/lib/abstract_controller/base.rb:152:in `process' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:29:in `block in process' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:21:in `handle_exceptions' 
actionmailer-8.0.4/lib/action_mailer/rescuable.rb:28:in `process' 
actionview-8.0.4/lib/action_view/rendering.rb:40:in `process' 
actionmailer-8.0.4/lib/action_mailer/base.rb:652:in `block in process' 
activesupport-8.0.4/lib/active_support/notifications.rb:212:in `instrument' 
actionmailer-8.0.4/lib/action_mailer/base.rb:651:in `process' 
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:136:in `block in processed_mailer' 
<internal:kernel>:90:in `tap'
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:135:in `processed_mailer' 
actionmailer-8.0.4/lib/action_mailer/message_delivery.rb:32:in `__getobj__' 
/usr/local/lib/ruby/3.3.0/delegate.rb:84:in `method_missing'
/var/www/discourse/lib/email/sender.rb:51:in `send' 
/var/www/discourse/app/jobs/regular/user_email.rb:80:in `send_user_email' 
/var/www/discourse/app/jobs/regular/user_email.rb:40:in `execute' 
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform' 
rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:301:in `each' 
/var/www/discourse/app/jobs/base.rb:301:in `perform' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/suppress_user_email_errors.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track' 
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse' 
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch' 
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one' 
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run' 
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog' 
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread' 

이 인스턴스에는 두 개의 사용자 정의 플러그인이 설치되어 있습니다. 제거해 보고 오류가 여기서 발생하는지 확인해 볼 수 있습니다.

음, 둘 다 플러그인과 관련이 없어 보이네. 내 인스턴스(3주 전 설치)를 업데이트해서 같은 문제가 발생하는지 확인해볼게.

아마도 Disable emails 설정은 해당 항목에서 yes로 되어 있어야 할 것 같습니다.

맞아, 그게 원인이겠네. SMTP 없이 설치할 경우 자동으로 “아니요” "예"로 설정되어야 하는 것 같아?

설정이 "비활성화"이므로 를 말씀하시는 거죠.

그렇긴 한데, 그렇게 하면 이메일이 비활성화되어 있다는 경고가 떠서 정말 짜증나는 전역 배너가 뜹니다.