안녕하세요,
사용자 이름과 비밀번호가 필요 없는 SMTP 릴레이를 통해 이메일을 보내는 데 문제가 발생하고 있습니다. mailx / sendmail을 사용하여 릴레이로 이메일을 보내는 것은 가능합니다.
해당 설정은 다음과 같습니다.
DISCOURSE_SMTP_ADDRESS: xyz.example.com (가림 처리됨)
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_AUTHENTICATION: plain
discourse_doctor를 실행할 때 반환되는 오류는 다음과 같습니다.
Net::ReadTimeout
데이터를 전송하는 것 같지만 587 포트에서 아무 응답도 받지 못하는 것으로 보아, 전송된 SMTP 메시지가 잘못 작성된 것 같습니다. 이는 Wireshark 트레이스로 증명할 수 있습니다.
문제를 더 자세히 분석할 수 있도록 더 자세한 로깅이나 추가적인 디버깅을 활성화하는 방법에 대해 설명해 주실 수 있을까요? 일반적인 로그에서는 아무런 정보도 얻을 수 없습니다. backtrace를 찾았지만, 저는 Ruby 개발자가 아니기 때문에 이를 해석할 수 없습니다.
/usr/local/lib/ruby/3.2.0/net/protocol.rb:229:in `rbuf_fill'
/usr/local/lib/ruby/3.2.0/net/protocol.rb:199:in `readuntil'
/usr/local/lib/ruby/3.2.0/net/protocol.rb:209:in `readline'
net-smtp-0.3.3/lib/net/smtp.rb:1057:in `recv_response'
net-smtp-0.3.3/lib/net/smtp.rb:659:in `block in do_start'
net-smtp-0.3.3/lib/net/smtp.rb:1067:in `critical'
net-smtp-0.3.3/lib/net/smtp.rb:659:in `do_start'
net-smtp-0.3.3/lib/net/smtp.rb:611:in `start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bundler/gems/mail-5b700fc95ee6/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bundler/gems/mail-5b700fc95ee6/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bundler/gems/mail-5b700fc95ee6/lib/mail/message.rb:269:in `deliver!'
/usr/local/lib/ruby/3.2.0/delegate.rb:87:in `method_missing'
/var/www/discourse/lib/email/sender.rb:286:in `send'
/var/www/discourse/app/jobs/regular/user_email.rb:79:in `send_user_email'
/var/www/discourse/app/jobs/regular/user_email.rb:39:in `execute'
/var/www/discourse/plugins/chat/lib/chat/user_email_extension.rb:6:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
sidekiq-6.5.8/lib/sidekiq/processor.rb:202:in `execute_job'
sidekiq-6.5.8/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'
sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:182:in `invoke'
sidekiq-6.5.8/lib/sidekiq/processor.rb:169:in `block in process'
sidekiq-6.5.8/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.5.8/lib/sidekiq/job_retry.rb:113:in `local'
sidekiq-6.5.8/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.5.8/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
sidekiq-6.5.8/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.5.8/lib/sidekiq/processor.rb:263:in `stats'
sidekiq-6.5.8/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.5.8/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.5.8/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.5.8/lib/sidekiq/job_retry.rb:80:in `global'
sidekiq-6.5.8/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.5.8/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.5.8/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.5.8/lib/sidekiq/processor.rb:168:in `process'
sidekiq-6.5.8/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.5.8/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.5.8/lib/sidekiq/component.rb:8:in `watchdog'
sidekiq-6.5.8/lib/sidekiq/component.rb:17:in `block in safe_thread'
애플리케이션을 최신 안정 버전으로 다운그레이드해 보았지만, 이 문제는 해결되지 않았습니다. 이전에 이 작업을 담당하던 직원이 휴가 중이라, 최신 업데이트가 수행되기 전까지 어떤 버전이었는지 확인하지 못했습니다. 또한 최근 이메일 관련 영역에서 코드 변경 사항이 있었음을 알게 되었습니다. 혹시 그 부분에 문제가 있는 것일까요?
감사합니다.

