適用対象:SQL Server
Azure SQL Managed Instance
この記事では、データベース メール構成ウィザードを使用してデータベース メールを有効化して構成する方法、およびテンプレートを使用してデータベース メール構成スクリプトを作成する方法について説明します。
DatabaseMail XPs サーバー構成オプションを使用して、このサーバーでデータベース メールを有効にします。 詳細については、「 データベース メール XP (サーバー構成オプション)」を参照してください。
[前提条件]
- データベース メールを構成するには、 sysadmin 固定サーバー ロールのメンバーである必要があります。
- データベース メールを送信するには、 データベースの
msdbデータベース ロールのメンバーである必要があります。
- データベース メールを送信するには、 データベースの
-
msdbデータベースで Service Broker を有効にする必要があります。- 任意のデータベースで SQL Server Service Broker を有効にするには、データベース ロックが必要です。 手順と詳細については、「 msdb で Service Broker が有効になっていることを確認する」を参照してください。
- 以下の手順では、SQL Server Management Studio (SSMS) を使います。 aka.ms/ssms で最新バージョンの SSMS をダウンロードします。
データベース メール構成ウィザードを使用してデータベース メールを構成する
オブジェクト エクスプローラーで、データベース メールを構成するインスタンスのノードを展開します。
[管理] ノードを展開します。
[データベース メール]を右クリックして、 [データベース メールの構成]を選択します。 データベース メール構成ウィザードが起動します。
開始するには、[ようこそ] ページで [次へ ] を選択します。
[ 構成タスクの選択] ページを使用して、 次のタスクを実行して [データベース メールのセットアップ] を選択します。...このオプションには、他の 3 つのオプションがすべて含まれます。
既存のプロファイルまたはアカウント、プロファイル セキュリティ、またはシステム パラメーターを管理する場合は、適切なオプションを選択します。
注
データベース メール機能が有効になっていない場合は、「 データベース メール機能は使用できません」というメッセージが表示されます。この機能を有効にしますか?
- まず、 msdb に対して Service Broker が有効になっていることを確認します。
- 次に、[はい] を選択して、 システム ストアド プロシージャの
sp_configureを使用するデータベース メールを有効にします。
[ 新しいプロファイル] ページで、新しいデータベース メール プロファイルを作成します。 " データベース メール プロファイル " は、データベース メール アカウントのコレクションです。
プロファイルは、電子メール サーバーが到達不能になった場合に、代わりのデータベース メール アカウントを提供することにより、信頼性を向上させます。 少なくとも 1 つのデータベース メール アカウントが必要です。
プロファイルのデータベース アカウントの優先順位設定の詳細については、「 データベース メール プロファイルの作成」を参照してください。
[上へ移動] ボタンと [下へ移動] ボタンを使用して、データベース メール アカウントを使用する順序を変更できます。 順序は、シーケンス番号と呼ばれる値によって決まります。 [上へ移動] ではシーケンス番号が小さくなり、 [下へ移動] ではシーケンス番号が大きくなります。 シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。 新しい電子メール メッセージの場合、データベース メールでは、一番小さなシーケンス番号の付いたアカウントから処理が開始されます。 そのアカウントが失敗すると、データベース メールでは、このアカウントよりも大きいシーケンス番号を持つアカウントに処理が移ります。このように、データベース メールによってメッセージが正常に送信されるか、一番大きなシーケンス番号のアカウントが失敗するまで順に処理されます。 一番大きいシーケンス番号のアカウントで失敗した場合は、データベース メールの AccountRetryDelay パラメーターで設定された時間が経過するまで、メール送信の試行が一時停止されます。その後、一番小さいシーケンス番号のアカウントからメール送信が再試行されます。 データベース メールの AccountRetryAttempts パラメーターを設定し、外部メール プロセスで指定のプロファイルの各アカウントを使用して、電子メール メッセージを送信する場合の試行回数を構成します。 データベース メール構成ウィザードの [システム パラメーターの構成] ページで、 AccountRetryDelay パラメーターおよび AccountRetryAttempts パラメーターを構成できます。
新しい プロファイルのプロファイル名 と 説明 (省略可能) を指定します。 プロファイル名は、使用するサーバーまたは電子メール アカウントの名前とは異なります。
注
Azure SQL Managed Instance で SQL エージェント ジョブを使用して電子メールを送信するには、SQL Server エージェントで使用できるデータベース メール プロファイルは 1 つだけであり、
AzureManagedInstance_dbmail_profileと呼ばれる必要があります。 詳細およびサンプル スクリプトについては、Azure SQL Managed Instance の SQL Agent ジョブの通知に関するページを参照してください。SMTP アカウントの表で、既存のアカウントを選択するか、[新しい SMTP アカウントに追加] を選択します。 このガイドでは、引き続き新しい SMTP アカウントを作成します。
[ プロファイルにアカウントを追加 ] ポップアップで、[ 新しいアカウント...] を選択します。
[ 新しいデータベース メール アカウント] ポップアップで、SMTP サーバーに電子メールを送信するための新しいデータベース メール アカウントを作成します。
データベース メール アカウントには、SQL Server から SMTP サーバーに電子メールを送信するときに使用される情報が含まれています。 各アカウントに、1 つの電子メール サーバーの情報が含まれます。
データベース メール アカウントは、データベース メールにのみ使用されます。 Database Mail アカウントは、SQL Server アカウントや Microsoft Windows アカウントには対応していません。 データベース メールは、SQL Server の資格情報、または指定したその他の資格情報を使用して送信できます。または、匿名で送信することもできます。 基本認証を使用する場合、データベース メール アカウントのユーザー名とパスワードは、電子メール サーバーとの認証だけに使用されます。 アカウントは、SQL Server ユーザーもしくは SQL Server が動作しているコンピューターのユーザーに対応している必要はありません。
アカウント名、説明 (省略可能)、および電子メール アドレスを指定します。
アカウントからメールを送信するための電子メールアドレス。表示名 (省略可能) を指定します。この名前は、このアカウントから送信されたメッセージに表示される名前になります。 たとえば、SQL Server エージェントのアカウントは、電子メールのメッセージに "SQL Server Agent Automated Mailer" という名前を表示できます。
表示名に円記号 (
\) が含まれている場合は、二重円記号 (\\) を使用してエスケープする必要があります。 たとえば、SERVER\SQLを表示するには、[SERVER\\SQLフィールドに「」と入力します。 単一のバックスラッシュはエスケープ文字として解釈され、送信されたメールには表示されません。このアカウントから送信された 電子メール メッセージ への返信に使用する返信電子メール (省略可能) を指定します。
アカウントが電子メールの送信に使用する SMTP サーバーのサーバー 名 または IP アドレスを指定します。 通常、これは
smtp.<your_company>.comまたはsmtp.<cloud service provider>.netのような形式です。 詳細については、電子メールの管理者に問い合わせてください。電子メールを正常に送信するには、サーバー名を SMTP 許可リストに追加する必要がある場合があります。
このアカウントの SMTP サーバーの ポート番号 を指定します。 ほとんどの SMTP サーバーでは、SSL 接続にポート 25 または 587、またはポート 465 が使用されます。
[ このサーバーには、Secure Sockets Layer を使用して暗号化された通信を有効にするために、セキュリティで保護された接続 (SSL) が必要です] オプションを選択します。
[ SMTP 認証] にはオプションがあります。
[データベース エンジン サービスの資格情報を使用する Windows 認証]
SQL Server データベース エンジン サービスに対して構成されている資格情報を使用して、SMTP サーバーとの接続を確立します。 サービス資格情報によるメール サーバーへの認証は、NTLM 認証を介して実行されます。これは、Exchange オンプレミスでのみ使用できるオプションです。 詳細については、「Exchange での認証と EWS」を参照してください。
基本認証
SMTP サーバーで必要なユーザー名およびパスワードを指定します。
[匿名認証]
メールはログイン資格情報なしで SMTP サーバーに送信されます。 このオプションは、SMTP サーバーで認証が必要ない場合に使用します。
[ OK]、[ OK]、[ 次へ ] の順に選択して続行します。
[ プロファイル セキュリティの管理] で、パブリックプロファイルとプライベートプロファイルのセキュリティを構成します。
プロファイルには、パブリックとプライベートの 2 種類があります。 プライベート プロファイルは、特定のユーザーまたはロールのみがアクセスできます。 パブリック プロファイルを使用すると、インスタンスのメール ホスト データベース (
msdb) にアクセスできるユーザーまたはロールは、そのプロファイルを使用して電子メールを送信できます。プロファイルを既定のプロファイルにすることもできます。 それにより、ユーザーまたはロールは、プロファイルを明示的に指定しなくても、既定のプロファイルを使用して電子メールを送信できます。 電子メール メッセージを送信するユーザーまたはロールに既定のプライベート プロファイルがある場合、データベース メールではそのプロファイルが使用されます。 ユーザーまたはロールに既定のプライベート プロファイルがない場合、
sp_send_dbmailでは、msdbデータベースの既定のパブリック プロファイルが使用されます。 ユーザーまたはロールに既定のプライベート プロファイルがなく、データベースに既定のパブリック プロファイルもない場合、sp_send_dbmailはエラーを返します。 既定のプロファイルとして指定できるプロファイルは 1 つだけです。- [ パブリック プロファイル ] タブでは、このインスタンスでパブリックにするプロファイルを選択できます。また、いずれかのプロファイルを 既定のプロファイルにする必要があるかどうかを選択できます。
注
Azure SQL Managed Instance で SQL エージェント ジョブを使用して電子メールを送信するには、SQL Server エージェントで使用できるデータベース メール プロファイルは 1 つだけであり、
AzureManagedInstance_dbmail_profileと呼ばれる必要があります。 詳細およびサンプル スクリプトについては、Azure SQL Managed Instance の SQL Agent ジョブの通知に関するページを参照してください。[ プライベート プロファイル ] タブで、まずドロップダウン リストからユーザーを選択します。 プライベート プロファイルは、特定のユーザーまたはロールのみがアクセスできます。 このインスタンスで使用できるプロファイルをユーザーに選択し、いずれかのプロファイルを既定のプロファイルにする必要があるかどうかを選択 します。
[次へ] を選択して続行します。
[ システム パラメーターの構成] ページでは、システム パラメーターを表示または変更できます。 パラメーターを選択すると、簡単な説明が情報ペインに表示されます。
[アカウントの再試行回数]
指定したプロファイル内の各アカウントを使用して、外部メール処理が電子メール メッセージの送信を試行する回数。[アカウントの再試行間隔 (秒)]
外部メール プロセスが、プロファイルのすべてのアカウントを使用してメッセージ配信を試行した後で、再度すべてのアカウントによって試行するまで待機する時間 (秒数)。[ファイルの最大ファイル サイズ (バイト数)]
添付ファイルの最大サイズ (バイト単位)。[禁止する添付ファイルの拡張子]
電子メールへの添付ファイルとして送信できない拡張子のコンマ区切りのリスト。 参照ボタン [...]をクリックして新たに拡張子を追加できます。[データベース メール実行可能ファイルの最短有効期間 (秒)]
外部メール処理がアクティブな状態にとどまる最小時間 (秒単位)。 電子メールがデータベース メール キューに入っている間は、プロセスはアクティブな状態のままです。 このパラメーターは、処理するメッセージがない場合にプロセスがアクティブな状態を維持する秒数を指定します。ログ記録レベル
データベース メール ログに記録されるメッセージを指定します。 次のいずれかの値になります。[標準] - エラーのみを記録します。
拡張 (既定) - エラー、警告、および情報メッセージをログに記録します
[詳細] - エラー、警告、情報メッセージ、成功メッセージ、および追加情報メッセージを記録します。 詳細ログ記録はトラブルシューティングに使用します。
[すべてリセット]
このオプションを選択すると、ページ上の値が既定値にリセットされます。
既定のシステム パラメーターをお勧めします。 [次へ] を選択して続行します。
[ 完了] を 選択して、データベース メールの新しい構成を確認します。 ウィザードの進行状況を確認し、[ 閉じる] を選択します。
オブジェクト エクスプローラーに戻り、テスト電子メールを送信して構成を確認します。 テスト メールの送信に関する簡単なチュートリアルは、「データベース メールでテスト メールを送信する」を参照してください。
このページを使用してテスト電子メールを送信できるのは、固定サーバー ロール sysadmin のメンバーのみです。
データベース メールを使用して SQL エージェント ジョブから電子メールを送信するには、引き続き SQL Server エージェントを構成 し、 データベース メールを使用するように SQL Server エージェント メールを構成します。