Amazon RDS for SQL Server でのデータベースメールの使用
データベースメールを使用して、SQL Server データベースインスタンスの Amazon RDS からユーザーに E メールメッセージを送信できます。メッセージには、ファイルとクエリ結果を含めることができます。データベースメールは、次のコンポーネントを含みます。
-
設定オブジェクトおよびセキュリティオブジェクト – これらのオブジェクトは 、プロファイルとアカウントを作成し、
msdb
データベースに保存されます。 -
メッセージングオブジェクト – これらのオブジェクトは、メッセージの送信に使用する sp_send_dbmail
ストアドプロシージャと、メッセージに関する情報を保持するデータ構造を含みます。それらは msdb
データベースに保存されます。 -
ログオブジェクトと監査オブジェクト – データベースメールは、
msdb
データベースと Microsoft Windows アプリケーションイベントログにログ情報を書き込みます。 -
データベースメール 実行可能ファイル –
DatabaseMail.exe
は、msdb
データベースのキューから読み取り、E メールメッセージを送信します。
RDS は、Web Edition、Standard Edition、および Enterprise Edition の SQL Server のすべてのバージョンで、データベースメールをサポートします。
制限事項
SQL Server DB インスタンスでのデータベースメールの使用には、次の制約事項が適用されます。
-
データベースメールは、SQL Server Express Edition ではサポートされていません。
-
データベースメールの設定パラメータの変更はサポートされていません。プリセット (デフォルト) の値を表示するには、sysmail_help_configure_sp
ストアドプロシージャを使用します。 -
添付ファイルは、完全にはサポートされていません。詳細については、「添付ファイルの使用」を参照してください。
-
添付ファイルの最大サイズは 1 MB です。
-
データベースメールは、マルチ AZ DB インスタンスで追加の設定が必要です。詳細については、「マルチ AZ 配置に関する考慮事項」を参照してください。
-
定義済み演算子に E メールメッセージを送信する SQL Server エージェントの設定はサポートされていません。
データベースメールの Amazon RDS ストアドプロシージャと関数
Microsoft が提供するストアドプロシージャ
プロシージャ/関数 | 説明 |
---|---|
rds_fn_sysmail_allitems | 送信メッセージ (他のユーザーの送信メッセージを含む) を表示します。 |
rds_fn_sysmail_event_log | イベント (他のユーザーの送信メッセージのイベントを含む) を表示します。 |
rds_fn_sysmail_mailattachments | 添付ファイル (他のユーザーの送信メッセージの添付ファイルも含む) を表示します。 |
rds_sysmail_control | メールキュー (DatabaseMail.exe プロセス) を開始および停止します。 |
rds_sysmail_delete_mailitems_sp | すべてのユーザーが送信した E メールメッセージをデータベースメール内部テーブルから削除します。 |
添付ファイルの使用
SQL Server の RDS からのデータベースメールメッセージでは、次の添付ファイル拡張子をサポートしていません。.ade、.adp、.apk、.appx、.appxbundle、.bat、.bak、.cab、.chm、.cmd、.com、.cpl、.dll、.dmg、.exe、.hta、.inf1、.ins、.isp、.iso、.jar、.job、.js、.jse、.ldf、.lib、.lnk、.mde、.mdf、.msc、.msi、.msix、.msixbundle、.msp、.mst、.nsh、.pif、.ps、.ps1、.psc1、.reg、.rgs、.scr、.sct、.shb、.shs、.svg、.sys、.u3p、.vb、.vbe、.vbs、.vbscript、.vxd、.ws、wsc、.wsf、および.wsh
データベースメールは、現在のユーザーの Microsoft Windows セキュリティコンテキストを使用して、ファイルへのアクセスを制御します。SQL Server 認証でログインするユーザーは、@file_attachments
ストアドプロシージャでsp_send_dbmail
パラメータを使用してファイルをアタッチすることはできません。Windows では、リモートコンピュータから別のリモートコンピュータに、SQL Server が認証情報を提供することはできません。したがって、データベースメールは、SQL Server を実行しているコンピュータ以外のコンピュータからコマンドを実行すると、ネットワーク共有からファイルをアタッチすることはできません。
ただし、SQL Server Agent ジョブを使用して、ファイルをアタッチすることができます。SQL Server Agent の詳細については、Microsoft ドキュメントの「Amazon RDS 用 SQL Server エージェントの使用」および「SQL Server Agent
マルチ AZ 配置に関する考慮事項
マルチ AZ DB インスタンスでデータベースメールを設定しても、設定はセカンダリに自動的には反映されません。マルチ AZ インスタンスをシングル AZ インスタンスに変換し、データベースメールを設定した後に、DB インスタンスをマルチ AZ に戻すことをお勧めします。次に、プライマリノードとセカンダリノードの両方に、データベースメールの設定があります。
データベースメールを設定したマルチ AZ インスタンスからリードレプリカを作成すると、レプリカはその設定を継承しますが、SMTP サーバーのパスワードは継承しません。パスワードを使用して、データベースメールアカウントを更新します。
SMTP (ポート 25) 制限の削除
デフォルトでは、AWS は RDS for SQL Server DB インスタンスの SMTP (ポート 25) でのアウトバウンドトラフィックをブロックします。これは、Elastic Network Interface 所有者のポリシーに基づいてスパムを防ぐために行われます。必要に応じて、この制限を削除できます。詳細については、「Amazon EC2 インスタンスまたは Lambda 関数のポート 25 の制限を解除するにはどうすればよいですか?