我正在尝试为现有的定制CRM应用程序使用电子邮件通知建立最佳选择。
基本上我想要做的是当一个工作项违反其KPI(关键绩效指标)时向受影响的用户发送电子邮件。
我最好通过使用SQL触发器和存储过程来实现这一点(它们都可以用来实现吗?)或者我应该使用一些c#编码和计划任务?或者我错过了一条更容易的路线?
答案 0 :(得分:0)
我在使用Windows服务之前完成了这项工作,该服务每分钟轮询数据库,然后编写和发送电子邮件。
我猜一个触发器是另一种可能的方法,但如果发送电子邮件失败怎么办?无论如何,你可能想要像预定的任务方法那样退缩。
答案 1 :(得分:0)
你可以使用像Quartz.Net这样的调度引擎。这能够以定义的时间间隔/在定义的时间运行任务,并且还可以在任务失败时重试,或以某种方式提醒您。
Quartz.Net可以通过NuGet(或添加库包)获得,并且在site
上有很多很好的文档答案 2 :(得分:0)
我个人会使用SQL Agent作业撰写电子邮件然后发送。这样,您可以为要运行的作业指定某些凭据(例如,访问邮件服务器),并且可以根据需要随时运行。
我目前使用的方法是一个简单的CLR存储过程,该过程利用.Net中的SMTP功能,这需要一堆构造电子邮件消息的参数。
答案 3 :(得分:0)
如果您要求在SQL Server 2005中发送电子邮件的最佳方式,我认为[msdb.dbo.sp_send_dbmail]是您的朋友。您可以在网上快速搜索以获取详细信息,但在使用之前必须正确设置数据库邮件。我和tsqlunit一起使用它来运行夜间工作来捕捉一些业务规则是否合规。
如果您正在寻找一种捕获事件的好方法,以便能够发送电子邮件通知,这一切都取决于您的设置以及您希望此检查发生的频率。它可能是您附加到已存在的存储过程的东西,或者您可以使用触发器(如果您的设置可以处理它)。在学习一些课程之后,有时最好从小做起并更好地迁移到更好的东西。
希望这有帮助!