使用动态 smtp 发送邮件 SQL 服务器

send mail SQL Server with Dynamic smtp

基本上就是这样。

我已经配置了配置文件、邮件、smtp 服务器、用户名和密码。 我正在使用 sp_send_dbmail 但偶尔我会更改 smtp、用户名、密码和端口,我在 table 中有这些,我只需要使用这些字段将参数传递给 "sp_send_dbmail",或者类似的东西。

SQL 使用动态电子邮件凭据发送邮件。

非常感谢

您必须在 table 中存储您配置的所有配置文件名称。

declare @profilename varchar(50);

set @profilename = (select profilename from your_table where smpt_server = 'smtp_server_value');

EXEC msdb.dbo.sp_send_dbmail
@recipients = 'Test@xyz.com'
, @subject = 'Subject'
, @body = 'email_test'
, @profile_name = @profilename
, @body_format = 'HTML' ;

如果有人需要它,首先我会删除配置文件设置(在这种情况下是帐户),然后我会再次创建它,使用这个...

EXECUTE msdb.dbo.sysmail_delete_account_sp
EXECUTE msdb.dbo.sysmail_delete_profile_sp

EXECUTE msdb.dbo.sysmail_add_account_sp
EXECUTE msdb.dbo.sysmail_add_profile_sp
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp

这就是我如何在发送邮件之前设法"Update" 帐户凭据