SMTPパスワードが機能しなくなりました

こんにちは!

残念ながら、SMTP パスワードの再設定が必要でした。app.yml で変更しました。

/logs には「Job exception: 535 Refused. Authentication failed. Rate limit hit or SMTP disabled.」と表示されています。

古い app.yml を探そうとしたのですが、Web フロントエンドからのバックアップは画像と 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'

その変更の後に再ビルドを行いましたか?

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 でログインし、メールの送受信を行うことは問題なくできます。また、ホストから telnet で 587 ポートに接続を試みても、期待通りに動作します。しかし、どうやら app.yml に何か問題があるようで、それが何なのか見当がつかないのです。

ところで、/logs のエラーメッセージが以下のように変更されました。

Job exception: -ERR [AUTH] Authentication failed.

または

間違っているかもしれませんが、以下の方が理にかなっているように思われます。

SMTP ADDRESS: desde.uberspace.de
SMTP DOMAIN: あなたのフォーラムのドメイン

uberspace はメールプロバイダーだと推測されます。通常、この最初の設定では、メールプロバイダーの SMTP ドメインを使用します。

本当にありがとうございます!これで解決しました!