首页 > 数据库 > mysql教程 > 如何使用 T-SQL 自动从 SQL Server 发送电子邮件?

如何使用 T-SQL 自动从 SQL Server 发送电子邮件?

Susan Sarandon
发布: 2024-12-27 11:59:13
原创
343 人浏览过

How Can I Automate Email Sending from SQL Server Using T-SQL?

从 SQL Server 自动发送电子邮件

此问题寻求使用 Transact-SQL (T-SQL) 从 SQL Server 发送电子邮件的解决方案,特别是当收件人电子邮件地址存储在数据库表中时。目标是通过循环遍历表格并向每个地址发送电子邮件来自动化电子邮件发送过程。

解决方案步骤:

1.配置:

  • 使用配置数据库邮件向导创建配置文件和帐户。此向导允许您管理数据库邮件的帐户、配置文件和全局设置。
  • 通过运行以下命令设置 SQL Server 权限:

    sp_CONFIGURE 'show advanced', 1
    GO
    RECONFIGURE
    GO
    sp_CONFIGURE 'Database Mail XPs', 1
    GO
    RECONFIGURE
    GO
    登录后复制

2。发送电子邮件:

  • 要以编程方式发送电子邮件,请使用 sp_send_dbmail 存储过程:

    sp_send_dbmail @profile_name='yourprofilename',
    @recipients='[email protected]',
    @subject='Test message',
    @body='This is the body of the test message.
    Congrates Database Mail Received By you Successfully.'
    登录后复制

3.循环遍历表:

  • 要将电子邮件发送给表中存储的多个收件人,请使用循环:

    DECLARE @email_id NVARCHAR(450), @id BIGINT, @max_id BIGINT, @query NVARCHAR(1000)
    
    SELECT @id=MIN(id), @max_id=MAX(id) FROM [email_adresses]
    
    WHILE @id<=@max_id
    BEGIN
      SELECT @email_id=email_id 
      FROM [email_adresses]
    
      set @query='sp_send_dbmail @profile_name=''yourprofilename'',
                          @recipients='''+@email_id+''',
                          @subject=''Test message'',
                          @body=''This is the body of the test message.
                          Congrates Database Mail Received By you Successfully.'''
    
      EXEC @query
      SELECT @id=MIN(id) FROM [email_adresses] where id>@id
    
    END
    登录后复制

以上是如何使用 T-SQL 自动从 SQL Server 发送电子邮件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板