Я получил задание унифицировать и упростить рассылку электронных писем компаний с их сайтов с возможностью редактировать электронные письма самостоятельно. Итак, я рисую приложение C # Window Form с WYSIWYG-редактором для управления всеми электронными письмами. Электронная почта хранится в SQL-DB.

Но я остро нуждаюсь в некоторых советах и ​​указателях по логике некоторых рассылок.

Некоторые рассылки инициируются действием при регистрации на сайте и т. Д. Но некоторые рассылки основаны на интервале, например, электронное уведомление о поисковом совпадении и другие электронные письма с напоминаниями, которые отправляются с интервалами от 5 минут до каждой полуночи.

Моя дилема такова: как лучше всего обрабатывать рассылки на основе интервалов? Можете ли вы реализовать какой-то демон или обслуживать хранимые процедуры проверок с заданными интервалами и запускать рассылки, если есть какие-либо совпадения? Я бы предпочел, чтобы приложение могло обрабатывать как управление содержимым электронной почты, так и запланированные рассылки (5-минутные проверки и каждую полночь)

Или есть какой-либо другой более разумный способ решить проблему отправки на основе интервалов?

Благодарю за советы и подсказки о том, как с этим справиться.

0
Andreas 1 Июл 2009 в 11:22

5 ответов

Лучший ответ

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

Для запланированных писем есть несколько способов справиться с этим.

Если вы считаете, что лучше просто управлять всем этим в базе данных, и вы используете SQL 2005 или выше, есть встроенная функция Database Mail. http://msdn.microsoft.com/en-us/library/ms175887. aspx
Повторяющиеся электронные письма могут быть отправлены с помощью запланированных заданий, которые проверяют очередь писем, которую вы поддерживаете.

Если вы хотите обрабатывать электронные письма в своем коде, вы можете использовать System.Net.Mail. Планирование может выполняться службой Windows или повторяющейся задачей в ОС.
http: / /support.microsoft.com/kb/226795

2
Ehz 2 Июл 2009 в 04:27

Google для "службы Windows C #" - служба представляет собой Windows-эквивалент демона, идеальный способ написать программу, которая работает в фоновом режиме, автоматически запускается на сервере и не требует от пользователя входа в систему перед запуском. начинается.

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

http://www.systemnetmail.com/

1
Daniel Earwicker 1 Июл 2009 в 07:41

Попробуйте использовать механизм планирования, например http://quartznet.sourceforge.net/

1
Simon 2 Июл 2009 в 11:26

Вам подойдет какая-то очередь. вы поместите свой запрос в очередь, и он будет сгенерирован. Триггер может поместить запрос в очередь, а также ваш пользовательский интерфейс. И, конечно, я ожидаю, что вы делаете это через код (smtp)

0
Umair Ahmed 1 Июл 2009 в 07:26

Это очень широкий вопрос, но если вы используете SQL Server, у вас есть много встроенных опций электронной почты. Также встроены очереди и планировщик.

0
76mel 1 Июл 2009 в 07:32