reply_by_email を有効にする

メールサーバーをセットアップし、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>'

どなたか助けていただけますか?

よろしくお願いします!
ハンス

APIから受け取ったレスポンスのこの部分から始めます。「手動、POP3ポーリングのいずれかを有効にするか、カスタムメールポーラーを有効にしてから、メールによる返信を有効にする必要があります。」

これは、POP3 または mail-receiver を設定する前にこれを試した可能性があることを示唆しています。(おそらくmail-receiverを使用したいでしょう。)

これらのRailsコマンドをどこで見つけたのかさえわかりませんが、どちらのプロセスも管理サイトの設定を使用します。

その通りです。どちらも設定していませんが、Postfixメールサーバーを設定して、API経由でDiscourseにメールを転送するようにしました。これはサポートされている構成かどうかはわかりませんが、可能であれば別のメールサーバー(mail-receiver)を実行することは避けたいです。

管理セクションに「メールによる返信を有効にする」設定が見つかりません。

Railsコンソールを使用したことで、管理設定が台無しになった可能性はありますか?

私は mail-receiver を自分で使用しているので、Postfix+API の設定は私には無理ですが、現在表示されている画面は 「メンバーに送信されるメール」 のみのサブセクションであることを覚えておいてください。

返信メールについて言及した設定は、管理者 → すべてのサイト設定 → メール にあります。

(Discourse には非常に多くの設定があり、期待どおりにグループ化されていない場合があります。)

ありがとうございます、@ToddZ様。設定は見つけましたが、有効にすることができません。エラーメッセージは、Railsコンソールを使用した場合と同じです。

あなたが何をするかの説明と、manual_polling_enabled の設定の説明に基づくと、それが探しているものかもしれません。

「いいね!」 1

「手動ポーリングを有効にする」設定は、管理者 → すべてのサイト設定 → メール の下にもあります。

そして、眠れなかったので、少し調べてみたところ、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

@ToddZ それでうまくいきました、本当にありがとう!

discourse(prod)> SiteSetting.manual_polling_enabled = true
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
=> true
「いいね!」 2