Amazon RDS for SQL Server でのデータベースメールの使用 - Amazon Relational Database Service

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 は、次の表に示すストアドプロシージャおよびデータベースメールの機能を提供します。

プロシージャ/関数 説明
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 の制限を解除するにはどうすればよいですか?」を参照してください。