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

Mik*_*ike 10 sql-server email stored-procedures

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

存储过程代码

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'mail', 
    @recipients = @Mail1,
    @copy_recipients = @Mail2;@Mail3, 
    @body =@body ,
    @subject =@subject 
Run Code Online (Sandbox Code Playgroud)

gof*_*fr1 14

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

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 
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读MSDN文章

[ @recipients =] '收件人'

是以分号分隔的电子邮件地址列表,用于将邮件发送到.收件人列表的类型为varchar(max).尽管此参数是可选的,但必须至少指定@recipients,@ copy_recipients或@blind_copy_recipients中的一个,否则sp_send_dbmail将返回错误.

[ @copy_recipients =] 'copy_recipients'

是以分号分隔的电子邮件地址列表,以便将邮件复制到.复制收件人列表的类型为varchar(max).尽管此参数是可选的,但必须至少指定@recipients,@ copy_recipients或@blind_copy_recipients中的一个,否则sp_send_dbmail将返回错误.