Как реализовать массовую рассылку с использованием службы Windows по расписанию? - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть требование, в котором мне нужно отправлять 10000+ писем ежеквартально . Для этого я использовал службу Windows, которая запускает каждый день и выполняет функцию рассылки только после третьего месяца. Мне нужно получить записи за последние три месяца из базы данных, и мне нужно отправить одно письмо для каждой записи.

Проблема, с которой я столкнулся, заключалась в том, что почтовый сервер, который я использовал, не разрешал массовую рассылку.

Как я могу сделать это эффективно, обеспечив задержку между отправленными сообщениями (20 писем в минуту)?

1 Ответ

1 голос
/ 12 апреля 2011

Есть много способов архивировать это. Когда-то у нас было подобное требование, и мы решили его с помощью собственного сервиса, который выбирал элементы из специальной таблицы базы данных (почтовой очереди) и отправлял каждое письмо индивидуально. Очередь заполняется со временем обычной бизнес-логикой. Необходимая блокировка также может быть выполнена через db: столбец SCHEDULE хранит ожидаемое запланированное время отправки почты. Таким образом, служба собирает только те письма, которые «готовы» к отправке. После успешной отправки другой столбец (SENT_TIMESTAMP) используется для обозначения успеха.

Мы внедрили весь сервис в ASP и запустили его через обычные задания планировщика задач Windows. В вашем случае служба будет запускаться каждую минуту, а очередь будет предоставлять следующие 20 писем. Еще более простым способом может быть использование заданий SQL Server. SQL Server также может доставлять почту на локальный SMTP-сервер.

Если это еще не сделано, обратите внимание также на вопрос SO: Каков наилучший способ отправки больших пакетов сообщений электронной почты в ASP.NET?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...