ホームページ >データベース >mysql チュートリアル >T-SQL を使用して SQL Server からの電子メール送信を自動化するにはどうすればよいですか?

T-SQL を使用して SQL Server からの電子メール送信を自動化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 11:59:13393ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。