Проверяем отсылку тестового письма
Если письмо не дошло — смотрим логи. проверяем брокера
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'
Если возвращаемое значение отличается от единицы, Service Broker выключен. Включаем брокера
ALTER DATABASE msdb SET ENABLE_BROKER
SQL Server может прислать уведомление о том, что задание выполнилось успешно / завершилось с ошибкой. Настраиваем агента
Если в логах регламентного задания видим ошибку
«EXECUTE msdb.dbo.sp_notify_operator @name=N’.» со следующей ошибкой: «Глобальный профиль не настроен. Укажите имя профиля при помощи параметра @profile_name. Глобальный профиль не настроен. Укажите имя профиля при помощи параметра @profile_name.». Возможные причины сбоя: проблемы с этим запросом, свойство «ResultSet» установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно. Конец ошибки DTExec: завершено исполнение пакетаDTSER_FAILURE
Проверяем назначили ли мы дефолтные профили
С консоли весь процесс выглядит примерно так
IF (SELECT is_broker_enabled FROM sys.databases WHERE [name] = 'msdb') = 0 ALTER DATABASE msdb SET ENABLE_BROKER WITH ROLLBACK AFTER 10 SECONDS GO sp_configure 'Database Mail XPs', 1 GO RECONFIGURE GO проверить, запущена ли служба DBMail: EXECUTE msdb.dbo.sysmail_help_status_sp запустить ее запросом EXECUTE msdb.dbo.sysmail_start_sp -- Создадим SMTP-аккаунт для отсылки писем EXECUTE msdb.dbo.sysmail_add_account_sp -- Название аккаунта @account_name = 'admin@iamroot.ru', -- Краткое описание аккаунта @description = N'Почтовый аккаунт admin@iamroot.ru', -- Почтовый адрес @email_address = 'admin@iamroot.ru', -- Имя, отображаемое в письме в поле "От:" @display_name = N'DATABASE_ADMIN', -- Адрес, на который получателю письма нужно отправлять ответ @replyto_address = 'admin@iamroot.ru', -- Домен или IP-адрес SMTP-сервера @mailserver_name = 'mail.iamroot.ru', -- Порт SMTP-сервера, обычно 25 @port = 25, -- Имя пользователя. Некоторые почтовые системы требуют указания всего -- адреса почтового ящика вместо одного имени пользователя @username = 'admin@iamroot.ru', -- Пароль к почтовому ящику @password = 'passw0rd', -- Защита SSL при подключении, большинство SMTP-серверов сейчас требуют SSL @enable_ssl = 1; -- Создадим профиль администратора почтовых рассылок EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'DBAADMIN'; -- Подключим SMTP-аккаунт к созданному профилю EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'DBAADMIN', @account_name = 'admin@iamroot.ru', -- Указатель номера SMTP-аккаунта в профиле @sequence_number = 1; -- Установим права доступа к профилю для роли DatabaseMailUserRole базы MSDB EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'DBAADMIN', @principal_id = 0, @is_default = 1; отправим тестовое письмо: EXEC msdb.dbo.sp_send_dbmail -- Созданный нами профиль администратора почтовых рассылок @profile_name = 'DBAADMIN', -- Адрес получателя @recipients = 'mmch@iamroot.ru', -- Текст письма @body = N'Испытание системы SQL Server Database Mail', -- Тема @subject = N'Тестовое сообщение', -- Для примера добавим к письму результаты произвольного SQL-запроса @query = 'SELECT TOP 10 name FROM sys.objects';