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:
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:
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.
Also, we haven’t used any “Bounce API” but rather “Bounce Webhooks” which is documented here
Рассмотрите ли вы возможность принятия PR с поддержкой вебхуков отскоков для Postmark? Mailgun, один из официально поддерживаемых поставщиков уведомлений об отскоках, теперь отказался от бесплатного тарифа. У меня сложилось впечатление, что в этой отрасли бесплатные тарифы в целом исчезают: Tell HN: Mailgun lowers free-tier API from 10k to 625 emails per month | Hacker News
PR, безусловно, будет рассмотрен. Пожалуйста, сообщите об этом на раннем этапе, если данный провайдер значительно отличается от текущих поддерживаемых, чтобы мы могли дать обратную связь о возможности слияния вашего подхода.
У меня есть вот что, я собираюсь отправить PR.
Используя команду тестирования curl, которая документирована здесь на моём локальном окружении, всё выглядит рабочим.
Я добавил тесты spec как для жёстких, так и для мягких отскоков.
РЕДАКТИРОВАНИЕ: Я также провёл тесты, запуская их через интерфейс тестирования вебхуков, и всё действительно работает.
Думаю, это должно подойти: add postmark webhook handling by pfaffman · Pull Request #8919 · discourse/discourse · GitHub
Объединено! Спасибо!
@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 по умолчанию отбрасывает Message-ID.
Во-вторых, MessageID, который Postmark включает в вебхук, не совпадает с Message-ID, присутствующим в самом письме.
Из: Everything you need to know about SMTP (Simple Mail Transfer Protocol) | Postmark
Есть ли простой способ добавить заголовок X-PM-KeepID: true в исходящую почту? Можно ли добавить это в ядро?
Если эта проблема будет решена, я посмотрю, можно ли включить фактический Message-ID в полезную нагрузку вебхука и обрабатывать его соответствующим образом.