我有一个使用 C# .Net 3.5 构建的客户端的 Web 应用程序。Web 应用程序做了很多事情,其中一部分是我通过异步 Web 请求发送一些数据以对数据库进行一些处理。这可能需要 5 到 60 分钟。
然后我创建了一个 SQL 触发器,当数据库中的列使用数据库邮件发送邮件时(通过 msdb.dbo.sp_send_dbmail)。
这很好用,但是我们的客户端禁止我们从数据库服务器发送邮件。
有人可以替代吗?
我有一个使用 C# .Net 3.5 构建的客户端的 Web 应用程序。Web 应用程序做了很多事情,其中一部分是我通过异步 Web 请求发送一些数据以对数据库进行一些处理。这可能需要 5 到 60 分钟。
然后我创建了一个 SQL 触发器,当数据库中的列使用数据库邮件发送邮件时(通过 msdb.dbo.sp_send_dbmail)。
这很好用,但是我们的客户端禁止我们从数据库服务器发送邮件。
有人可以替代吗?
您可以创建一个包含电子邮件所需的所有字段的电子邮件表。为您在处理过程中需要发送的每封电子邮件添加一条记录。
接下来,编写一个 Windows 服务,定期 ping 该数据库以获取新的电子邮件记录。如果找到,请生成您的电子邮件并从您的应用程序层发送它们。不要忘记有一个布尔值或类似的机制来指示电子邮件已发送,这样它就不会被多次接收。
我的编码器感觉有些可疑,但是是什么阻止您更新您在应用程序服务器的定时间隔检查的另一个表?并让应用程序服务器发送警报?
即使是电子邮件表中的“SendStatus”列,可以是“ReadyForSend”、“Sent”、“Error”或其他内容,也比触发计划更好。然后是某种计划任务,它会查找处于适当状态的项目以进行发送。
请记住,这个可怜的家伙必须在 6 个月到一年的时间里弄清楚这一切是如何运作的,而您可能不再参与该项目,也可能不再参与该项目。