blake
(Blake Erickson)
2019 年 11 月 15 日午後 2:58
1
このメッセージが管理ダッシュボードに表示されているため、ここへアクセスされた場合は、正しい場所にお越しください。
Discourse サーバーに SSH で接続し、以下の 2 つのコマンドを実行して mail-receiver を更新してください。
sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
/var/discourse/launcher rebuild mail-receiver
詳細については、引き続きお読みください。
なぜ mail-receiver を更新する必要があるのですか?
mail-receiver を、非推奨の API 認証方法 を使用しない新しいバージョンに更新する必要があります。
mail-receiver を最初にセットアップした際 には、ハードコードされたバージョン番号を含む containers/mail-receiver.yml ファイルの作成が求められました。
base_image: discourse/mail-receiver:x.x.x
この数値を手動で更新しなくても今後のアップデートを受け取るためには、バージョン番号を指定する代わりに release に変更してください。
/var/discourse/containers/mail-receiver.yml を編集して、以下のベースイメージを使用するように設定してください。
base_image: discourse/mail-receiver:release
もしよろしければ、以下のコマンドを実行するだけでファイルを編集できます。
sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
その後、以下のコマンドを実行して mail-receiver を最新バージョンに更新してください。
/var/discourse/launcher rebuild mail-receiver
「いいね!」 21
tkrunning
(Thomas K. Running)
2019 年 12 月 15 日午後 2:51
2
@blake 更新ガイドありがとうございます!ただし、何らかの理由で /var/discourse/containers/ に mail-receiver.yml ファイルがないようです。
root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: can't read /var/discourse/containers/mail-receiver.yml: No such file or directory
念のため ls を実行して実際の内容を確認しました:
root@nomadgate-community-eu:/var/discourse/containers# ls
app.yml app.yml.save
なぜ mail-receiver.yml ファイルが存在しないのか、またどのように対処すればよいかご存知でしょうか?ファイルがなくても、私のコミュニティではメール受信機能は正常に動作しているようですが…
編集:考えてみると、「mail-receiver」の設定をした記憶がありません。SendGrid のインバウンドパース webhook 機能を使用しているため、なぜ Discourse ダッシュボードにこのエラーが表示されるのか不思議です。
ただし、その機能を動作させるために API 認証情報を URL パラメータとして以下のように渡しています:/admin/email/handle_mail?api_key=xxx&api_username=xxx — これはもう機能しなくなるのでしょうか?もしそうなら、SendGrid 経由の受信メッセージのサポートを維持する他の方法はあるでしょうか?
「いいね!」 2
dltj
(Peter Murray)
2019 年 12 月 29 日午前 3:39
3
同意します。私の Discourse インストールには containers/mail-receiver.yml ファイルが見当たりません。現時点では、問題の影響は確認できていません。
blake
(Blake Erickson)
2019 年 12 月 29 日午前 4:06
4
@dltj 送信グリッド(SendGrid) または同様のサービスも利用されていますか?
pfaffman
(Jay Pfaffman)
2019 年 12 月 29 日午前 10:07
5
ただし、メール受信機能のインストールを行っていない場合は、アップグレードの必要はありません。
「いいね!」 2
blake
(Blake Erickson)
2019 年 12 月 29 日午後 12:25
6
もちろんですが、SendGrid やこのエンドポイントを利用できるように設定できる他のプロバイダーのサポート状況によっては、クエリパラメータベースの API 呼び出しに変更が生じる可能性があるため、できるだけ多くの情報を収集しようとしています。
「いいね!」 3
dltj
(Peter Murray)
2019 年 12 月 31 日午後 9:17
7
いいえ、SendGrid は使っていません。この Discourse インストールは数年前のものなので、当時、受信メールを Discourse に取り込むために /admin/email/handle_mail API を使用する AWS Lambda を作成しました。その Lambda スクリプトは Python 2.7 を使用していたため、書き換えが必要です…そろそろ現在の選択肢を確認する時期かもしれません。
奇妙なことに、Discourse の管理ダッシュボードには 「古いバージョンの mail-receiver が検出されました…」 というメッセージはもう表示されていません。へえ。 訂正します――メッセージは依然として表示されています。もしかすると、/admin/email/handle_mail エンドポイントに数日間受信メールが届かなかったため消えたのか、あるいはテストメッセージを送信した際に届いたため再び表示されたのかもしれません。
確認しましたが、Discourse への受信メールは引き続き正常に動作しています。
「いいね!」 1
blake
(Blake Erickson)
2019 年 12 月 31 日午後 10:34
8
その通りです。24 時間以内にメッセージを受信しないと、タイムアウトが発生します。
「いいね!」 2
dltj
(Peter Murray)
2020 年 1 月 1 日午前 1:07
9
ああ、わかりました。つまり、ダッシュボードの警告は ‘mail-receiver’ を使っているからではなく、API エンドポイントへのクエリパラメータとして、現在非推奨となった api_key と api_username を使っていることが原因なんですね。なるほど…修正は簡単そうです。ヒントをありがとう。
「いいね!」 3