答案 0 :(得分:1)
正如Alleman指出的那样,sp_send_dbmail是执行任务的最佳选择。需要分配的唯一权限是 msdb 数据库中的 DatabaseMailUser 数据库角色。
但是,如果您觉得需要通过SSIS解决。以下是要遵循的步骤 -
创建一个对象变量说objInvoiceAttachmentList并跟随三个变量 - sCustomerName,sAttachmentFullFilePath,sMailId
使用“执行SQL任务”并运行查询以获取客户数据列表,如下所示。将结果集设置为“完整结果集”。在“ResultSet”选项卡中,将其分配给上面的对象变量。 (假设您的客户有一个名为MailId的列)
从dbo中选择名称,附件,MailId.InvoiceAttachments
使用'For Each Loop Container'。在“Collection”中将枚举数设置为“Foreach ADO Enumerator”,并将集合变量设置为objInvoiceAttachmentList。在“变量映射”选项卡中,按查询顺序分配三个变量。
在foreach循环任务中使用“发送邮件任务”。转到“表达式”并使用正确的有效SMTP连接设置相应的变量。
答案 1 :(得分:1)
SSIS很容易。
答案 2 :(得分:0)
您不需要使用SSIS。事实上,SSIS实际上并不是一个非常好的工具。
sp_send_dbmail可以从文件系统发送附件。使用@file_attachments
参数。