Afsendelse af automatiserede job-e-mail-meddelelser i SQL Server med SMTP
Når du har automatiske sikkerhedskopieringsjob, der kører på din databaseserver, glemmer du nogle gange, at de selv kører. Derefter glemmer du at tjekke for at se om de kører med succes og ikke indse, før din database går i stykker, og du kan ikke gendanne den, da du ikke har en aktuelt backup.
Det er her, hvor e-mail-meddelelser kommer ind, så du kan se jobstatus hver morgen, når du nipper til din kaffe og foregiver at du arbejder.
SQL Server indeholder en indbygget metode til at sende e-mails, men det kræver desværre, at du har Outlook og en profil installeret på serveren, hvilket ikke nødvendigvis er den ideelle måde at sende en e-mail på. Heldigvis er der en anden metode, der indebærer at installere en gemt procedure på din server, der giver dig mulighed for at sende email via SMTP.
Download sp_SQLNotify Stored Procedure her.
Du vil gerne redigere en linje i den gemte procedure for at sætte IP-adressen på din SMTP-server:
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") .Value', '10 .1.1.10 '
Installer den gemte procedure i masterdatabasen, så den kan nemt bruges fra hvor det er nødvendigt.
Åbn SQL Server Agent \ Jobs-listen, og vælg egenskaberne for det job, du forsøger at oprette en anmeldelse til:
Klik på fanen Trin, og du skal se en skærm, der ser sådan ud:
Klik på knappen Ny for at oprette et nyt jobstrin. Vi vil bruge dette trin til at sende e-mail-meddelelsen om succes.
Trinnavn: Email Notification Success
Indtast denne SQL i kommandofeltet som vist nedenfor. Du vil gerne tilpasse e-mailadresserne og meddelelsesemnet for at matche dit miljø:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Success', 'Backup Job completed successfully'
Klik på OK, og klik derefter på knappen Ny for at oprette et nyt trin. Dette bliver meddelelsen om fejlmeddelelse.
Trinnavn: E-mailmeddelelsesfejl
SQL:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Sikkerhedskopieringsjob,' Backup Job failed '
Nu er ideen at få emnerne til at følge en bestemt arbejdsgang. Klik først på Rediger i trin 1, og angiv egenskaberne som vist her:
Hvad vi siger er at efter succes gå til successtrinnet, og hvis du går i stykker, skal du gå til fejlstrinnet. Smukke enkle ting.
Rediger nu det andet trin, den ene labled "Email Notification Success", og indstil egenskaberne som set her:
Vi siger, at hvis meddelelsesjobbet er vellykket, skal du bare afslutte jobbet uden at køre trin 3. Hvis vi ikke angiver dette, vil vi ende med at få to e-mails, en med succes og en med fejl.
Rediger nu det tredje trin, den ene labled "Email notification failure", og indstil egenskaberne som set her:
Nu skal dine job trin se sådan ud:
Du skal nu have e-mail-meddelelser i din indbakke for enten succes eller fiasko.
Bemærk: Den lagrede procedure, der blev brugt i denne artikel, blev fundet her, selv om det måske ikke er den oprindelige kilde.
Download sp_SQLNotify Stored Procedure her.