Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用动态smtp向SQL Server发送邮件_Sql_Sql Server_Sendmail_Sp Send Dbmail_Dbmail - Fatal编程技术网

使用动态smtp向SQL Server发送邮件

使用动态smtp向SQL Server发送邮件,sql,sql-server,sendmail,sp-send-dbmail,dbmail,Sql,Sql Server,Sendmail,Sp Send Dbmail,Dbmail,基本上就是这样 我已经配置了配置文件、邮件、smtp服务器、用户名和密码。 我使用的是sp\u send\u dbmail,但偶尔我会更改smtp、用户名、密码和端口,我将它们放在一个表中,我只需要通过这些字段将参数传递给“sp\u send\u dbmail”,或者类似的东西 SQL使用动态电子邮件凭据发送邮件 非常感谢您必须将配置的所有配置文件名称存储在表中 declare @profilename varchar(50); set @profilename = (select profi

基本上就是这样

我已经配置了配置文件、邮件、smtp服务器、用户名和密码。 我使用的是sp\u send\u dbmail,但偶尔我会更改smtp、用户名、密码和端口,我将它们放在一个表中,我只需要通过这些字段将参数传递给“sp\u send\u 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' ;

您必须存储表中配置的所有配置文件名称

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

这就是我如何在发送邮件之前“更新”帐户凭据的方法

如果有人需要,首先我删除配置文件设置(或本例中的帐户),然后我将使用此

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

这就是我如何在发送邮件之前“更新”帐户凭据的方法,我可以在配置文件之间进行选择,但问题是凭据、电子邮件用户名、密码和SMTPServers,只要您在DBMail中使用正确的凭据设置了配置文件,您只需要配置文件名。凭据每周都会更改,新凭据将放在一个表格中,我可以在配置文件之间进行选择,但问题是凭据、电子邮件用户名、密码和SMTPServers,只要您在DBMail中使用正确的凭据设置了配置文件,您只需要配置文件名。凭据将每周更改,新凭据将位于表中