Skip to main content

Sende automatiserte e-postvarsler i SQL Server med SMTP

Sende automatiserte e-postvarsler i SQL Server med SMTP

Geoffrey Carr

Når du har automatiserte sikkerhetskopieringsjobber som kjører på databaseserveren, kan du noen ganger glemme at de går til og med. Da glemmer du å sjekke for å se om de kjører vellykket, og ikke skjønner før databasen din går i stykker, og du kan ikke gjenopprette siden du ikke har en gjeldende sikkerhetskopiering.

Det er der e-postvarsler kommer inn, slik at du kan se jobbstatus hver morgen når du nipper til kaffen din og utgir at du jobber.

SQL Server gir en innebygd metode for å sende e-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 vil tillate deg å sende e-post via SMTP.

Last ned sp_SQLNotify Stored Procedure her.

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

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 fra hvor det er nødvendig.

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

Klikk på fanen Trinn, og du bør se en skjerm som ser slik ut:

Klikk på Ny knappen for å opprette et nytt jobbstrinn. Vi vil bruke dette trinnet til å sende e-postvarslinget til suksess.

Trinnnavn: Email Notification Success

Skriv inn denne SQL i kommandovinduet som vist nedenfor. Du vil ønske å tilpasse e-postadressene og meldingsemnet slik at de samsvarer med miljøet ditt:

exec master.dbo.sp_SQLNotify ‘[email protected]’,’[email protected]’,’Backup Job Success’,’The Backup Job completed successfully’

Klikk OK, og klikk deretter Ny knappen igjen for å opprette et nytt trinn. Dette vil være feilmeldingsstrinnet.

Trinnnavn: E-postvarslingsfeil

SQL:

exec master.dbo.sp_SQLNotify ‘[email protected]’,’[email protected]’,’Backup Job Failure,’The Backup Job failed’

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

Det vi sier er at etter suksess går du til suksessstrinnet, og når du går til feil, går du til feilsteget. Ganske enkle ting.

Rediger nå det andre trinnet, den ene aktiverte "Email Notification Success", og sett egenskapene som vist her:

Vi sier at hvis meldingsjobben er vellykket, avslutter du jobben uten å kjøre trinn 3. Hvis vi ikke angir dette, vil vi ende opp med å få to e-postmeldinger, en med suksess og en med feil.

Rediger nå det tredje trinnet, den ene aktiverte "E-postvarslingsfeil", og sett egenskapene som vist her:

Nå skal dine jobbtak 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 den kanskje ikke er den opprinnelige kilden.

Last ned sp_SQLNotify Stored Procedure her.

Link
Plus
Send
Send
Pin