Служба уведомлений по электронной почте - PullRequest
5 голосов
/ 11 ноября 2008

Каковы некоторые идеи (использование .NET и SQL 2005) для реализации службы, отправляющей электронные письма? Письма должны быть ориентированы на данные. Дата и время отправки электронного письма - это поле в таблице.

Ответы [ 6 ]

2 голосов
/ 11 ноября 2008

В прошлом я создал несколько сервисов уведомлений по электронной почте большого объема, которые использовались для отправки электронных писем, управляемых данными. Несколько рекомендаций:

  • Посмотрите на использование высококачественного поставщика услуг электронной почты, который специализируется на управлении отказами, отписками, управлением ISP и черным списком и т. Д. Если отправка электронной почты имеет решающее значение для вашего бизнеса, но не для вашего основного бизнеса, это того стоит. Большинство из них будет иметь API для отправки шаблонных сообщений, отслеживания кликов, открытия ставок и будет иметь триггеры и т. Д.
  • Посмотрите в SQL Server Service Broker, чтобы поставить в очередь фактические сообщения, в противном случае вы можете рассмотреть Microsoft Message Queuing Services. Нет необходимости создавать свой собственный сервис очередей. Мы потратили слишком много времени на обработку кода инфраструктуры очередей, когда это уже было решено.
  • Разработка гибкого набора событий на вашем бизнес-уровне, позволяющего запускать такие сообщения и асинхронно помещать их в очередь, что в долгосрочной перспективе избавит вас от скорби, а не от опроса в БД или его взлома. с триггерами базы данных.
1 голос
/ 17 ноября 2008

Спасибо всем за отзывы. Для простоты я начал с SP, который просматривает напоминания для отправки и использует sp_ send_ dbmail (Почта базы данных SQL) для отправки электронных писем. Это работает на работе каждую минуту. Я обновляю запись, чтобы указать, что напоминание было отправлено с MailItemId, отправленным обратно из sp_ send_ dbmail. Ожидаемый объем напоминаний - наихудший случай в диапазоне 10 ^ 2 в день.

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

Кстати, я не могу поверить, что Vista не поставляется с локальным SMTP-сервером! К счастью, Google более щедрый, я использовал сервер Gmail для тестирования.

1 голос
/ 11 ноября 2008

Вы можете использовать триггеры для отправки электронных писем по UPDATE / DELETE / INSERT. Триггеры могут быть реализованы с помощью .Net, просто отправляйте письма оттуда, используя классы в System.Net.Mail пространстве имен.

Вот хорошая статья , как реализовать триггеры CLR (.Net) в .Net.

Для облегченного SMPT-сервера и для минимизации задержек вы можете использовать тот, который рекомендован в Ответ Кенни .

0 голосов
/ 11 ноября 2008
0 голосов
/ 11 ноября 2008

Я собирался предложить SQL Server Notification Services, которые прекрасно справятся с этой задачей. Но я вижу, что это было исключено из SQL Server 2008, так что вы, вероятно, не хотите идти туда.

0 голосов
/ 11 ноября 2008

Обычно я просто ускоряю процесс, такой как http://caspian.dotconf.net/menu/Software/SendEmail/

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