更新数据库列后发送电子邮件

时间:2012-09-24 22:12:20

标签: c# asp.net .net sql-server-2005 email

我有一个用C#.Net 3.5构建的客户端的Web应用程序。 Web应用程序做了很多事情,有一部分我通过异步Web请求发送一些数据来对数据库进行一些处理。这可能需要5到60分钟。

然后我创建了一个SQL触发器,当数据库中使用数据库邮件发送邮件的列时(通过msdb.dbo.sp_send_dbmail)。

这很好用,但我们的客户禁止我们从数据库服务器发送邮件。

任何人都有替代方案吗?

3 个答案:

答案 0 :(得分:3)

您可以创建一个电子邮件表格,其中包含电子邮件所需的所有字段。为您处理的每封电子邮件添加记录。

接下来,编写一个Windows服务,定期为新电子邮件记录ping该数据库。如果找到,请生成您的电子邮件并从您的应用程序层发送。不要忘记使用布尔值或类似的机制来指示电子邮件已被发送,以便不会多次拾取。

答案 1 :(得分:2)

我的编码器感觉闻到了一些可疑的东西,但是什么让你无法更新你在应用服务器的定时间隔内检查的另一个表?并让应用程序服务器发送警报吗?

答案 2 :(得分:0)

即使是电子邮件表格中“SendStatus”的列可以是“ReadyForSend”,“已发送”,“错误”,也可能比触发器计划更好。然后是某种计划任务,用于查找要发送的正确状态的项目。

请记住,那个可能会在6个月到一年之内弄清楚这一切是如何工作的可怜人,你可能会或可能不再参与该计划。