Проверка API-ключа Mailgun в обратном порядке (API-ключ не требуется, если bounce обрабатываются получателем)

Я заметил, что множество сайтов жалуются на отсутствие ключа API Mailgun, но (по крайней мере, большинство из) этих сайтов получают ответы через контейнер mail-receiver, который обрабатывает такие отскоки, поэтому ключ API (и соответствующий вебхук в Mailgun) не должны быть обязательными. Похоже, что логика в спецификациях (и, следовательно, в коде) перевернута:

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

выдает ошибку, если включены ответы, но в этом случае вебхук нам не нужен, и

    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

Здесь мы не обрабатываем отскоки с помощью почтового получателя и остаемся спокойными.

Я запутался или это наоборот?

Ну, возможно, я действительно запутался. Кажется, что почтовый получатель не сообщает Discourse об отскоках. На загруженном сайте нет недавних сообщений об отскоках.

Но:

И:

Таким образом, эта документация предполагает, что если у вас есть рабочий почтовый получатель, он должен это обрабатывать. А код, который я когда-то написал в некоторых своих внутренних инструментах для настройки этих вебхуков, гласил: «# вебхуки не нужны, когда у нас есть почтовый получатель»

3 лайка

Я сам только что с этим столкнулся. Если у вас включён почтовый получатель, это предупреждение не имеет смысла. Я просто закрыл предупреждение, прочитав здесь (спасибо Джей!), но не могу не думать, что это можно было бы реализовать лучше. По крайней мере, добавьте ссылку на настройку, чтобы не пришлось её искать (спойлер: она не в настройках электронной почты), а в самой настройке дайте более подробное описание и, возможно, ссылку на тему документации на Meta?

1 лайк

В ходе расследования я заметил, что у нас была проверка проблемы только для Mailgun. Поэтому я провёл небольшую рефакторинг, добавив глобальную проверку проблемы «обработка отскоков электронной почты», которая будет работать для всех настроенных нами почтовых провайдеров.

2 лайка

Эта тема была автоматически закрыта через 5 дней. Новые ответы больше не принимаются.