30Jun

Het verzenden van Geautomatiseerde Job Email Notifications in SQL Server met SMTP

Wanneer u geautomatiseerde back-uptaken op uw databaseserver uitvoert, vergeet u soms dat ze zelfs actief zijn. Dan vergeet je om te controleren om te zien of ze met succes worden uitgevoerd, en realiseer je je pas wanneer je database crasht en je deze niet kunt herstellen omdat je geen huidige back-up hebt.

Dat is waar e-mailmeldingen binnenkomen, zodat je de taakstatus elke ochtend kunt zien wanneer je aan je koffie nipt en doet alsof je aan het werk bent.

SQL Server biedt een ingebouwde methode voor het verzenden van e-mails, maar het vereist helaas dat u Outlook en een profiel op de server hebt geïnstalleerd, wat niet per se de ideale manier is om een ​​e-mail te verzenden. Gelukkig is er nog een andere methode, namelijk het installeren van een opgeslagen procedure op uw server waarmee u e-mail kunt verzenden via SMTP.

Download hier de opgeslagen procedure sp_SQLNotify opgeslagen.

U wilt één regel in de opgeslagen procedure bewerken om het IP-adres van uw SMTP-server te plaatsen:

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

Installeer de opgeslagen procedure in de hoofddatabase, zodat deze gemakkelijk kan worden gebruikt waar nodig.

Open de lijst SQL Server Agent \ Jobs en selecteer de eigenschappen voor de taak waarvoor u een melding wilt maken:

Klik op het tabblad Stappen en u zou een scherm moeten zien dat er als volgt uitziet:

Klik op de knop Nieuwom een ​​nieuwe werkstap te maken. We zullen deze stap gebruiken om de e-mailmelding over succes te verzenden.

Stappennaam: e-mailbevestiging geslaagd

Voer deze SQL in het opdrachtvenster in zoals hieronder te zien is. U wilt de e-mailadressen en het onderwerp van het bericht aanpassen aan uw omgeving:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Success', 'De back-uptaak ​​voltooidsuccesvol '

Klik op OK en klik vervolgens nogmaals op de knop Nieuw om nog een stap te maken. Dit is de stap voor het melden van storingen.

Stappennaam: E-mailmeldingsfout

SQL:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Back-uptaakfout', de back-uptaak ​​is mislukt '

Nu is het idee omlaat de items een specifieke workflow volgen. Klik eerst op Bewerken in stap 1 en stel de eigenschappen in zoals hier getoond:

Wat we zeggen is dat bij succes naar de successtap gaat, en bij het falen naar de faalstap. Vrij simpele dingen.

Bewerk nu de tweede stap, de "E-mail notificatiesucces", en stel de eigenschappen in zoals hier te zien:

We zeggen dat als de meldtaak succesvol is, dan gewoon de opdracht afsluit zonder stap 3 uit te voeren. Als u dit opgeeft, krijgen we uiteindelijk twee e-mails, een met succes en een met een fout.

Bewerk nu de derde stap, de "E-mailkennisgevingsfout", en stel de eigenschappen in zoals hier te zien:

Nu zouden uw taakstappen er als volgt uit moeten zien:

U zou nu e-mailmeldingen in uw inbox moeten hebben voor zowel succes als mislukking.

Opmerking: de opgeslagen procedure die in dit artikel wordt gebruikt, is hier gevonden, hoewel dat misschien niet de oorspronkelijke bron is.

Download hier de opgeslagen procedure sp_SQLNotify opgeslagen.