Настройка компонента DatabaseMail MsSQL

 

1

2 3 4 5Проверяем отсылку тестового письма

Если письмо не дошло — смотрим логи. проверяем брокера

SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'
Если возвращаемое значение отличается от единицы, Service Broker выключен. Включаем брокера
ALTER DATABASE msdb SET ENABLE_BROKER

SQL Server может прислать уведомление о том, что задание выполнилось успешно / завершилось с ошибкой. Настраиваем агента

6 7 8

 

Если в логах регламентного задания видим ошибку

«EXECUTE msdb.dbo.sp_notify_operator @name=N’.» со следующей ошибкой: «Глобальный профиль не настроен. Укажите имя профиля при помощи параметра @profile_name.  Глобальный профиль не настроен. Укажите имя профиля при помощи параметра @profile_name.». Возможные причины сбоя: проблемы с этим запросом, свойство «ResultSet» установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.  Конец ошибки  DTExec: завершено исполнение пакетаDTSER_FAILURE

Проверяем назначили ли мы дефолтные профили

5

 

С консоли весь процесс выглядит примерно так

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';


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.