如何在 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如何使用Visual Basic将空白日期插入数据库
如何在 SQL Standard 上导出 SSIS 数据并在 SQL Express 上使用 Bulk Insert 导入?