2017-02-16 7 views
0

Здравствуйте, я пытаюсь создать задачу потока данных, которая отправляет электронное сообщение в список пользователей. Кроме того, для каждого пользователя необходимо отправить другое тело.SSIS Result Set для каждого пользователя -> вывод по электронной почте

У меня есть первая часть, перебирающая всех пользователей и назначающая ее переменной, которая затем использует контейнер цикла для отправки отдельного адреса электронной почты каждому пользователю.) Мне также нужно это сделать то же самое для тела. Однако я не знаю, как это сделать. Поскольку тело содержит несколько наборов строк, а не только один «пользователь», такой как запрос/переменная электронной почты пользователя. Ответ

Я в конечном итоге наклеивание с посылом почтой задачей и используя для каждого цикла контейнеров для создания и отправки файла в качестве вложения электронной почты, а не создавать свои собственные функции и т.д. Это было лучшим и наиболее гибким решение для моих нужд.

Спасибо за помощь.

ответ

1

Для части HTML тела, вы можете либо попробовать:

  1. использование send mail task и установить выражение для каждого recipient и message source

  2. Напишите процедуру магазина для редактирования HTML-часть, основанную на разные получателя и отправить его по Database mail, используя EXEC msdb..sp_send_dbmail

СП будет выглядеть следующим образом:

DECLARE @Body NVARCHAR(MAX) 
DECLARE @HTMLHead VARCHAR(1000) 
DECLARE @HTMLTail VARCHAR(1000) 
DECLARE @CurrentDate VARCHAR(1000) 
DECLARE @Subject VARCHAR(500) 
DECLARE @recipients VARCHAR(500) 

if (@recipients = ...) 
begin 
set @body =... 
set @body = @HTMLHead [email protected] + @HTMLTail 

if(--for each recipient you need to iterate) 

EXEC msdb..sp_send_dbmail 
     @profile_name = 'your db profile name', 
     @recipients = @recipients, 
     @subject  = @Subject, 
     @body = @Body, 
     @body_format = 'HTML', 
     @blind_copy_recipients = @blind_copy_recipients; 

я настоятельно рекомендовал бы использовать 1-ый метод, который очень хорошо, так как вы уже поняли, первая часть, просто добавьте несколько send mail task после того, вы получите для получателя, и установите ограничение приоритета на expression, которое должно быть чем-то вроде @recipient =="[email protected]", тогда спрятанная задача - это send mail task, которую вам нужно настроить.

на 2-первых, вы должны установить и настроить db mail профиль и счет первых, вы можете обнаружить, что в Management -> База данных почты

+0

дайте мне знать, если у вас есть какие-либо проблемы при создании этой работы – LONG

+0

Мне удалось использовать первый метод, но быстро понял, что это проблема, поскольку мне действительно нужно представить полный набор результатов в электронном письме, и было бы лучше, если бы оно было в html для форматирования. Здесь я снова застрял. Я рассмотрю метод два. – Cjust689

+0

, если вы используете первый, это просто для чистого содержимого сообщения, но вам нужно использовать html-страницу для создания части тела, например, для вытягивания данных из таблицы, форматирования в список и т. Д. – LONG

 Смежные вопросы

  • Нет связанных вопросов^_^