基本上就是这样。
我已经配置了配置文件,邮件,SMTP服务器,用户名和密码。我正在使用sp_send_dbmail但偶尔我会更改 smtp、用户名、密码和端口,我在表格中都有它们,我只需要将这些参数传递给带有这些字段的"sp_send_dbmail",或者类似的工作方式。
SQL 使用动态电子邮件凭据发送邮件。
多谢
您必须在表中存储已配置的所有配置文件名称。
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
这就是我在发送邮件之前设法"更新"帐户凭据的方式