Verificação Mailgun api key invertida (nenhuma API key exigida se bounces gerenciados pelo receptor de e-mail)

Notei que vários sites reclamam que nenhuma chave de API do Mailgun está definida, mas (pelo menos a maioria) desses sites está recebendo respostas via contêiner de recebimento de e-mail e ele lida com esses bounces, então a chave de API (e o webhook correspondente no Mailgun) não precisam ser obrigatórios. Parece que a lógica nas especificações (e, portanto, no código) está invertida:

A missing_mailgun_api_key_spec

Mostra isto:

    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

reclama se tivermos respostas habilitadas, mas nesse caso, não precisamos do webhook e

    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

Aqui não estamos processando bounces com o receptor de e-mail e estamos tranquilos quanto a isso.

Estou confuso ou isso está invertido?

Bem, talvez eu esteja confuso. Parece que o receptor de e-mail não está informando o Discourse sobre os bounces. Um site movimentado não tem mensagens de bounce recentes.

Mas:

E:

Portanto, esta documentação sugere que, se você tiver um receptor de e-mail funcionando, ele deverá lidar com isso. E o código que escrevi em algumas de minhas ferramentas internas que configuravam esses webhooks diz “# não precisamos de webhooks quando temos um receptor de e-mail”

3 curtidas