【问题标题】:How can I send out a script task email in SSIS that includes all files found in folder如何在 SSIS 中发送包含文件夹中所有文件的脚本任务电子邮件
【发布时间】:2021-05-22 13:51:30
【问题描述】:
我正在创建一个包,第一步是发送一封电子邮件(使用脚本任务,脚本语言 microsoft visual basic 2019),告诉收件人已收到哪些文件进行处理。我目前正在使用 Foreach 循环容器内的 ScriptTask 任务来执行此操作。
电子邮件成功发送,但它会为找到的每个文件发送单独的电子邮件,而不是发送一封列出所有找到的文件的电子邮件。 (我尝试将 ScriptTask 从 Foreach 循环容器中取出,但没有成功)
,
,
,
【问题讨论】:
标签:
visual-studio
ssis
visual-studio-2019
script-task
foreach-loop-container
【解决方案1】:
程序正在按预期执行 - for each file 循环容器会枚举与搜索模式匹配的每个文件,然后您对其执行操作(发送电子邮件)。
您要做的是删除您的 For each file 循环容器。
相反,您的脚本任务将生成一个文件列表,然后您将其修补到您的电子邮件正文中。
BooksOnLine 似乎不再有 VB 示例,但您想使用 System.IO.Directory.GetFiles 静态方法。
' Logic here for building out the body of the email aka list of files
Dim filePath as string = "\\longservername\share\path\etc"
Dim filePattern as string = "*.txt"
' Whatever the VB syntax is for creating an array
var fileArray = System.IO.Directory.GetFiles(filePath, filePattern)
' again, I don't have VB handy but this will create a comma delimited list of all of our files
Dim allFiles as string = string.join(fileArray, ",")
' at this point, we resume your code
e_email.Body = allFiles