SQL Server 入門 SQL Server 入門

ホーム > SQL Server&T-SQLに関するコラム > SQL Server エージェントのジョブ失敗時に E メールを送信する (Gmail の SMTP 使用)

SQL Server エージェントのジョブ失敗時に E メールを送信する (Gmail の SMTP 使用)

SQL Server エージェントのジョブ失敗時に E メールを送信する

以前 「 SQL Server から E メールを送信する 」 では、sp_send_dbmail というデータベースメール・ストアドプロシジャーを使って、 E メールを送信する方法をご紹介しました。

ここでは、SQL Server エージェントのジョブが失敗した時に E メールを送信する方法をご紹介します。


ステップ 1 : Database Mail (データベース・メール)を設定する

SQL Server から E メールを送信する前に、 データベースメールを設定しておく必要があります。

SQL Server Management Studio の [管理] > [データベースメール] を右クリックし、[データベース メールの構成] を選択します。

Management - Database Mail メニュー


ウィザードが立ち上がるので、[次へ] をクリックして、[構成タスクの選択] 画面で一番上のオプションを選びます。

[次へ] ボタンをクリックします。 もし データベースメール機能が無効(デフォルト)の場合は、有効化するか聞いてきますので、有効化してください。

Database Mail の設定

※ここで有効化しそこねた方は、以下のスクリプトで有効化してください。
USE master;
GO
EXEC sp_configure 'show advanced option', '1';
RECONFIGURE;
GO
EXEC sp_configure 'Database Mail XPs', 1;
RECONFIGURE;


[新しいプロファイル] 画面が表示されます。 プロファイル名を入力して、[追加] をクリックします。

Database Mail の設定

データベースメールアカウント(SMTP の情報) を設定します。 今回は G メールの SMTP を使います。

下記の情報を入力して [OK] をクリックします。

Database Mail の設定 4

アカウント名: お好きな名前
電子メールアドレス: 送信元になるメールアドレス。 Gmail の場合は [アカウント名]@gmail.com
表示名: メールに表示する名前(オプショナル)
サーバー名: メールの送信に使用する SMTP サーバー。 Gmail の場合は smtp.gmail.com
ポート番号: SMTP サーバーのポート番号。 Gmail の場合は 587
このサーバーはセキュリティで保護された接続 (SSL) を必要とする: Gmail の場合はオン
SMTP 認証 -: Gmail の場合は基本認証で、ユーザー名は [アカウント名]@gmail.comで Gmail のパスワードを入力する


次のような画面になるので [次へ] をクリックします。

Database Mail の設定 5


[プロファイル セキュリティの管理] 画面では [パブリック] をチェックして[次へ] をクリックします。

Database Mail の設定 6


[システム パラメーターの構成] 画面で必要に応じて設定を変更して[次へ] をクリックします。 今回はデフォルトのままにしておきます。

Database Mail の設定 7


[ウィザードの完了] 画面で [完了] ボタンをクリックすると、設定が実行され設定完了です。

Database Mail の設定 8

Database Mail の設定 9


ステップ 2 : テスト E メールを送信しておく

データベースメールの設定がうまくいっていないと、メールが送信されないので、正しく設定できたか確認するために、テスト E メールを送信してみます。

SQL Server Management Studio の [管理] > [データベースメール] を右クリックし、 [テスト電子メールの送信] を選択します。

Database Mail の設定 10


次のような画面が出てくるので、データベースプロファイルに先ほど作成したプロファイルを選択し、あて先のEメールアドレスを入力して、[テスト電子メールの送信]をクリックします。

Database Mail の設定 11

メールの送信がキューに入り、送信したEメールの mailitem_id が表示されます。

Database Mail の設定 12


送信先のメールを確認してみてください。 次のようなメールが届くはずです。

Database Mail の設定 13


メールが届かなかった場合は、[データベースメール]を右クリックし、[データベースメール ログの表示]をクリックして、エラーの内容を確認してみてください。

Database Mail の設定 14


ステップ 3 : SQL Server エージェントのオペレータを作成する

メールを受信するオペレータを作成します。

SQL Server Management Studio の [SQL Server エージェント] > [オペレーター]を右クリックし、[新しいオペレーター]を選択します。

Database Mail の設定 15

オペレーター名と受信用のメールアドレスを入力し、[OK] をクリックします。

Database Mail の設定 16


ステップ 4 : SQL Server エージェントにメールプロファイルを設定する

SQL Server Management Studio の [SQL Server エージェント] > [プロパティー]をクリックします。

Database Mail の設定 17


[警告システム] ページで、[メール プロファイルを有効にする] をチェックし、ステップ1で作ったプロファイルを [メール プロファイル] に設定し、[OK] をクリックして画面を閉じます。

Database Mail の設定 18


しなくても動いたのですが、マイクロソフトのサイトに書いてあったので一応[SQL Server エージェント] を再起動しておきます。

Database Mail の設定 19


ステップ 5 : ジョブの通知を設定する

最後に、失敗したらメールを送りたいジョブに通知の設定を行います。

設定したいジョブを右クリックし [プロパティー] を選択します。

Database Mail の設定 20


左側で [通知] を選択します。 [電子メール] にチェックを入れて、ステップ 4 で作成したオペレータを選択し、今回は失敗時にメールを送りたいので [ジョブ失敗時] を選択して [OK] をクリックします。

Database Mail の設定 21


これで設定は完了です。 試しに設定したジョブを失敗するように変更し、手動で実行してみました。

Database Mail の設定 22

ちゃんと、SQL Server エージェントからの E メールが届きました。

Database Mail の設定 23

SQL Server 関連の人気書籍
ホーム > SQL Server&T-SQLに関するコラム > SQL Server エージェントのジョブ失敗時に E メールを送信する (Gmail の SMTP 使用)