Домашняя » как » Отправка автоматических уведомлений о заданиях по электронной почте на SQL Server по SMTP

    Отправка автоматических уведомлений о заданиях по электронной почте на SQL Server по SMTP

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

    Здесь приходят уведомления по электронной почте, поэтому вы можете видеть статус работы каждое утро, когда вы потягиваете свой кофе и притворяетесь, что работаете.

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

    Загрузите хранимую процедуру sp_SQLNotify здесь.

    Вы захотите отредактировать одну строку в хранимой процедуре, чтобы указать IP-адрес вашего SMTP-сервера:

    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields (“http://schemas.microsoft.com/cdo/configuration/smtpserver”). Значение', '10 .1.1.10 '

    Установите хранимую процедуру в основную базу данных, чтобы ее можно было легко использовать везде, где это необходимо.

    Откройте список SQL Server Agent \ Jobs и выберите свойства для задания, для которого вы пытаетесь создать уведомление:

    Нажмите на вкладку Шаги, и вы должны увидеть экран, который выглядит следующим образом:

    Нажмите кнопку «Создать», чтобы создать новый шаг задания. Мы будем использовать этот шаг, чтобы отправить уведомление по электронной почте об успехе.

    Имя шага: Успешное уведомление по электронной почте

    Введите этот SQL в окно команд, как показано ниже. Вы хотите настроить адреса электронной почты и тему сообщения в соответствии с вашей средой:

    exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Задание резервного копирования успешно', 'Задание резервного копирования успешно выполнено'

    Нажмите OK, а затем снова нажмите кнопку New, чтобы создать еще один шаг. Это будет шаг уведомления об ошибке.

    Имя шага: Ошибка уведомления по электронной почте

    SQL:

    exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Ошибка задания резервного копирования,' Ошибка задания резервного копирования '

    Теперь идея состоит в том, чтобы заставить элементы следовать определенному рабочему процессу. Сначала нажмите Edit на шаге 1 и установите свойства, как показано здесь:

    Мы говорим, что в случае успеха перейдите к шагу успеха, а в случае неудачи перейдите к шагу неудачи. Довольно простые вещи.

    Теперь отредактируйте второй шаг, помеченный как «Успешное уведомление по электронной почте», и установите свойства, как показано здесь:

    Мы говорим, что если задание на уведомление выполнено успешно, просто выйдите из задания, не выполняя шаг 3. Если мы не укажем это, мы получим два электронных письма, одно с успехом, а другое с ошибкой.

    Теперь отредактируйте третий шаг, помеченный «Ошибка уведомления по электронной почте», и установите свойства, как показано здесь:

    Теперь ваши рабочие шаги должны выглядеть так:

    Теперь вы должны иметь уведомления по электронной почте в папке «Входящие» для успеха или неудачи.

    Примечание. Хранимая процедура, использованная в этой статье, была найдена здесь, хотя это может быть и не первоисточник.

    Загрузите хранимую процедуру sp_SQLNotify здесь.