Главная » Файлы » Общее

Отправка почты из клиента
12.11.2015, 09:43

Ранее мы использовали тиражную cssp_SendEmail, но она сильно тормозит - диалог замирает на несколько секунд при отправке почты.

Написать exec msdb.dbo.sp_send_dbmail прямо в диалоге не получилось т к у обычных пользователей нет прав для ее запуска и настроить их не получилось.

Вышли из положения с помощью так называемой обертки. Создали процедуру, от имени пользователю dtsx, который является админом сиквела. Пользователь выполняет со своими правами эту процедуру, но выполняется она всегда от имени админа

exec dbo.user_send_mail  @rec = _perf_mail_[''] , @rec_copy ='' , @subj = _tema_[''] , @bd = _mes_[''] , @from_addr =''; 

Ниже текст хранимой процедуры.

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[user_send_mail]
(
    @rec varchar(1000),
    @rec_copy varchar(1000),
    @subj varchar(1000),
    @bd varchar(max),
    @from_addr varchar(1000)

    WITH EXECUTE AS 'dtsx'
AS
begin
exec msdb.dbo.sp_send_dbmail  @recipients = @rec , @copy_recipients = @rec_copy , @subject = @subj , @body = @bd , @from_address = @from_addr
end
GO

Категория: Общее | Добавил: rebel25
Просмотров: 645 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar