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 エージェント メールを構成する で。

Share

Written by Masayuki.Ozawa

3月 20th, 2016 at 2:17 pm

Leave a Reply