sp_send_dbmail вставить файл mhtml в тело

У меня есть отчет SSRS, который мне нужно встроить в тело письма с использованием хранимой процедуры sp_dbmail в SQL Server. Я могу сделать это, используя внешний интерфейс Outlook, добавив экспорт .mhtml отчета SSRS с помощью опции «Вставить как текст» при прикреплении файла.

Есть ли способ, которым я могу это сделать, используя sp_dbmail sproc?

Я использую стандарт SQL Server 2014

Да, это возможно, читая содержимое файла в переменной, а затем передавая его в sp_send_dbmail . Вот как вы можете это сделать:

 declare @htmlBody varchar(max) SELECT @htmlBody=BulkColumn FROM OPENROWSET(BULK N'c:\test\test.html',SINGLE_BLOB) x; EXEC msdb.dbo.sp_send_dbmail @profile_name = N'Email', -- you should use the profile name of yours, whatever is set up in your system. @recipients = 'recipient_email_id', @subject = 'Test', @body = @htmlBody, @body_format = 'html', @from_address = 'sender_email_id'; 

Это вложит содержимое c:\test\test.html в тело электронной почты. Конечно, вы можете добавить больше к телу.

ОБНОВИТЬ:

Это работает только в том случае, если файл, который вы читаете, содержит содержимое HTML . Если вы хотите заставить его работать для mhtml , вам нужно преобразовать файл mhtml в html (см. Ответ, отправленный @Pops для получения подробной информации о том, как преобразовать mhtml в html ).

В случае, если люди задаются вопросом, вот как я преобразовал mhtml в html, используя SQL.

 declare @source varchar(max), @decoded varchar(MAX) SELECT @source =BulkColumn FROM OPENROWSET(BULK N'c:\test\test.mhtml',SINGLE_BLOB) x; SET @source = SUBSTRING(@source,CHARINDEX('base64',@source,1)+10,LEN(@source)) SET @source = SUBSTRING(@source,1,CHARINDEX('-',@source,CHARINDEX('base64',@source,1)+10)-5) SET @decoded = cast('' AS xml).value('xs:base64Binary(sql:variable("@source"))', 'varbinary(max)') EXEC msdb.dbo.sp_send_dbmail @profile_name = N'Email', -- you should use the profile name of yours, whatever is set up in your system. @recipients = 'recipient_email_id', @subject = 'Test', @body = @decoded, @body_format = 'html', @from_address = 'sender_email_id'; 
  • Подводный отчет не может быть показан. Под-отчет работает отдельно - не с основным докладом
  • Определение отчета SSRS новее, чем сервер
  • Цвет клиента в выражении IIF -SSRS
  • Динамические параметры SSRS, прошедшие через заголовок страницы
  • Результат SSRS отличается от результата SSMS тем же запросом
  • Как показать промежуточное и общее количество групп в ssrs
  • C # RDLC Развернуть все / Свернуть все SubReport
  • Отображение HTML-контента в отчете SSRS
  • Создайте набор данных SSRS, который запрашивает данные, зависящие от результатов из хранимой процедуры, которая создает таблицу Temp для хранения результатов?
  • Как удалить интервал между столбцами в столбчатой ​​диаграмме SSRS 2012
  • Диспетчер отчетов SSRS + выглядит странно
  • Давайте будем гением компьютера.