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 の [管理] > [データベースメール] を右クリックし、[データベース メールの構成] を選択します。
ウィザードが立ち上がるので、[次へ] をクリックして、[構成タスクの選択] 画面で一番上のオプションを選びます。
[次へ] ボタンをクリックします。 もし データベースメール機能が無効(デフォルト)の場合は、有効化するか聞いてきますので、有効化してください。
※ここで有効化しそこねた方は、以下のスクリプトで有効化してください。
USE master;
GO
EXEC sp_configure 'show advanced option', '1';
RECONFIGURE;
GO
EXEC sp_configure 'Database Mail XPs', 1;
RECONFIGURE;
[新しいプロファイル] 画面が表示されます。 プロファイル名を入力して、[追加] をクリックします。
データベースメールアカウント(SMTP の情報) を設定します。 今回は G メールの SMTP を使います。
下記の情報を入力して [OK] をクリックします。
アカウント名: お好きな名前
電子メールアドレス: 送信元になるメールアドレス。 Gmail の場合は [アカウント名]@gmail.com
表示名: メールに表示する名前(オプショナル)
サーバー名: メールの送信に使用する SMTP サーバー。 Gmail の場合は smtp.gmail.com
ポート番号: SMTP サーバーのポート番号。 Gmail の場合は 587
このサーバーはセキュリティで保護された接続 (SSL) を必要とする: Gmail の場合はオン
SMTP 認証 -: Gmail の場合は基本認証で、ユーザー名は [アカウント名]@gmail.comで Gmail のパスワードを入力する
次のような画面になるので [次へ] をクリックします。
[プロファイル セキュリティの管理] 画面では [パブリック] をチェックして[次へ] をクリックします。
[システム パラメーターの構成] 画面で必要に応じて設定を変更して[次へ] をクリックします。 今回はデフォルトのままにしておきます。
[ウィザードの完了] 画面で [完了] ボタンをクリックすると、設定が実行され設定完了です。
ステップ 2 : テスト E メールを送信しておく
データベースメールの設定がうまくいっていないと、メールが送信されないので、正しく設定できたか確認するために、テスト E メールを送信してみます。
SQL Server Management Studio の [管理] > [データベースメール] を右クリックし、 [テスト電子メールの送信] を選択します。
次のような画面が出てくるので、データベースプロファイルに先ほど作成したプロファイルを選択し、あて先のEメールアドレスを入力して、[テスト電子メールの送信]をクリックします。
メールの送信がキューに入り、送信したEメールの mailitem_id が表示されます。
送信先のメールを確認してみてください。 次のようなメールが届くはずです。
メールが届かなかった場合は、[データベースメール]を右クリックし、[データベースメール ログの表示]をクリックして、エラーの内容を確認してみてください。
ステップ 3 : SQL Server エージェントのオペレータを作成する
メールを受信するオペレータを作成します。
SQL Server Management Studio の [SQL Server エージェント] > [オペレーター]を右クリックし、[新しいオペレーター]を選択します。
オペレーター名と受信用のメールアドレスを入力し、[OK] をクリックします。
ステップ 4 : SQL Server エージェントにメールプロファイルを設定する
SQL Server Management Studio の [SQL Server エージェント] > [プロパティー]をクリックします。
[警告システム] ページで、[メール プロファイルを有効にする] をチェックし、ステップ1で作ったプロファイルを [メール プロファイル] に設定し、[OK] をクリックして画面を閉じます。
しなくても動いたのですが、マイクロソフトのサイトに書いてあったので一応[SQL Server エージェント] を再起動しておきます。
ステップ 5 : ジョブの通知を設定する
最後に、失敗したらメールを送りたいジョブに通知の設定を行います。
設定したいジョブを右クリックし [プロパティー] を選択します。
左側で [通知] を選択します。 [電子メール] にチェックを入れて、ステップ 4 で作成したオペレータを選択し、今回は失敗時にメールを送りたいので [ジョブ失敗時] を選択して [OK] をクリックします。
これで設定は完了です。 試しに設定したジョブを失敗するように変更し、手動で実行してみました。
ちゃんと、SQL Server エージェントからの E メールが届きました。