Postmark bounce support?

I’m a big fan of Postmarkapp.com

We use their bounce API to create tickets when emails need attention.

What would it take to expand Discourse’s Bounce Processing to support Postmark?

See:

3 лайка

We only support adding these sorts of things for mail services that have a free tier. Otherwise it doesn’t benefit enough people.

And for our hosted customers, we handle all email, so there’s no reason to do it for our customers.

3 лайка

Also, we haven’t used any “Bounce API” but rather “Bounce Webhooks” which is documented here

5 лайков

Рассмотрите ли вы возможность принятия PR с поддержкой вебхуков отскоков для Postmark? Mailgun, один из официально поддерживаемых поставщиков уведомлений об отскоках, теперь отказался от бесплатного тарифа. У меня сложилось впечатление, что в этой отрасли бесплатные тарифы в целом исчезают: Tell HN: Mailgun lowers free-tier API from 10k to 625 emails per month | Hacker News

3 лайка

PR, безусловно, будет рассмотрен. Пожалуйста, сообщите об этом на раннем этапе, если данный провайдер значительно отличается от текущих поддерживаемых, чтобы мы могли дать обратную связь о возможности слияния вашего подхода.

6 лайков

У меня есть вот что, я собираюсь отправить PR.

Используя команду тестирования curl, которая документирована здесь на моём локальном окружении, всё выглядит рабочим.

Я добавил тесты spec как для жёстких, так и для мягких отскоков.

РЕДАКТИРОВАНИЕ: Я также провёл тесты, запуская их через интерфейс тестирования вебхуков, и всё действительно работает.

Думаю, это должно подойти: add postmark webhook handling by pfaffman · Pull Request #8919 · discourse/discourse · GitHub

6 лайков

Объединено! Спасибо!

5 лайков

@wesochuck предлагает следующие изменения для типов отскоков (см. Bounce API | Postmark Developer Documentation для определений типов отскоков, хотя я привожу их ниже).

В hard_bounces добавить:

  • BadEmailAddress — «Неверный адрес электронной почты — адрес не является корректным адресом электронной почты».
  • Blocked — «Блокировка со стороны ISP — Блокировка со стороны этого провайдера из-за контента или попадания в чёрный список».

В soft_bounces добавить:

  • SMTPApiError — «Ошибка SMTP API — Произошла ошибка при принятии письма через SMTP API».
  • DMARCPolicy — «Политика DMARC — Письмо отклонено из-за политики DMARC».

Мне кажется, что blocked имеет смысл, но я не уверен насчёт остального. Дайте знать, что вы думаете, и я подготовлю соответствующий PR.

Подробнее — PR от Postmark для обработки вебхуков не работает

Извините, но мой PR не работает.

Во-первых, Postmark по умолчанию отбрасывает Message-ID.

Во-вторых, MessageID, который Postmark включает в вебхук, не совпадает с Message-ID, присутствующим в самом письме.

Из: Everything you need to know about SMTP (Simple Mail Transfer Protocol) | Postmark

Есть ли простой способ добавить заголовок X-PM-KeepID: true в исходящую почту? Можно ли добавить это в ядро?

Если эта проблема будет решена, я посмотрю, можно ли включить фактический Message-ID в полезную нагрузку вебхука и обрабатывать его соответствующим образом.

4 лайка