Сервис транзакционной почты (Open Source)

Привет! Я заметил, что все рекомендуют использовать специализированные сервисы электронной почты. Пользовался ли кто-нибудь из вас или пробовал ли кто-нибудь альтернативы с открытым исходным кодом? Например, postal или cuttlefish.

Безусловно, использование собственного сервера, хотя бы для отправки исходящих писем, принесло бы огромную выгоду. Такие сервисы, как SendGrid или Mailgun, стоят очень дорого, если у вас есть сообщество, которое отправляет 1 миллион уведомлений или даже больше в месяц. Я посмотрел настройки: пользователь может легко получать 250–300 уведомлений по электронной почте в день… Если у вас активное сообщество, то, согласно моим расчетам, вы либо превышаете отметку в один миллион, либо очень близки к ней.

Кстати, как вы управляете пользователями, которые настраивают уведомления на каждое сообщение или сводки каждые 30 минут, но затем, возможно, больше никогда не входят в систему? Возможно, есть пользователи, которые делают это из вредности. Меняете ли вы настройки для тех пользователей, которые не активны уже несколько месяцев?

Заранее спасибо!

Это реальная проблема, с которой вы сталкиваетесь, или та, которую вы себе представляете? Борьба со спамом от людей является проблемой для некоторых сообществ, но не для многих.

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

Честно говоря, я не понимаю, почему это должно быть сложно. Существуют открытые проекты, созданные специально для того, чтобы управлять всем максимально просто. Даже управление форумом может быть трудным, но Discourse — это CMS, созданная для того, чтобы сделать всё максимально простым. После установки Postal и правильной настройки DNS (то же самое касается внешних сервисов, иначе возникнут те же проблемы), какие ещё могут быть сложности?

Единственное, что нужно сделать, — проверить, работает ли всё с Discourse (например, использовать его также для входящих писем и включить функцию ответа по электронной почте и т. д.), то есть убедиться в совместимости. Поэтому я и спросил, использует ли кто-нибудь из этих открытых проектов.

Возможно, я ошибаюсь, но мне кажется, что продолжать говорить: «управление почтовым сервером слишком сложное, поэтому нужно использовать платные сервисы» — это просто отговорка. Если человек умеет устанавливать Discourse, то с небольшими усилиями сможет установить и другие CMS, например, Postal.

Из-за спама. Но попробуйте. Существует несколько пакетов, которые значительно упрощают настройку.

Я использую mail-in-a-box и mail-receiver, это работает (при условии нескольких настроек Postfix). Дело не в том, что это сложно, но это выходит за рамки поддержки на meta. Кроме того, я считаю, что поддержание репутации IP-адресов и доменов — это головная боль. То один случайный провайдер внезапно решает, что для его пользователей вы получаете ошибку 550 5.7.1, то Google… :face_with_symbols_over_mouth:. Похоже, это никогда не заканчивается.

Моя тревога касается ситуации, когда пользователи могут следить за категориями и получать уведомления на почту по каждому новому обсуждению и сообщению. Что, если они неактивны? Буду ли я отправлять им по 100 писем в день каждый месяц? Например, 3000 писем могут быть отправлены участникам, которые больше не активны, но ранее включили эту настройку.

Есть ли способ отключить возможность подписки на категории? Оставить только возможность следить за отдельными темами? Я думаю, это решило бы все проблемы.

Параметр максимальное количество писем в день на пользователя также может быть полезен (по умолчанию 100)

Я им не пользовался, но помогло бы также отключение сводных писем после N дней?

Я пришел сюда из-за postal. Мне кажутся актуальными поднятые вопросы, и я хотел бы предложить следующее.

Думаю, с помощью Discourse Data Explorer можно найти тех, кто получал письма, но не входил в систему более 6 месяцев, а затем отправить им сообщение с вопросом, интересуются ли они ещё или просто игнорируют почту. Если, скажем, через неделю ответа не последует, прекратить отправку им писем и в конечном итоге потребовать подтверждения аккаунта (то есть приостановить учётную запись за неактивность).

Это, безусловно, сэкономит много циклов процессора и сетевой пропускной способности (а также электроэнергии и воды…), избавив от отправки бесполезных писем через Интернет на всех тысячах экземпляров Discourse. :green_heart:

По сути, это уже работает именно так. Параметр сайта «Отключать дайджест-письма после N дней».

Останавливает ли эта настройка все электронные письма, например уведомления о новых сообщениях в отслеживаемых категориях?

Нет, не делает. Многие люди используют Discourse только через электронную почту (что я считаю странным, но не все такие же, как я).

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

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

Возможно, стоит попробовать маршрутизацию писем через Amazon SES?

Электронные письма (по крайней мере, в этом аспекте) сами наводят порядок — отписаться несложно, а когда люди меняют компании, их адреса начинают возвращать письма.