如何在 SSIS 或 SQL 中使用不同的数据集向不同的收件人发送电子邮件?

Posted

技术标签:

【中文标题】如何在 SSIS 或 SQL 中使用不同的数据集向不同的收件人发送电子邮件?【英文标题】:How to send email to different recipient with a different set of data in SSIS or by SQL? 【发布时间】:2020-11-02 19:58:47 【问题描述】:

请建议我如何做到这一点:

另一个表有我需要发送的数据集:

现在通过使用 SSIS,我们必须将数据集发送到该电子邮件。在生产中,我有 135 封电子邮件,并向他们发送了包含他们的区域集的单独数据。

@pp@gmial.cpm 将仅获取主题为数学的数据。

我不知道如何创建变量来传递变量。

谁能帮我解决这个问题?

【问题讨论】:

重复我今天早些时候发表的评论:您需要使用执行 T-SQL 任务将数据输入到对象变量中,然后使用 For 循环遍历数据每个容器。然而,SSIS 不支持 html 电子邮件,因此除非您对纯文本感到满意,否则在 SQL Server 中使用CURSOR 执行此类任务,或者使用实际的邮件合并应用程序将是更好的选择。我> 另外,您真的还在使用 BIDS 吗?对您标记的版本的支持在一年多以前就结束了;您现在已经过了升级周期。 你能帮我创建变量吗 【参考方案1】:

我经常使用这种方法发送电子邮件:

    public static void SendEmail(List<string> to, string subject, string body,  string filepathName = null)
    
        using (MailMessage mail = new MailMessage())
        
            string from = ConfigurationManager.AppSettings["EmailFrom"];

            SmtpClient SmtpServer = new SmtpClient("your email server"); 

            mail.From = new MailAddress(from);
            foreach(string t in to)
                mail.To.Add(new MailAddress(t));

            mail.Subject = subject;

            mail.ReplyToList.Add("your reply to email");
            mail.IsBodyHtml = true;
            mail.Body = body;
            mail.Bcc.Add("enter your email if you want to be copied");

            if (filepathName != null)
            
                Attachment file;
                file = new Attachment(filepathName);
                mail.Attachments.Add(file);
            

            SmtpServer.Port = 2525; //this is unique to you
            SmtpServer.Credentials = new NetworkCredential(from, ConfigurationManager.AppSettings["EmailPassword"]);


            SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);
            
        
    

这不会完全解决您的问题,但可以让您选择直接从 SSIS 脚本任务发送 HTML 电子邮件。

您将无法使用配置管理器,您需要对其进行“硬编码”。

【讨论】:

以上是关于如何在 SSIS 或 SQL 中使用不同的数据集向不同的收件人发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SSIS 将 OTM 中的数据提取到 SQL Server 中?

使用 SSIS 脚本任务将数据从多个 SQL 表导出到不同的平面文件

如何在 SSIS 中将 Y2K 日期转换为 SQL 日期?

如何在 SSIS 包中使用变量和 SQL 代码?

SSIS如何使用Visual Basic将空白日期插入数据库

如何在 SQL Standard 上导出 SSIS 数据并在 SQL Express 上使用 Bulk Insert 导入?