电子邮件通知服务

时间:2008-11-10 23:21:31

标签: c# .net sql email

有哪些想法(使用.NET和SQL 2005)来实现发送电子邮件的服务?电子邮件是数据驱动的。要发送电子邮件的日期和时间是表格中的字段。

6 个答案:

答案 0 :(得分:2)

我已经构建了几个用于过去发送数据驱动电子邮件的高容量电子邮件通知服务。一些建议:

  • 使用高质量的电子邮件服务提供商,专门管理退回,取消订阅,isp和黑名单管理等。如果发送电子邮件对您的业务至关重要,而不是您的主要业务,那将是值得的。大多数人都会发送api来发送模板化消息,点击跟踪,开放费率以及提供触发器等。
  • 查看SQL Server Service Broker以对实际消息进行排队,否则您可以考虑使用Microsoft消息队列服务。无需构建自己的排队服务。当问题已经解决时,我们花了太多时间处理排队基础设施代码。
  • 在您的业务层上开发一组灵活的事件,以允许触发此类消息并将它们异步地放入您的队列中,从长远来看,这将为您节省很多麻烦,而不是轮询数据库或对其进行黑客攻击使用数据库触发器。

答案 1 :(得分:1)

您可以使用触发器在UPDATE / DELETE / INSERT上发送电子邮件。触发器可以用.Net实现,只需使用System.Net.Mail命名空间中的类从那里发送邮件。

这是一个很好的article如何在.Net中实现CLR(.Net)触发器。

对于轻量级SMPT服务器,并尽量减少延迟,您可以使用Kenny's answer中建议的那个。

答案 2 :(得分:1)

感谢大家的反馈。为简单起见,我开始使用SP查找要发送的提醒,并使用sp_send_dbmail(SQL数据库邮件)发送电子邮件。这每分钟都在工作。我更新记录以指示提醒已与从sp_send_dbmail发回的MailItemId一起发送。预期的提醒量是每天10 ^ 2范围内的最坏情况。

我很乐意听到有关人们认为此解决方案可能存在的任何缺点的反馈。

顺便说一句,我无法相信Vista没有配备本地SMTP服务器!幸运的是,谷歌更慷慨,我使用Gmail的服务器进行测试。

答案 3 :(得分:0)

通常,我只是启动http://caspian.dotconf.net/menu/Software/SendEmail/

等流程

答案 4 :(得分:0)

我打算建议SQL Server Notification Services,它将很好地处理这项工作。但是我看到它已经从SQL Server 2008中删除了,所以你可能不想去那里。

答案 5 :(得分:0)

Data Driven SSRS Subscriptions?只是一个想法。