如何向多个收件人发送电子邮件?

22

我有一个存储过程,它会向几个收件人发送电子邮件。我想使用@copy_recipients将邮件发送给两个不同的收件人,但是我得到了语法错误。如何使其工作?

存储过程代码:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'mail', 
    @recipients = @Mail1,
    @copy_recipients = @Mail2;@Mail3, 
    @body =@body ,
    @subject =@subject 

3
“@Mail2;@Mail3”这个概念本质是正确的,但实现有问题。由于“;”不在字符串中,导致SQL语句被终止,从而导致语法无效。 - user2864740
1个回答

36

您需要使用字符串连接在电子邮件地址之间添加分号;:

DECLARE @copy_to varchar(max)= @Mail2+';'+@Mail3

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'mail', 
    @recipients = @Mail1,
    @copy_recipients = @copy_to, 
    @body =@body ,
    @subject =@subject 

您可以在此处阅读MSDN文章:这里

[ @recipients= ] '收件人'

是一个用分号分隔的电子邮件地址列表,用于发送邮件。接收者列表的类型为varchar(max)。虽然此参数是可选的,但必须指定@recipients、@copy_recipients或@blind_copy_recipients中的至少一个,否则sp_send_dbmail会返回错误。

[ @copy_recipients= ] '抄送人'

是一个用分号分隔的电子邮件地址列表,用于抄送消息。副本收件人列表的类型为varchar(max)。虽然此参数是可选的,但必须指定@recipients、@copy_recipients或@blind_copy_recipients中的至少一个,否则sp_send_dbmail会返回错误。


1
没问题,我很乐意! ;) - gofr1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接