Как работать с системой оповещения по электронной почте для зарегистрированной базы пользователей
У меня есть клиент, который хотел бы разработать систему, которая обрабатывает рассылку предупреждений по электронной почте зарегистрированным зарегистрированным пользователям. Оповещения основаны на географических инцидентах, связанных с поездками, и предоставляются через стороннюю веб-службу. Ожидается, что зарегистрированная база пользователей будет составлять около 500000 пользователей, и каждый пользователь может подписаться на несколько категорий оповещений.
Я просто пытаюсь охватить то, что технически потребуется для создания этой функции оповещения. На мой взгляд, мы создали бы что-то вроде следующего:
- Опрос службы оповещения один раз в час
- Хранить "очередь" предупреждений во временной таблице базы данных
- Обработайте таблицу очередей как запланированную задачу и отправьте электронные письма выбранным пользователям
Часть, в которой я действительно не уверен, это физическая отправка электронных писем. Мне было интересно, если кто-нибудь может порекомендовать какие-либо хорошие варианты здесь. Я предполагаю, что мы хотим либо создать пользовательский компонент для отправки электронных писем, либо использовать специальный сторонний сервис (например, dotMailer? Или пользовательский сервер массовой почты?). Я читал, что развертывание вашего собственного решения сопряжено с риском попадания IP в черный список, если вы не будете осторожны, и, очевидно, мы хотим, чтобы все это было полностью законным.
Следует также упомянуть, что мы будем искать решение с использованием.NET (C#), и мы ограничены выпуском SQL Server Express 2008.
Любые мысли высоко ценится
Спасибо заранее
1 ответ
Для операций "Опрос", "Очередь" и "Отправить" я бы создал службу Windows, которая вызывает внешнюю службу, обрабатывает данные, а затем собирает результаты для отправки электронных писем, обновляющих базу данных по мере необходимости, с флагами отправки и т. Д.
Недавно я занимался аналогичным проектом, и мы обнаружили, что многие интернет-провайдеры или провайдеры хостинга очень нервничали, когда упоминали массовые электронные письма. Вы должны внимательно ознакомиться с http://en.wikipedia.org/wiki/CAN-SPAM_Act_of_2003 инструкциями по СПАМУ CAN (или аналогичным на вашей территории).
Пока вы играете по правилам и следуете руководящим указаниям, вы должны нормально отправлять сообщения с локального почтового сервера, однако важно, чтобы вы гарантировали, что все DNS-запросы или обратные DNS-запросы на записях MX правильно указывают друг на друга. На самом деле, было бы проще обратиться к стороннему почтовому провайдеру или независимому провайдеру, но, когда мы попытались, мы не смогли найти подходящее решение и в итоге сделали это сами.
Кроме того, вы можете захотеть взглянуть на записи SPF и другие способы увеличения массовой доставки электронной почты! Для чего стоит это может быть очень сложной задачей для реализации, так как SMTP (мой наименее любимый протокол) болезненно пытаться отлаживать, и люди очень расстраиваются, если они получают несколько или нежелательные электронные письма, поэтому убедитесь, что у вас есть политика Opt-in и соответствующие чеки для предотвращения дублирования доставки.