根据数据库中的条件发送电子邮件通知

根据数据库中的条件发送电子邮件通知

我们希望使用问题跟踪软件和 SQL Server 数据库创建一个电子邮件通知系统。目标是在满足一些条件时发送电子邮件。

这是为了满足客户要求的自定义通知。例如,如果因软件问题开具了工单,客户希望向 Y 发送电子邮件,如果因硬件问题开具了工单,客户希望向 Z 发送电子邮件。

SQL Server Notification Services 似乎具有该功能,但我们对 GUI 感兴趣,而不是每次都手动编写查询。我们还需要某种方法来管理它们,因为自定义通知的数量可能达到数千个。

编辑

这些都是很好的建议,但有一个要求是,我们需要一个用于管理规则的 GUI。我们不想每次需要创建或更改通知时都手写查询。

我们知道我们可以将脚本、触发器和计划任务组合在一起,但似乎应该有某种打包产品可以做到这一点。也许最初设置它需要一些数据库技能,但理想情况下,之后它可以由非 DBA 的经理更新。

答案1

您是否在寻找已建好的系统?许多供应商的票务系统已经具备此功能。在我看来,它们中的大多数都有些糟糕,而且有点过度,但它们确实可以安排路线。

或者您有一些系统需要添加通知?

这里的设计构建并不难,但需要一些开发工作。需要一些简单的工具来管理。

答案2

不确定如何与内部产品集成,但你可以看看Quest 的雾灯监控产品。

答案3

您是否可以使用查询设计器并将查询粘贴到存储所有监视器的表(表单字段)中?

然后定期运行一项作业来遍历表并运行查询,使用 dbmail 将邮件发送给您存储在表中并通过 GUI 进行配置的“操作员”。

您不需要执行作业,而是可以在每次插入时进行触发器检查,然后使用现在的异步 dbmail 发送邮件。

答案4

因此,您需要一些可扩展的东西。为什么不创建一个可以插入规则的表,first_name、Last_name、email_addr、table 或 table.column,以便将电子邮件规则添加到此表中。然后运行一个预定的 SQL 脚本,该脚本通过查阅规则表执行通用查询,并检查数据库中是否有任何规则匹配。通过编写脚本,您可以控制作业运行的频率,还可以控制它发送电子邮件的方式,即如果它是使用 DBI 数据库调用的 Perl 脚本,您还可以使用 Perl Sendmail 模块直接从同一脚本中发送电子邮件。

您甚至可以从纯文本文件或基于用户规则的 XML 文件开始……

如果产品本身不支持此功能,那么您需要编写一个可以自行安排的自动化脚本。另一种选择可能是两者的混合,使用数据库触发器 ON INSERT 来触发执行检查和电子邮件的脚本/sql。

只需用一个简单的 Web 前端包装此过程即可添加您的规则。SQL 将基本保持不变且通用。您只需要一个表单来插入/删除/更新规则行。

相关内容