在SQL Server中使用SMTP发送自动作业电子邮件通知

当您在数据库服务器上运行自动备份作业时,有时您会忘记它们甚至正在运行。 然后,您忘记检查它们是否运行成功,并且不会意识到,直到您的数据库崩溃,您无法恢复,因为您没有当前的备份。

这就是电子邮件通知的地方,所以你可以看到每天早上的工作状态,当你啜饮你的咖啡,假装你在工作。

SQL Server提供了一个内置的发送电子邮件的方法,但不幸的是,它需要您在服务器上安装Outlook和配置文件,这不一定是发送电子邮件的理想方式。 幸运的是有另一种方法,涉及在您的服务器上安装一个存储过程,将允许您通过SMTP发送电子邮件。

下载sp_SQLNotify存储过程在这里

您将要编辑存储过程中的一行以放置SMTP服务器的IP地址:

EXEC @hr = sp_OASetProperty @iMsg,Configuration.fields(“http://schemas.microsoft.com/cdo/configuration/smtpserver”).Value,10 .1.1.10

将存储过程安装到主数据库中,因此可以从任何需要的地方轻松使用。

打开SQL Server代理\作业列表,然后选择要为以下内容创建通知的作业的属性:

点击步骤标签,您应该看到如下所示的屏幕:

单击新建按钮以创建新作业步骤。 我们将使用此步骤成功发送电子邮件通知。

步骤名称:电子邮件通知成功

在命令窗口中输入此SQL,如下所示。 您将需要自定义电子邮件地址和消息主题以符合您的环境:

exec master.dbo.sp_SQLNotifyserver@localserver.com,admin@localserver.com,备份作业成功,备份作业成功完成

单击确定,然后再次单击新建按钮以创建另一步骤。 这将是失败通知步骤。

步骤名称:电子邮件通知失败

SQL:

exec master.dbo.sp_SQLNotifyserver@localserver.com,admin@localserver.com,备份作业失败,备份作业失败

现在的想法是使项目遵循特定的工作流。 首先单击第1步上的编辑,然后设置如下所示的属性:

我们说的是,成功,转到成功步骤,如果失败,转到失败步骤。 很简单的东西。

现在编辑第二步,标记为“电子邮件通知成功”的一个,并设置如下所示的属性:

我们说如果通知作业成功,则只是退出作业,而不运行第3步.如果我们不指定这个,那么我们将得到两个电子邮件,一个成功,一个失败。

现在编辑第三步,标记为“电子邮件通知失败”的一个步骤,并设置如下所示的属性:

现在你的工作步骤应该看起来像这样:

您现在应该在收件箱中收到电子邮件通知,无论是成功还是失败。

注:本文中使用的存储过程中被发现在这里 ,虽然这可能不是原始来源。

下载sp_SQLNotify存储过程在这里

赞 (0)
分享到:更多 ()