/ / Sende automatiserte e-postvarsler i SQL Server med SMTP

Sende automatiserte e-postvarsler i SQL Server med SMTP

Når du har automatiserte sikkerhetskopieringsjobber som kjører pådatabaseserveren, noen ganger glemmer du at de til og med kjører. Da glemmer du å sjekke om de kjører med suksess, og ikke skjønner før databasen krasjer og du ikke kan gjenopprette den siden du ikke har noen gjeldende sikkerhetskopi.

Det er her e-postvarsler kommer inn, slik at du kan se jobbstatusen hver morgen når du nipper til kaffen din og later som du jobber.

SQL Server tilbyr en innebygd metode for sendinge-post, men dessverre krever det at du har Outlook og en profil installert på serveren, noe som ikke nødvendigvis er den ideelle måten å sende en e-post på. Heldigvis finnes det en annen metode, som innebærer å installere en lagret prosedyre på serveren din som lar deg sende e-post via SMTP.

Last ned sp_SQLNotify Stored Procedure her.

Du vil redigere en linje i den lagrede prosedyren for å plassere IP-adressen til SMTP-serveren:

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

Installer den lagrede prosedyren i hoveddatabasen, slik at den lett kan brukes der du trenger.

Åpne listen over SQL Server Agent Jobs, og velg egenskapene for jobben du prøver å opprette et varsel for:

Klikk på trinn-fanen, så ser du en skjerm som ser slik ut:

Klikk på Ny-knappen for å opprette et nytt jobbtrinn. Vi bruker dette trinnet for å sende e-postvarslingen om suksess.

Trinnnavn: E-postvarsling suksess

Legg inn denne SQL i kommandovinduet som vist nedenfor. Du vil tilpasse e-postadressene og meldingen som passer til omgivelsene dine:

exec master.dbo.sp_SQLNotifiser ‘server@localserver.com’, ‘admin@localserver.com’, ‘Sikkerhetskopieringsjobb suksess’, ‘Sikkerhetskopieringsjobben fullført vellykket’

Klikk OK og deretter på Ny-knappen igjen for å opprette et nytt trinn. Dette vil være trinnet om feilmelding.

Trinnnavn: Melding om e-postvarsel

SQL:

exec master.dbo.sp_SQLVis ‘server@localserver.com’, ‘admin@localserver.com’, ‘Feil på sikkerhetskopieringsjobb,‘ Sikkerhetskopieringsjobben mislyktes ’

Nå er ideen å få elementene til å følge en spesifikk arbeidsflyt. Klikk først på Rediger på trinn 1, og angi egenskapene som vist her:

Det vi sier er at når du lykkes, gå til suksesstrinnet, og på fiasko, gå til feiltrinnet. Ganske enkle ting.

Nå rediger det andre trinnet, det ene som er merket "E-postvarsling suksess", og angi egenskapene som sett her:

Vi sier at hvis varslingsjobben er detvellykket, så er det bare å avslutte jobben uten å kjøre trinn 3. Hvis vi ikke spesifiserer dette, vil vi ende opp med å få to e-poster, en med suksess og en med feil.

Nå rediger det tredje trinnet, det ene som er merket "E-postvarslingsfeil", og angi egenskapene som sett her:

Nå skal jobbtrinnene dine se slik ut:

Du bør nå ha e-postvarsler i innboksen din for enten suksess eller fiasko.

Merk: Den lagrede prosedyren som ble brukt i denne artikkelen ble funnet her, selv om det kanskje ikke er den opprinnelige kilden.

Last ned sp_SQLNotify Stored Procedure her.