2008-11-10 4 views
5

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

ответ

1

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

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

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

0

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

2

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

  • Посмотрите в использовании поставщика услуг электронной почты высокого качества, которая специализируется в управлении отскоков, отписывается ИСП и черный список управления и т.д. Если отправка электронной почты имеет решающее значение для вашего бизнеса, но не ваш основной бизнес это будет стоить того. Большинство из них будут иметь api для отправки шаблонных сообщений, отслеживания кликов, открытых ставок и будут иметь триггеры и т. Д.
  • Посмотрите на Брокер службы SQL Server, чтобы оцифровать фактические сообщения, в противном случае вы можете рассмотреть службы очереди сообщений Microsoft. Нет необходимости создавать собственное обслуживание очередей. Мы потратили слишком много времени на разработку кода инфраструктуры queing, когда это уже было решено.
  • Разработка гибкого набора событий на вашем бизнес-уровне, позволяющая запускать такие сообщения и асинхронно помещать их в очередь, это сэкономит вам много горя в долгосрочной перспективе, в отличие от опроса на БД или взломать его с помощью триггеров базы данных.
1

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

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

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

Смежные вопросы