使用Dynamic smtp发送邮件SQL Server

时间:2016-02-17 15:23:51

标签: sql sql-server sendmail sp-send-dbmail dbmail

基本上就是这样。

我已配置个人资料,邮件,smtp服务器,用户名和密码。 我正在使用 sp_send_dbmail ,但偶尔我会更改smtp,用户名,密码和端口,我在表中有这个,我只需要传递参数到“sp_send_dbmail “与这些字段,或类似的东西。

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

非常感谢

2 个答案:

答案 0 :(得分:2)

您必须存储在表格中配置的所有个人资料名称。

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' ;

答案 1 :(得分:0)

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

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

这就是我在发送邮件之前管理“更新”帐户凭据的方式