Мое приложение заботится о регистрации пользователя (с возможностью получения сообщений электронной почты) и может легко обрабатывать фактический отрисовка электронной почты для данного пользователя на основе шаблонов. JavaMail обеспечивает почтовый транспортный уровень. Но как мне создать слой приложения между бизнес-объектами (например, User) и почтовым транспортом?Рамка или шаблон дизайна для рассылки всем пользователям webapp
Простой подход представляет собой простой синхронный цикл: итерация через пользователей, очередь электронной почты и выполнение с ним. «Очередь» может означать отправку их прямо на MTA (почтовый сервер) или на очередь в памяти, потребляемую другим потоком.
Однако, я также планирую внедрять функции, такие как регулирование скорости электронных писем, обработка отскоков электронной почты (NDR) и сохранение состояния для перезапуска приложений. Моя интуиция заключается в том, что хороший дизайн будет отделять это как от бизнес-уровня, так и от уровня транспорта почты как можно больше. Я задавался вопросом, решили ли другие решить эту проблему раньше, но после долгих поисков я не нашел никаких библиотек Java, которые, похоже, соответствуют этой проблеме. Автономные почтовые приложения, такие как James или серверы списков, слишком велики; пакеты, такие как Spring's MailSender или Commons Email, слишком малы по размеру (в основном, для замены JavaMail). Для других языков я тоже не нашел ничего подходящего.
Мне интересно, как другие разработчики пошли на добавление массовой рассылки в свои приложения.
Я не беспокоился и вместо этого использовал только сторонний API (в частности, http://postmarkapp.com/). – Intelekshual
Аутсорсинг решает множество проблем, связанных с почтой, и я бы сильно подумал, был ли это коммерческий проект, но это бесплатный веб-сайт и ресурсы жесткие. Кроме того, даже с сторонним API, вопрос о том, как интегрировать отправку почты и обработку отказов в приложение, по-прежнему остается. –
Образец называется «спам». Я думаю :-) –