如何在ssis中根据查找表向收件人发送电子邮件?

ac1kyiln  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(344)

我想在事件处理程序内部的ssis中创建一个send mail任务,以便在for each循环中的文件未按预期进行处理时使用。文件为.xlsx。文件名中(或行中)将是我要用来引用表的帐户id。该表有两列,accountid和email address。电子邮件地址是当文件无法处理时我要发送电子邮件的位置。
我对在ssis中创建此类任务比较陌生,因此需要一些帮助。我最担心的是如何在任务中引用表。。。认为我可能需要多个步骤?如果您需要更多的上下文或信息,请告诉我,并提前感谢您的帮助!

wqsoz72f

wqsoz72f1#

根据提供的信息,您必须使用ssis脚本任务或带有从引用表中获取emailaddress的变量的send email任务。

//SSIS script task
        public void Main()
        {
            SmtpClient varSMTPClient;

            string varEmailFrom = Dts.Variables["$Project::projectParameterEmailFrom"].Value.ToString();// readonly variable
            string varEmailTo = Dts.Variables["$Project::projectParameterEmailTo"].Value.ToString();// readonly variable

            MailMessage varHTMLMAIL = new MailMessage(varEmailFrom, varEmailTo);
            varHTMLMAIL.IsBodyHtml = true;
            varHTMLMAIL.Subject = "SSIS send e-mail";

            varHTMLMAIL.Body = "e-mail body text";
            varSMTPClient = new SmtpClient("SMTP Servername");
            varSMTPClient.UseDefaultCredentials = true;
            varSMTPClient.Send(varHTMLMAIL);

            Dts.TaskResult = (int)ScriptResults.Success;
        }
dbf7pr2w

dbf7pr2w2#

以下是这个问题的答案:
我最担心的是如何在任务中引用表
如何将帐号放入变量中。如果是文件名(这是字符串操作的最佳目标)。
添加一个executesql,并将sql设置为“select email from[your table]where account=?”
将结果集设置为单行
参数Map步骤1中的变量
将结果Map到“电子邮件变量”
使用该email变量以某种方式发送邮件(通过db mail发送邮件任务或脚本任务或sql任务)。我更喜欢c脚本任务,因为你有更多的控制权。

相关问题