Mailgun api key の逆チェック(bounces が mail receiver で処理されるなら api key は不要)

多くのサイトで Mailgun API キーが定義されていないという苦情がありますが、(少なくともほとんどの)サイトでは mail-receiver コンテナ経由で返信を受信しており、バウンスを処理するため、API キー(および Mailgun の対応する Webhook)は必須ではありません。仕様(したがってコード)のロジックが逆になっているようです。

missing_mailgun_api_key_spec

以下のように表示されます。

    context "when using Mailgun without an API key" do
      let(:replies_enabled) { true }
      let(:mailgun_address) { "smtp.mailgun.org" }
      let(:api_key) { nil }

      it do
        expect(check).to have_a_problem.with_priority("low").with_message(
          "The server is configured to send emails via Mailgun but you haven't provided an API key used to verify the webhook messages.",
        )
      end

返信が有効になっていると文句を言いますが、その場合、Webhook は必要ありません
そして、

    context "when replies are disabled" do
      let(:replies_enabled) { false }
      let(:mailgun_address) { anything }
      let(:api_key) { anything }

      it { expect(check).to be_chill_about_it }
    end

ここでは mail receiver でバウンスを処理しておらず、問題ないとしています。

私が混乱しているのでしょうか、それともこれは逆なのでしょうか?

まあ、私が混乱しているのかもしれません。 mail receiver が Discourse にバウンスについて通知していないように思えます。トラフィックの多いサイトには、最近バウンスしたメッセージがありません。

しかし:

そして:

したがって、このドキュメントは、mail receiver が正常に機能していれば、それを処理するはずであることを示唆しています。そして、私が過去にこれらの Webhook を設定した内部ツールで書いたコードは、「# mail receiver がある場合は Webhook は不要」と言っています。

「いいね!」 3

私も今これに出くわしました。メール受信機能が有効になっている場合、この警告は意味をなしません。ここで読んだ内容から(ジェイさん、ありがとう!)、警告を無視しましたが、これはもっとうまく処理できるはずだと考えずにはいられません。少なくとも、探さなくても済むように設定へのリンクを提供してほしいです(ネタバレ:メール設定にはありません)。そして、設定には、より詳細な説明と、おそらくメタに関するドキュメントトピックへのリンクを提供してほしいです。

「いいね!」 1

調査中、Mailgun のみの問題チェックしかないことに気づきました。そこで、設定されているすべてのメールプロバイダーで機能するグローバルな「メールバウンス処理」の問題チェックを追加するために、少しリファクタリングを行いました。

「いいね!」 2