Проверяем отсылку тестового письма
Если письмо не дошло — смотрим логи. проверяем брокера
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';



