30Jun

Envoyer des notifications automatisées d'e-mail d'emploi dans SQL Server avec SMTP

Lorsque vous exécutez des tâches de sauvegarde automatisées sur votre serveur de base de données, vous oubliez parfois qu'elles sont en cours d'exécution. Ensuite, vous oubliez de vérifier s'ils fonctionnent correctement et vous ne réalisez pas que votre base de données se bloque et que vous ne pouvez pas la restaurer car vous n'avez pas de sauvegarde en cours.

C'est là que les notifications par e-mail arrivent, de sorte que vous pouvez voir le statut du travail tous les matins lorsque vous sirotez votre café et que vous prétendez que vous travaillez.

SQL Server fournit une méthode intégrée d'envoi de courriels, mais malheureusement, vous devez avoir Outlook et un profil installé sur le serveur, ce qui n'est pas nécessairement le moyen idéal pour envoyer un courriel. Heureusement, il existe une autre méthode, qui consiste à installer une procédure stockée sur votre serveur qui vous permettra d'envoyer des emails via SMTP.

Téléchargez la procédure stockée sp_SQLNotify ici.

Vous voulez modifier une ligne dans la procédure stockée pour mettre l'adresse IP de votre serveur SMTP:

EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields( "http: //schemas.microsoft.com/cdo/configuration/ smtpserver"). Valeur', '10. 1.1.10 '

Installer la procédure stockée dans la base de données master, de sorte qu'elle puisse être facilement utilisée depuis n'importe où.

Ouvrez la liste SQL Server Agent \ Jobs et sélectionnez les propriétés du travail pour lequel vous tentez de créer une notification:

Cliquez sur l'onglet Etapes et vous devriez voir un écran qui ressemble à ceci:

Cliquez sur le bouton Nouveaupour créer une nouvelle étape de travail. Nous allons utiliser cette étape pour envoyer la notification par courrier électronique en cas de succès.

Nom de l'étape: Réussite de la notification par courrier électronique

Entrez ce code SQL dans la fenêtre de commande, comme indiqué ci-dessous. Vous souhaiterez personnaliser les adresses e-mail et l'objet du message en fonction de votre environnement:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Success', 'Le travail de sauvegarde terminé'

réussi Cliquez sur OK, puis cliquez à nouveau sur le bouton Nouveau pour créer une autre étape. Ce sera l'étape de notification d'échec.

Nom de l'étape: Échec de la notification par courrier électronique

SQL:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Échec du job de sauvegarde', le job de sauvegarde a échoué '

Maintenant, l'idée est defaire les éléments suivent un flux de travail spécifique. Cliquez d'abord sur Modifier à l'étape 1 et définissez les propriétés comme indiqué ici:

Ce que nous disons, c'est qu'en cas de succès, passez à l'étape de la réussite et, en cas d'échec, passez à l'étape d'échec. Trucs assez simple.

Maintenant, éditez la deuxième étape, celle intitulée "Email Notification Success", et définissez les propriétés comme indiqué ici:

Nous disons que si le travail de notification est réussi, alors quittez le travail sans exécuter l'étape 3. Si nous nePour le spécifier, nous finirons par recevoir deux courriels, l'un avec succès et l'autre avec échec.

Maintenant, éditez la troisième étape, celle intitulée "Échec de la notification par e-mail", et définissez les propriétés comme indiqué ici:

Maintenant, les étapes de votre travail devraient ressembler à ceci:

Vous devriez maintenant recevoir des notifications par e-mail.

Remarque: La procédure stockée utilisée dans cet article a été trouvée ici, bien que cela ne soit pas la source d'origine.

Téléchargez la procédure stockée sp_SQLNotify ici.