If-Koubou

Изпращане на автоматични съобщения за имейл в SQL Server с SMTP

Изпращане на автоматични съобщения за имейл в SQL Server с SMTP (Как да)

Когато имате автоматизирани задания за архивиране, които се изпълняват на сървъра на базата данни, понякога забравяте, че те дори работят. След това забравяте да проверите дали те работят успешно и не осъзнавате, докато базата данни не се срине и не можете да я възстановите, тъй като нямате текущо архивиране.

Това е мястото, където се появяват известия по имейл, така че можете да видите състоянието на заданието всяка сутрин, когато пиете кафето си и се преструвате, че работите.

SQL Server предоставя вграден метод за изпращане на имейли, но за съжаление изисква да имате Outlook и профил, инсталирани на сървъра, което не е задължително идеалният начин да изпратите имейл. За щастие има друг метод, който включва инсталиране на съхранена процедура на вашия сървър, който ще ви позволи да изпращате имейл през SMTP.

Изтеглете sp_SQLNotify Stored Procedure тук.

Ще искате да редактирате един ред в съхранената процедура, за да поставите IP адреса на вашия SMTP сървър:

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

Инсталирайте съхранената процедура в основната база данни, така че да може лесно да се използва от където е необходимо.

Отворете списъка SQL Server Agent \ Jobs и изберете свойствата за заданието, което се опитвате да създадете, за:

Кликнете върху раздела Стъпки и трябва да видите екран, който изглежда така:

Кликнете върху бутона "Нов", за да създадете нова стъпка от задачата. Ще използваме тази стъпка, за да изпратим известието по имейл за успеха.

Име на стъпката: Уведомление за успех по имейл

Въведете този SQL в прозореца Команда, както е показано по-долу. Вие ще искате да персонализирате имейл адресите и съобщенията съобразно вашата среда:

exec master.dbo.sp_SQLNotify "[email protected]", "[email protected]", "Успех при работа с резервни копия", "Архивирането приключи успешно"

Кликнете върху OK и след това върху бутона Нов отново, за да създадете нова стъпка. Това ще бъде стъпката за известяване на неуспеха.

Име на стъпката: Неуспешно уведомяване по имейл

SQL:

exec master.dbo.sp_SQLNotify "[email protected]", "[email protected]", "Защита на задачата при архивиране", "Резервната работа не бе успешна"

Сега идеята е да направите елементите да следват конкретен работен процес. Първо кликнете върху Редактиране на стъпка 1 и задайте свойствата, както е показано тук:

Това, което казваме, е, че при успех, отидете на стъпка за успех и при неуспех отидете на стъпката за неуспех. Доста прости неща.

Сега редактирайте втората стъпка, тази, на която сте избрали "Уведомяване за успешно получаване на имейл" и задайте свойствата, както е показано тук:

Казваме, че ако задачата за уведомяване е успешна, то просто се откажете от работата без да изпълнявате стъпка 3. Ако не уточним това, ще приключим с получаването на два имейла, единият с успех и един с неуспех.

Сега редактирайте третата стъпка, озаглавена "Неуспешна информация за имейл" и задайте свойствата, както е показано тук:

Сега стъпките на вашата работа трябва да изглеждат така:

Вече трябва да имате известия по имейл във входящата си поща, за успех или неуспех.

Забележка: Запаметената процедура, използвана в тази статия, е намерена тук, въпреки че може да не е оригиналният източник.

Изтеглете sp_SQLNotify Stored Procedure тук.