【问题标题】:send mail SQL Server with Dynamic smtp使用动态 smtp 发送邮件 SQL Server
【发布时间】:2016-02-17 15:23:50
【问题描述】:

基本上就是这样。

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

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

非常感谢

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这样我可以在配置文件之间进行选择,但问题是凭据、电子邮件用户名、密码和 smtpserver
    • 只要您使用正确的凭据在 DBMail 中设置了配置文件,您所需要的只是配置文件名称。
    • 凭证每周都会变化,新的凭证会在一个表中
    【解决方案2】:

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

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 2010-12-06
      • 2017-06-26
      • 1970-01-01
      相关资源
      最近更新 更多