如何在 SSIS 中发送脚本任务电子邮件,其中包含文件夹中找到的所有文件

问题描述

我正在创建一个包,第一步是发送一封电子邮件(使用脚本任务,脚本语言 microsoft visual basic 2019),告诉收件人已收到哪些文件进行处理。我目前正在使用 Foreach 循环容器内的 ScriptTask 任务执行此操作。

电子邮件发送成功,但它会为找到的每个文件发送单独的电子邮件,而不是发送一封列出所有找到的文件的电子邮件。 (我尝试将 ScriptTask 从 Foreach Loop 容器中取出,但没有奏效)

Foreach Loop Container Collection Config Image

,

Foreach Variable Mapping Image

,

ScriptTask Code Image

,

Variables Used Image

解决方法

程序按预期运行 - for each file 循环容器枚举与搜索模式匹配的每个文件,然后您对其执行操作(发送电子邮件)。

您想要做的是删除您的 For each 文件循环容器。

相反,您的脚本任务将生成一个文件列表,然后您将把这些文件修补到电子邮件正文中。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...