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

**URL:** <https://meta.discourse.org/t/mailgun-api-key-check-backward-no-api-key-should-be-required-if-bounces-handled-by-mail-receiver/305909>\
**Category:** Bug\
**Created:** [Abril 29, 2024, 1:42pm UTC](https://meta.discourse.org/t/mailgun-api-key-check-backward-no-api-key-should-be-required-if-bounces-handled-by-mail-receiver/305909 "2024-04-29T13:42:14Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [Abril 29, 2024, 1:42pm UTC](https://meta.discourse.org/t/mailgun-api-key-check-backward-no-api-key-should-be-required-if-bounces-handled-by-mail-receiver/305909/1 "2024-04-29T13:42:14Z")

</div>

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](https://github.com/discourse/discourse/blob/271ca2c9682e0de8396fb4153e630fef1b61b942/spec/services/problem_check/missing_mailgun_api_key_spec.rb)

Mostra isto:

```plaintext
    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

```plaintext
    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:

> [@Discourse](#):
>
> Se os e-mails “voltarem” (não puderem ser entregues por algum motivo), você precisa saber disso. Enviar e-mails repetidamente que voltam fará com que seus e-mails sejam marcados como spam. Receber retornos de e-mail permite desativar o envio para endereços inexistentes.

E:

> [@zogstrip](#):
>
> Para habilitar o VERP, defina a configuração do site “`endereço de e-mail de resposta`” com um modelo de endereço de e-mail que use o sinal de `+`. O padrão de  
> `replies+%{reply_key}@discourse.example.com`  
> … funciona bem. Se você estiver usando seu próprio servidor de e-mail ou o de sua empresa, então é isso 🎉
> 
> Sua instância do Discourse **deve** ser capaz de receber e-mails enviados para este endereço. Isso deve funcionar via POP, mas recomendamos [E-mail de entrada de entrega direta para sites auto-hospedados](https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487)

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”

---

_[View the full topic](https://meta.discourse.org/t/mailgun-api-key-check-backward-no-api-key-should-be-required-if-bounces-handled-by-mail-receiver/305909)._
