Kristian
(Kristian)
1
DigitalOcean の Discourse ドロップレットからメールを送信できません。表示されるエラーは以下の通りです。
Delivered mail d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099.4ms)
Job exception: 504 5.7.4 Unrecognized authentication type [BL0PR0102CA0036.prod.exchangelabs.com]
私の設定は以下の通りです。
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: foo@bar.com
DISCOURSE_SMTP_PASSWORD: "mypassword"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (オプション、デフォルトは true)
ドロップレットから telnet を試しましたが、エラーは発生しませんでした。
telnet smtp.office365.com 587
問題の原因は何でしょうか?ローカル環境で Python を使用して同様の SMTP 設定の組み合わせを試したところ正常に動作したため、設定自体に問題はないと考えています。
mik
2
こんにちは、
以下を追加してみてください:
DISCOURSE_SMTP_AUTHENTICATION: login
app.yml の末尾に:
- exec: rails r "SiteSetting.notification_email='foo@bar.com'"
「いいね!」 1
Kristian
(Kristian)
3
こんにちは、mik
exec ステートメントが失敗しました:
FAILED
--------------------
Pups::ExecError: rails r "SiteSetting.notification_email='foo@bar.com'"` が失敗し、戻り値は #<Process::Status: pid 2229 exit 2> です
失敗の場所: /pups/lib/pups/exec_command.rb:112:in `spawn'
以下のパラメータで exec が失敗しました: "rails r \"SiteSetting.notification_email='foo@bar.com'\"`"
9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae
** ブートストラップに失敗しました ** 上記にスクロールして、以前のエラーメッセージを確認してください。複数のエラーが存在する可能性があります。
./discourse-doctor を実行すると、問題の診断に役立つ場合があります。
Kristian
(Kristian)
4
exec コマンドを除外し、以下を追加してもエラーは発生しません。エラーではなく、以下のみが表示されます:
DISCOURSE_SMTP_AUTHENTICATION: login
しかし、受信トレイにはメールが届きません(スパムフォルダも確認しました)。
mik
5
良い設定を見つけるために、またエラーメッセージを取得するために、以下を試してみてください。
docker exec -t -i id_of_your_container /bin/bash
次に、コンテナ内で以下を実行します。
apt install s-nail
echo "This is the message body and contains the message" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com
smtp-auth=login のような値を変更して、適切な設定を探してみてください。そうすれば、より具体的なエラーメッセージが表示されるかもしれません。
「いいね!」 2
Kristian
(Kristian)
6
echo "これはメッセージ本文で、メッセージを含んでいます" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com
これで動作し、メールを受信できました!ただし、パスワードが「!」で始まるため、smtp-auth-password="xxxxxxxx"をシングルクォートに変更する必要がありました。
私の設定と異なる点として見えるのは、このフラグだけです:
-S ssl-verify=ignore
これを追加する必要がありますか?
ご協力ありがとうございます!
mik
7
以下の設定を追加してみてください:
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
これは config において ssl-verify=ignore と同じです。
Kristian
(Kristian)
8
エラーはありませんが、受信トレイにメールが届きません
まとめると、現在の設定は以下の通りです:
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: info@foo.com
DISCOURSE_SMTP_PASSWORD: 'xxx'
DISCOURSE_SMTP_ENABLE_START_TLS: true # (オプション、デフォルトは true)
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
mik
9
もう一度お試しください(これは s-nail コマンドラインテストの「-r」オプションと同じです:
- exec: rails r "SiteSetting.notification_email='foo@bar.com'"
メールアドレスはアカウントのものと同じである必要があります。
また、app.yml ファイル内のインデントを確認し、先頭に「-」を付けるのを忘れないでください。2 個のスペース、次に「-」、次にスペース、そして「exec…」という形式です :)」
Capstan
(William Carter)
10
私も同じ問題に直面しています。Digital Ocean で Discourse を搭載したドロプレットを起動しました。これらの提案をすべて試し、毎回(sudo ./launcher rebuild app)再構築した後、“sudo ./discourse-doctor” コマンドを実行しました。
504 5.7.4 Unrecognized authentication type [BL0PR01CA0015.prod.exchangelabs.com]
コンテナ内からの s-nail は私の場合も問題なく動作しました。“-S ssl-verify=ignore” クラウスなしで試しても正常に動作しました。Digital Ocean のドロプレットにインストールされたものが正しくメールを送信していることを確認できる方はいますか?
riking
(Kane York)
12
メール管理者に smtp_authentication の有効な値を確認し、動作する値に DISCOURSE_SMTP_AUTHENTICATION を設定してください。
「いいね!」 1
Kristian
(Kristian)
13
ご支援いただきありがとうございました。諦めて、別のフォーラムソリューションに切り替えました。
「いいね!」 1
Capstan
(William Carter)
14
これは Microsoft です。彼らの指示は以下の通りで、smtp_authentication は指定されていません。
このようなサーバーはサポートしていないのでしょうか?アカウントを作成して接続し、必要な設定を教えてください。
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
これで私の問題が解決しました!ありがとうございます!
「いいね!」 1