четверг, 28 октября 2010 г.

отправка почты из SQL запросами

Для этих целей в MS SQL Server есть два механизма, оба механизма - это хранимые процедуры:
xp_send_mail
sp_send_dbmail

2-й вариант предпочтительнее, поскольку он не требует установки Outlook на сервер и создание почтового профиля.

достаточно включить возможность отправки почты:

Через "Microsoft SQL Server Management Studio" -> раскрываем сервер, к которому подключились ->
1.Останавливаем SQL Server Agent (если ранее не настраивали отправку почтовых сообщений) -> "Management" -> правой кнопкой "Database Mail" -> "Configure Database Mail" ->

может выскочить ошибка вида(Cannot enable the Service Broker in databse "msdb" ...):



решается:

ALTER DATABASE MSDB SET NEW_BROKER

Далее здесь же вводим имя профиля 'Email_sender_MyServer' и запоминаем - в дальнейшем пригодиться.

Пример скрипта отправки почтовых сообщений:

DECLARE @Select1 NVARCHAR(MAX);

SET @Select1 = (SELECT * FROM MyDatabase.dbo.cena);

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Email_sender_MyServer',--здесь вводим запомненное имя
@recipients= 'User1@MyDomain.ru; User1@MyDomain.ru; GroupMail1@MyDomain.ru',
@subject = 'Price',

@body = @Select1,
@body_format = 'TEXT' ;


Полезные ссылки:

http://msdn.microsoft.com/ru-ru/library/ms175887.aspx

http://www.sqlnewsgroups.net/sqlserver/t12073-cannot-enable-service-broker.aspx

http://sql.ru/forum/actualthread.aspx?tid=713259

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

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