SQL Server 使用sp_send_dbmail向多个收件人发送电子邮件

htrmnn0y  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(405)

我尝试在SQL Server中使用sp_send_dbmail向多个收件人发送电子邮件。问题是我只收到列表中的一封电子邮件。
我还使用了一个游标来迭代将通过电子邮件发送的数据。
我使用光标内的下一个查询动态获取电子邮件:

@EmailRecipients NVARCHAR(MAX) = CAST((SELECT DISTINCT CorreoSubGerente  
                                       FROM #Temp 
                                       WHERE CorreoSubGerente = (SELECT DISTINCT CAST(CorreoSubGerente AS VARCHAR) FROM #Temp 
                            WHERE idSubGerente = @idSubGerente)
        -- and more conditions to make it work...
) AS NVARCHAR(MAX)

然后我执行如下的过程sp_send_dbmail

EXEC msdb.dbo.sp_send_dbmail
          @profile_name='profile_name' ,
          @body = @body,
          @body_format ='HTML',
          @recipients = @EmailRecipients, -- this is not working as expected
          @subject = @AsuntoCorreo

你们知道我怎么把邮件发给多个收件人吗?

r3i60tvu

r3i60tvu1#

@recipients是一个以分号分隔的列表(如@copy_recipients和@blind_copy_recipients。如果您使用的是支持STRING_AGG的版本,则可以使用该列表。否则,您可以使用类似于以下基于集合的逻辑,用分号连接电子邮件:

DECLARE @EmailRecipients NVARCHAR(MAX) = N'';
SELECT @EmailRecipients = @EmailRecipients + CorreoSubGerente  + ';'
FROM #Temp;

....或XML路径或填充方法来构建分隔列表(* 您将在StackOverflow上找到示例 *)。

相关问题