SMTP 비밀번호가 더 이상 작동하지 않습니다

안녕하세요!

불행히도 SMTP 비밀번호를 재설정해야 했습니다 – app.yml 파일에서 비밀번호를 변경했습니다.

/logs 파일에는 Job exception: 535 Refused. Authentication failed. Rate limit hit or SMTP disabled. 라는 메시지가 표시됩니다.

이전 app.yml 파일을 찾아보려고 했는데, 웹 프런트엔드에서 만든 백업은 모든 이미지와 dump.sql 파일만 수집하는 것 같더라고요? 음… 조금 실망스럽지만 어쩔 수 없는 것 같습니다.

그럼에도 불구하고 … 비밀번호는 " " 안에 있고 정확합니다. 도메인도, 사용자 이름도 모두 정확합니다. 몇 시간째 빠져나오지 못하고 있는 이 설정 지옥에서 벗어날 수 있는 방법을 알려주실 분은 없나요? 무엇을 시도하거나 확인하거나 해야 할까요?

감사합니다

다음은 Ruby 오류 로그입니다:

/usr/local/lib/ruby/2.7.0/net/smtp.rb:975:in `check_auth_response'
/usr/local/lib/ruby/2.7.0/net/smtp.rb:736:in `auth_plain'
/usr/local/lib/ruby/2.7.0/net/smtp.rb:728:in `authenticate'
/usr/local/lib/ruby/2.7.0/net/smtp.rb:565:in `do_start'
/usr/local/lib/ruby/2.7.0/net/smtp.rb:518:in `start'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/mail-5b700fc95ee6/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/mail-5b700fc95ee6/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/mail-5b700fc95ee6/lib/mail/message.rb:2141:in `do_delivery'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/mail-5b700fc95ee6/lib/mail/message.rb:253:in `block in deliver'
actionmailer-6.1.3.1/lib/action_mailer/base.rb:559:in `block in deliver_mail'
activesupport-6.1.3.1/lib/active_support/notifications.rb:203:in `block in instrument'
activesupport-6.1.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.1.3.1/lib/active_support/notifications.rb:203:in `instrument'
actionmailer-6.1.3.1/lib/action_mailer/base.rb:557:in `deliver_mail'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/mail-5b700fc95ee6/lib/mail/message.rb:253:in `deliver'
actionmailer-6.1.3.1/lib/action_mailer/message_delivery.rb:119:in `block in deliver_now'
actionmailer-6.1.3.1/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
actionmailer-6.1.3.1/lib/action_mailer/message_delivery.rb:118:in `deliver_now'
/var/www/discourse/lib/email/sender.rb:234:in `send'
/var/www/discourse/app/jobs/regular/user_email.rb:70:in `send_user_email'
/var/www/discourse/app/jobs/regular/user_email.rb:25:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.2.1/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.2.1/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.2.1/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.2.1/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_retry.rb:112:in `local'
sidekiq-6.2.1/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'
sidekiq-6.2.1/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.2.1/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.2.1/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_retry.rb:79:in `global'
sidekiq-6.2.1/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.2.1/lib/sidekiq/logger.rb:11:in `with'
sidekiq-6.2.1/lib/sidekiq/job_logger.rb:33:in `prepare'
sidekiq-6.2.1/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.2.1/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.2.1/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.2.1/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.2.1/lib/sidekiq/util.rb:43:in `watchdog'
sidekiq-6.2.1/lib/sidekiq/util.rb:52:in `block in safe_thread'

해당 변경 사항을 적용한 후 재빌드(rebuild)를 수행하셨나요?

app.yml에 적용된 모든 변경 사항은 재빌드를 해야만 활성화됩니다.

네… 항상 그렇습니다… 버그 수정에 너무 많은 시간이 걸리거든요.

이것은 비밀번호가 잘못되었거나 메일 제공업체가 서비스를 거부하고 있다는 것을 의미합니다.

아래 명령을 실행하여 SMTP 비밀번호를 변경하는 데 걸리는 시간을 조금 절약할 수 있습니다.

./launcher destroy app;./launcher start app

SMTP 설정이 변경된 경우에만 작동하지만, 모든 설정에 적용되는 것은 아니라고 생각합니다.

네, 나도 그렇게 생각해요… 하지만 모든 걸 시도해 봤는데… 해결이 안 됐어요.

현재 app.yml의 ENV 섹션은 다음과 같습니다:

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## 동시 웹 요청은 몇 개까지 지원됩니까? 메모리와 CPU 코어 수에 따라 달라집니다.
  ## bootstrap이 감지된 CPU에 따라 자동으로 설정하거나, 직접 덮어쓸 수 있습니다.
  UNICORN_WORKERS: 2

  ## TODO: 이 Discourse 인스턴스가 응답할 도메인 이름
  ## 필수 항목입니다. Discourse는 IP 주소만으로는 작동하지 않습니다.
  DISCOURSE_HOSTNAME: forum.bgh-hamburg.de

  ## 컨테이너가 위에서 지정한 도메인 이름(-h 옵션)과 동일한 이름으로 시작되도록 하려면 주석을 해제하세요 (기본값 "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: 초기 가입 시 관리자 및 개발자로 설정할 쉼표로 구분된 이메일 목록
  ## 예: 'user1@example.com,user2@example.com'
  #DISCOURSE_DEVELOPER_EMAILS: 'bgh@forum.bgh-hamburg.de'

  ## TODO: 새 계정을 검증하고 알림을 보내는 데 사용되는 SMTP 메일 서버
  # SMTP 주소, 사용자 이름, 비밀번호가 필요합니다.
  # 경고: SMTP 비밀번호에 '#' 문자가 있으면 문제가 발생할 수 있습니다!

  #DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ADDRESS: forum.bgh-hamburg.de
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: bgh@forum.bgh-hamburg.de
  DISCOURSE_SMTP_PASSWORD: sdfoksdfpokasdpkopasdkfdfj
  #DISCOURSE_SMTP_DOMAIN: desde.uberspace.de
  #DISCOURSE_SMTP_ENABLE_START_TLS: true
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

#로 시작하는 줄들은 이미 시도해 본 내용입니다… 하지만 여전히 작동하지 않아요. 이 자격 증명으로 Mail.app을 사용하면 로그인하고 메일을 주고받는 데 아무 문제가 없습니다(시도가 불가능하도록 일부 내용을 변경했습니다). 또한 호스트에서 587 포트로 telnet을 통해 연결해 보았는데, 예상대로 잘 작동합니다… 하지만 여전히 app.yml에 뭔가 잘못된 것이 있는 것 같아요. 어떻게 해야 할지 모르겠어요…

참고로… /logs의 내 오류 메시지가 다음과 같이 바뀌었습니다:

Job exception: -ERR [AUTH] Authentication failed.

또는

틀린 말일 수 있지만, 아래 설정이 더 합리적이라고 생각됩니다.

SMTP 주소: desde.uberspace.de
SMTP 도메인: 포럼 도메인

uberspace가 메일 제공업체라고 가정하고, 보통 이 첫 번째 설정에는 메일 제공업체의 SMTP 도메인을 사용합니다.

정말 감사합니다! 해결되었습니다!