如何在 sql 代理作业中选择邮件配置文件

noj*_*lag 9 sql-server-2012 database-mail

我在 sql 代理上配置了几个邮件配置文件,如何选择这些配置文件中的哪些用于发送特定 sql 代理作业的通知?

小智 8

对于 SQL 代理作业,数据库邮件配置文件的工作方式略有不同。在通过属性窗口配置 SQL 代理本身时,您将配置警报系统在此处输入图片说明

两个箭头指向可以选择数据库邮件配置文件的位置。在这两种情况下,您选择的配置文件基本上是告诉 SQL 代理这是您的 SMTP 配置以及您将向谁发送电子邮件“作为”或“发件人”字段。配置警报系统确实需要重新启动 SQL 代理服务。

完成此操作后,您将需要配置Operators以接收 SQL 代理作业的通知。

在此处输入图片说明

您可以设置操作员以记录您希望将通知发送到“收件人”的人。您可以在此字段中输入多个电子邮件地址,但它确实有字符限制。您可以创建多个操作员,但在作业属性的通知页面中,您会注意到它只允许您选择一个。这只是 SQL Agent 的限制。

对此的替代方法是sp_send_db_mail在作业步骤本身中使用 。在这种情况下,您可以使用任何您想要的邮件配置文件,如果您希望将其发送给您可能已配置的任何运营商以外的其他人。


Kin*_*hah 5

您可以指定profile_nameinsp_send_dbmail如下:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'here goes your profile  name'
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅BOL

您可以使用sysmail_help_profileaccount_sp列出与一个或多个数据库邮件配置文件关联的帐户

以下是将为您提供所有详细信息的 t-sql:

SELECT  [sa].[account_id]
, [sa].[name] as [Profile_Name]
, [sa].[description]
, [sa].[email_address]
, [sa].[display_name]
, [sa].[replyto_address]
, [ss].[servertype]
, [ss].[servername]
, [ss].[port]
, [ss].[username]
, [ss].[use_default_credentials]
, [ss].[enable_ssl]
FROM 
 msdb.dbo.sysmail_account sa
INNER JOIN msdb.dbo.sysmail_server ss
ON  sa.account_id = ss.account_id
Run Code Online (Sandbox Code Playgroud)