HansHübner
(Hans Hübner)
2025 年 10 月 31 日午前 6:30
1
メールサーバーをセットアップし、API経由でHTTPでDiscourseにメールを転送するようにしました。これは機能しています。次に、ユーザーが直接メッセージに応答できるようにreply_by_emailを有効にしたいと考えています。
そのため、reply_by_emailを有効にしようとしていますが、Discourseは私のリクエストを拒否します。
discourse(prod)> SiteSetting.reply_by_email_address
=> "reply+%{reply_key}@<our-valid-domain>.de"
discourse(prod)> SiteSetting.email_in
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
lib/site_settings/type_supervisor.rb:271:in `validate_value': reply_by_email_enabled: 手動、POP3ポーリング、またはカスタムメールポーラーを有効にしてから、返信によるメールを有効にする必要があります。(Discourse::InvalidParameters)
from lib/site_settings/type_supervisor.rb:177:in `to_db_value'
from lib/site_setting_extension.rb:623:in `add_override!'
from lib/site_setting_extension.rb:990:in `block in setup_methods'
from (discourse):15:in `<main>'
どなたか助けていただけますか?
よろしくお願いします!
ハンス
ToddZ
2025 年 10 月 31 日午前 7:06
2
APIから受け取ったレスポンスのこの部分から始めます。「手動、POP3ポーリングのいずれかを有効にするか、カスタムメールポーラーを有効にしてから、メールによる返信を有効にする必要があります。」
これは、POP3 または mail-receiver を設定する前にこれを試した可能性があることを示唆しています。(おそらくmail-receiverを使用したいでしょう。)
これらのRailsコマンドをどこで見つけたのかさえわかりませんが、どちらのプロセスも管理サイトの設定を使用します。
HansHübner
(Hans Hübner)
2025 年 10 月 31 日午前 7:38
3
その通りです。どちらも設定していませんが、Postfixメールサーバーを設定して、API経由でDiscourseにメールを転送するようにしました。これはサポートされている構成かどうかはわかりませんが、可能であれば別のメールサーバー(mail-receiver)を実行することは避けたいです。
管理セクションに「メールによる返信を有効にする」設定が見つかりません。
Railsコンソールを使用したことで、管理設定が台無しになった可能性はありますか?
ToddZ
2025 年 10 月 31 日午前 7:48
4
私は mail-receiver を自分で使用しているので、Postfix+API の設定は私には無理ですが、現在表示されている画面は 「メンバーに送信されるメール」 のみのサブセクションであることを覚えておいてください。
返信メールについて言及した設定は、管理者 → すべてのサイト設定 → メール にあります。
(Discourse には非常に多くの設定があり、期待どおりにグループ化されていない場合があります。)
HansHübner
(Hans Hübner)
2025 年 10 月 31 日午前 8:02
5
ありがとうございます、@ToddZ様 。設定は見つけましたが、有効にすることができません。エラーメッセージは、Railsコンソールを使用した場合と同じです。
Moin
2025 年 10 月 31 日午前 8:27
6
あなたが何をするかの説明と、manual_polling_enabled の設定の説明に基づくと、それが探しているものかもしれません。
「いいね!」 1
ToddZ
2025 年 10 月 31 日午前 9:15
7
「手動ポーリングを有効にする」設定は、管理者 → すべてのサイト設定 → メール の下にもあります。
そして、眠れなかったので、少し調べてみたところ、API経由でメール受信を設定しようとしているケースは非常に少ないことがわかりました。もし、今後の参考になるようでしたら、見つけたものを以下に示します。
(たくさんのリンク)
検索中に、Discobot がおそらく古い情報を見つけました。
Discourse API を使用して、メール受信コンテナに依存せずに受信メールを処理できます。/admin/email/handle_mail エンドポイントは POST 経由で生のメールコンテンツを受け入れるため、スクリプトまたはカスタム統合を使用してメールを直接 Discourse にプッシュできます。この方法では、SMTP ポーリングまたはメール受信コンテナを完全にバイパスできます。
たとえば、生のメールコンテンツを含む email パラメータを使用して、curl コマンドで Discourse にメールを送信できます。このアプローチは、特に AWS Lambda やその他のサーバーレス関数などのサービスを使用する場合に、カスタムメール配信設定で一般的に使用されます。
API エンドポイントの詳細については、Discourse API ドキュメント を参照してください。
(API ドキュメントには何も見つかりませんでした。)
2018年: このトピック には解決策がないようでした。
2018年: この投稿 は、メールガイド を参照していますが、そこにはもはや存在しない言語を参照しており、また次のように推奨しています。「返信メールを機能させる最も簡単な方法は、さまざまなプロバイダーのさまざまな API をすべて扱おうとするのではなく、メール受信コンテナテンプレートを使用することです。」
2022年: email パラメータは email_encoded に変更される予定でした。[ (AWS SES / AWS Lambda mail receiver endpoint code? - #11 by martin ) ]
2022年: メール受信 を使用するようにという別の推奨事項。
「いいね!」 2
HansHübner
(Hans Hübner)
2025 年 10 月 31 日午前 10:53
8
@ToddZ それでうまくいきました、本当にありがとう!
discourse(prod)> SiteSetting.manual_polling_enabled = true
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
=> true
「いいね!」 2