我们如何使用SQL Server(SSIS、SSRS或SQL代理)向500人发送带有附件的电子邮件

我们如何使用SQL Server(SSIS、SSRS或SQL代理)向500人发送带有附件的电子邮件,sql,sql-server,reporting-services,sql-server-2008-r2,Sql,Sql Server,Reporting Services,Sql Server 2008 R2,我需要你的建议。我们如何向500名用户发送带有附件的电子邮件。我们公司正在使用SQL Server 2008 R2企业版 我曾尝试从SSIS使用发送邮件任务,但由于中的限制,我们最多可以发送18个收件人到:Cc:Bcc: 有什么方法可以使用SQL代理或SSRS发送吗 我对SSRS报告订阅接收人还有另一个疑问 我们可以使用订阅发送报告的最大收件人数。我问这第二个问题的原因是,如果我可以使用SSRS报告订阅向500个用户发送报告,那么我就可以使用SSRS 谢谢你的时间 您可以编写一个光标,在所有收件

我需要你的建议。我们如何向500名用户发送带有附件的电子邮件。我们公司正在使用SQL Server 2008 R2企业版

我曾尝试从SSIS使用
发送邮件
任务,但由于
中的限制,我们最多可以发送18个收件人到:Cc:Bcc:

有什么方法可以使用SQL代理或SSRS发送吗

我对SSRS报告订阅接收人还有另一个疑问

我们可以使用订阅发送报告的最大收件人数。我问这第二个问题的原因是,如果我可以使用SSRS报告订阅向500个用户发送报告,那么我就可以使用SSRS


谢谢你的时间

您可以编写一个光标,在所有收件人之间循环,并一次向一个收件人发送电子邮件。。。即使您从未编写过游标,按照“帮助”中的示例进行操作也不难…

我只想使用数据库邮件功能,编写您自己的T-SQL代码来使用发送电子邮件。用于传递分隔列表的
@recipients
参数是type
varchar(max)
,因此我确信它可以处理您的500个电子邮件地址。我在MSDN上找不到除数据类型限制以外的任何限制

在本例中,如果要重复使用SQL代理,我可能会坚持使用SQL代理

编辑

正如Brian在评论中所建议的,您可能确实希望使用具有相同数据类型的
@blind\u copy\u recipients

实际上,SSRS将非常好地工作。我们每隔几周使用SSRS发送大约4000-5000份电子邮件报告


创建将生成附件的报告。创建一个查询,提供电子邮件地址和任何报告参数。接下来,使用查询创建数据驱动订阅。您应该能够根据需要扩展到数千个收件人

varchar(最大值)肯定不会处理500封电子邮件varchar(最大值)会轻松处理500封电子邮件只有一条评论,我会使用@blind_copy_收件人作为地址,以防止回复所有问题并隐藏电子邮件地址。收件人、复制收件人和盲复制收件人都是varchar(max)。varchar(最大值)将容纳大约2GB的容量。500个电子邮件地址,每个50个字符+500个分号来分隔每个地址,+2个字节表示可变长度,即25502字节或25KB。这比2 GB的限制小得多。