SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Azure の仮想マシン上に構築された SQL Server のデータベースメールで SendGrid を使用する

leave a comment

Configure Database Mail on SQL Server Azure VM using T-SQL で紹介されている内容ですが、SQL Server の データベースメール のメール送信元として、SendGrid を使用することができます。

日本語の情報が少ないかなと思ったので、軽くまとめてみたいと思います。

SendGrid は MarketPlace の「開発者向けサービス」→「SendGrid Email Derivery」から利用を開始することができます。
データベースメールで使用する程度の流量であれば Free プランの範囲に収まるかと。
必要な情報を入力して、SendGrid を使用できるようにします。

image

 

作成が終わると「Configuration」から、ユーザー名と SMTP サーバーを確認できますので、この情報を使用して、SQL Server でデータベースメールの設定を行います。

image

SendGrid 側の設定が確認できたら、SQL Server でデータベースメールを設定します。

-- データベースメールの有効化
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'Database Mail XPs', 1
RECONFIGURE

USE msdb
-- プロファイルの追加
EXEC msdb.dbo.sysmail_add_profile_sp 
@profile_name = 'SendGridProfile'

-- アカウントの作成
EXEC msdb.dbo.sysmail_add_account_sp  
@account_name = 'SendGridAccount',
@email_address = '<ポータルで確認したメールアドレス>',
@display_name = 'SendGrid Account',
@mailserver_name = 'smtp.sendgrid.net',
@username = '<ポータルで確認したメールアドレス>',
@password = '<SendGrid を追加した際のパスワード>',
@enable_ssl = 1,
@port = 587

-- アカウントとプロファイルの関連付け
EXEC msdb.dbo.sysmail_add_profileaccount_sp 
@profile_name=N'SendGridProfile', 
@account_name=N'SendGridAccount', 
@sequence_number=1

-- プロファイルセキュリティの設定
EXEC msdb.dbo.sysmail_add_principalprofile_sp 
@principal_name=N'guest', 
@profile_name=N'SendGridProfile', @is_default=1

-- テストメールの送信
EXEC sp_send_dbmail
@profile_name = 'SendGridProfile'
,@recipients  = '<送信先メールアドレス>'
,@body        = 'データベース メールから送信されたテスト電子メールです。'
,@subject     = 'データベース メールのテスト'

-- プロファイルの削除
EXEC msdb.dbo.sysmail_delete_profile_sp 
@profile_name=N'SendGridProfile', 
@force_delete=False

-- アカウントの削除
EXEC msdb.dbo.sysmail_delete_account_sp 
@account_name=N'SendGridAccount'

SQL Server Agent との連携等が必要でしたら データベース メールを使用するように SQL Server エージェント メールを構成する で。

Written by masayuki.ozawa

3月 20th, 2016 at 2:17 pm

Leave a Reply

*