пятница, 29 апреля 2016 г.

Настройка и выполнение Database Mail в MS SQL (msdb.dbo.sp_send_dbmail)

В данной заметке описана настройка Database Mail в MS SQL, а также приведен пример её использования вызовом хранимой процедуры.


Для настройки профилей отправки почты необходимы права sa для сервера MS SQL, в противном случае настроить не получится. Отправка почты возможна только по SMTP.
Для запуска мастера нужно запустить Management-Database Mail.
Создаем ящик в первый раз, поэтому выбираем первый пункт, который означает создание
нового профиля.

На экране появится окно о запуске сервиса отправки почты (если сервис еще не включен). Необходимо нажать Yes.Появится окно создания профиля. Вводим название профиля, комментарий. И нажимаем кнопку «Add…» для добавления нового SMTP аккаунта для отправки почты.
На экране появится окно для ввода данных SMPT аккаунта.
Необходимо указать название аккаунта, указать расшифровку для него. Указать емаил, указываемое имя при отправке почты, можно указать емаил для предоставления копии сообщения, указывается адрес сервера и порт доступа. также необходимо указать тип аутентификации на сервере. Нажимаем Ok после завершения всех настроек.
Нажимаем Next и указываем профиль как default для публичного или приватного использования.
Нажимаем Next. Появляется окно настроек передачи данных.
Можно поменять размер файла или количество повторных отправки почты. А можно все оставить как есть. Нажимаем Next.
Все прошло хорошо и теперь можно протестировать отправку почты. Уже настроенный аккаунт доступен не только sa но и пользователям из группы DatabaseMailUserRole.
Для отправки почты можно воспользоваться процедурой msdb.dbo.sp_send_dbmail.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Mail from test',
@recipients = 'test@mail.ru',
@query = 'SELECT * FROM test.dbo.testtable',
@subject = 'test',
@body = N'Данные из таблицы test.dbo.testtable ',
@attach_query_result_as_file = 1,
@query_attachment_filename = ' testtable.txt';
где:
@profile_name - настроенный профиль для почты,

@recipients - адресаты,

@query - запрос который будет добавлен в файл,

@subject - тема письма,

@body - тело письма,

@attach_query_result_as_file - сколько файлов будет занимать результат запроса,

@query_attachment_filename - названия файла для результата запросов.

Ссылки по тема:

https://habrahabr.ru/post/179819/ - настройка с помощью скриптов.

https://habrahabr.ru/post/132902/ - настройка из мастера.

https://msdn.microsoft.com/ru-ru/library/ms190307(v=sql.120).aspx - процедура отправки почты msdb.dbo.sp_send_dbmail.

Комментариев нет:

Отправить комментарий