Ich habe mehrere E-Mail-Profile auf dem SQL Agent konfiguriert. Wie kann ich auswählen, welches dieser Profile zum Versenden von Benachrichtigungen für einen bestimmten SQL Agent-Job verwendet wird?
Ich habe mehrere E-Mail-Profile auf dem SQL Agent konfiguriert. Wie kann ich auswählen, welches dieser Profile zum Versenden von Benachrichtigungen für einen bestimmten SQL Agent-Job verwendet wird?
Antworten:
Datenbank-Mail-Profile funktionieren bei SQL Agent-Jobs etwas anders. Wenn Sie SQL Agent selbst über das Eigenschaftenfenster konfigurieren, konfigurieren Sie das Warnsystem .
Die beiden Pfeile zeigen an, wo ein Datenbank-Mail-Profil ausgewählt werden kann. In diesen beiden Fällen teilt das von Ihnen ausgewählte Profil SQL Agent im Wesentlichen mit, dass dies Ihre SMTP-Konfiguration ist und an wen Sie die E-Mails "als" oder das Feld "VON" senden möchten. Zum Konfigurieren des Warnsystems muss der SQL Agent-Dienst neu gestartet werden.
Sobald dies erledigt ist, um Benachrichtigungen für SQL Agent-Jobs zu erhalten, müssen Sie die Operatoren konfigurieren .
Sie würden den Operator so einrichten, dass er notiert, an wen die Benachrichtigung "TO" gesendet werden soll. Sie können mehr als eine E-Mail-Adresse in dieses Feld eingeben, es gibt jedoch eine Zeichenbeschränkung. Sie können mehrere Operatoren erstellen, aber auf der Benachrichtigungsseite der Job-Eigenschaften werden Sie feststellen, dass Sie nur einen auswählen können. Dies ist nur die Einschränkung von SQL Agent.
Die Alternative dazu wäre die Verwendung des sp_send_db_mail
innerhalb des Jobschritts selbst. In diesem Fall können Sie ein beliebiges E-Mail-Profil verwenden, falls es an eine andere Person als einen von Ihnen konfigurierten Operator gesendet werden soll.
Sie können das profile_name
in sp_send_dbmail
wie folgt angeben :
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'here goes your profile name'
Weitere Informationen finden Sie in BOL .
Sie können die Konten, die einem oder mehreren Datenbank-Mail-Profilen zugeordnet sind, mit sysmail_help_profileaccount_sp auflisten
Unten ist das t-sql, das Ihnen alle Details gibt:
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