

# Amazon RDS for SQL Server でのデータベースメールの使用
<a name="SQLServer.DBMail"></a>

データベースメールを使用して、SQL Server データベースインスタンスの Amazon RDS からユーザーに E メールメッセージを送信できます。メッセージには、ファイルとクエリ結果を含めることができます。データベースメールは、次のコンポーネントを含みます。
+ **設定オブジェクトおよびセキュリティオブジェクト** – これらのオブジェクトは 、プロファイルとアカウントを作成し、`msdb` データベースに保存されます。
+ **メッセージングオブジェクト** – これらのオブジェクトは、メッセージの送信に使用する [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) ストアドプロシージャと、メッセージに関する情報を保持するデータ構造を含みます。それらは `msdb` データベースに保存されます。
+ **ログオブジェクトと監査オブジェクト** – データベースメールは、`msdb` データベースと Microsoft Windows アプリケーションイベントログにログ情報を書き込みます。
+ **データベースメール 実行可能ファイル** – `DatabaseMail.exe` は、`msdb` データベースのキューから読み取り、E メールメッセージを送信します。

RDS は、Web Edition、Standard Edition、および Enterprise Edition の SQL Server のすべてのバージョンで、データベースメールをサポートします。

## 制約事項
<a name="SQLServer.DBMail.Limitations"></a>

SQL Server DB インスタンスでのデータベースメールの使用には、次の制約事項が適用されます。
+ データベースメールは、SQL Server Express Edition ではサポートされていません。
+ データベースメールの設定パラメータの変更はサポートされていません。プリセット (デフォルト) の値を表示するには、[sysmail\$1help\$1configure\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-configure-sp-transact-sql) ストアドプロシージャを使用します。
+ 添付ファイルは、完全にはサポートされていません。詳細については、「[添付ファイルの使用](#SQLServer.DBMail.Files)」を参照してください。
+ 添付ファイルの最大サイズは 1 MB です。
+ データベースメールは、マルチ AZ DB インスタンスで追加の設定が必要です。詳細については、「[マルチ AZ 配置に関する考慮事項](#SQLServer.DBMail.MAZ)」を参照してください。
+ 定義済み演算子に E メールメッセージを送信する SQL Server エージェントの設定はサポートされていません。

# データベースメールの有効化
<a name="SQLServer.DBMail.Enable"></a>

DB インスタンスでデータベースメールを有効にするには、次の手順に従います。

1. 新しいパラメータグループを作成します。

1. パラメータグループを変更して、`database mail xps` パラメータを 1 に設定します。

1. パラメータグループを DB インスタンスに関連付けます。

## データベースメールパラメータグループの作成
<a name="DBMail.CreateParamGroup"></a>

DB インスタンスの SQL Server のエディションとバージョンに対応する `database mail xps` パラメータのパラメータグループを作成します。

**注記**  
既存のパラメータグループを変更することもできます。「[データベースメールを有効にするパラメータの変更](#DBMail.ModifyParamGroup)」 の手順に従います。

### コンソール
<a name="DBMail.CreateParamGroup.Console"></a>

次の例では、SQL Server Standard Edition 2016 のパラメータグループを作成します。

**パラメータグループを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[パラメータグループ]** を選択します。

1. [**Create parameter group**] を選択します。

1. [**パラメータグループの作成**] ペインで、次の操作を行います。

   1. [**パラメータグループファミリー**] で、[**sqlserver-se-13.0**] を選択します。

   1. [**グループ名**] に、パラメータグループの識別子 (**dbmail-sqlserver-se-13** など) を入力します。

   1. [**説明**] に「**Database Mail XPs**」と入力します。

1. **[作成]** を選択します。

### CLI
<a name="DBMail.CreateParamGroup.CLI"></a>

次の例では、SQL Server Standard Edition 2016 のパラメータグループを作成します。

**パラメータグループを作成するには**
+ 以下のいずれかのコマンドを使用します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Database Mail XPs"
  ```

  Windows の場合:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Database Mail XPs"
  ```

## データベースメールを有効にするパラメータの変更
<a name="DBMail.ModifyParamGroup"></a>

DB インスタンスの SQL Server のエディションとバージョンに対応するパラメータグループの `database mail xps` パラメータを変更します。

データベースメールを有効にするには、`database mail xps` パラメータを 1 に設定します。

### コンソール
<a name="DBMail.ModifyParamGroup.Console"></a>

次の例では、SQL Server Standard Edition 2016 用に作成したパラメータグループを変更します。

**パラメータグループを変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**パラメータグループ**] を選択します。

1. [**dbmail-sqlserver-se-13**] などのパラメータグループを選択します。

1. [**パラメータ**] で、パラメータのリストを **mail** でフィルタ処理します。

1. [**データベースメール xps**] を選択します。

1. [**Edit parameters**] を選択します。

1. **1** と入力します。

1. **[Save changes]** (変更の保存) をクリックします。

### CLI
<a name="DBMail.ModifyParamGroup.CLI"></a>

次の例では、SQL Server Standard Edition 2016 用に作成したパラメータグループを変更します。

**パラメータグループを変更するには**
+ 以下のいずれかのコマンドを使用します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

  Windows の場合:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

## パラメータグループと DB インスタンスの関連付け
<a name="DBMail.AssocParamGroup"></a>

AWS マネジメントコンソール または AWS CLI を使用して、データベースメールパラメータグループを DB インスタンスに関連付けることができます。

### コンソール
<a name="DBMail.AssocParamGroup.Console"></a>

データベースメールパラメータグループを新規または既存の DB インスタンスに関連付けることができます。
+ 新しい DB インスタンスの場合は、インスタンスを起動するときにそれを関連付けます。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ 既存の DB インスタンスの場合は、インスタンスを変更することでそれを関連付けます。詳しくは、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### CLI
<a name="DBMail.AssocParamGroup.CLI"></a>

データベースメールパラメータグループを新規または既存の DB インスタンスに関連付けることができます。

**データベースメールパラメータグループを使用して DB インスタンスを作成するには**
+ パラメータグループの作成時に使用したものと同じ DB エンジンのタイプとメジャーバージョンを指定します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li
      --db-parameter-group-name dbmail-sqlserver-se-13
  ```

  Windows の場合:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --db-parameter-group-name dbmail-sqlserver-se-13
  ```

**DB インスタンスを変更し、データベースメールパラメータグループを関連付けるには**
+ 以下のいずれかのコマンドを使用します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --apply-immediately
  ```

  Windows の場合:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --apply-immediately
  ```

# データベースメールの設定
<a name="SQLServer.DBMail.Configure"></a>

データベースメールを設定するには、次のタスクを実行します。

1. データベースメールプロファイルを作成します。

1. データベースメールアカウントを作成します。

1. データベースメールアカウントをデータベースメールプロファイルに追加します。

1. データベースメールプロファイルにユーザーを追加します。

**注記**  
データベースメールを設定するには、`execute` データベースのストアドプロシージャに `msdb` アクセス権限があることを確認します。

## データベースメールプロファイルの作成
<a name="SQLServer.DBMail.Configure.Profile"></a>

データベースメールプロファイルを作成するには、[sysmail\$1add\$1profile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql) ストアドプロシージャを使用します。次の例では、`Notifications` という名前のプロファイルを作成します。

**プロファイルを作成するには**
+ 次の SQL 文を使用します。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
      @profile_name         = 'Notifications',  
      @description          = 'Profile used for sending outgoing notifications using Amazon SES.';
  GO
  ```

## データベースメールアカウントの作成
<a name="SQLServer.DBMail.Configure.Account"></a>

データベースメールアカウントを作成するには、[sysmail\$1add\$1account\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql) ストアドプロシージャを使用します。次の例では、Amazon Simple Email Service を使用して、プライベート VPC の RDS for SQL Server DB インスタンスに `SES` という名前のアカウントを作成します。

Amazon SES を使用するには、以下のパラメータが必要です。
+ `@email_address` – Amazon SES 検証済みの アイデンティティ。詳細については、[Verified identities in Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html) を参照してください。
+ `@mailserver_name` – Amazon SES SMTP エンドポイント。詳細については、[Amazon SES SMTP エンドポイントへの接続](https://docs.aws.amazon.com/ses/latest/dg/smtp-connect.html)を参照してください。
+ `@username` – Amazon SES SMTP ユーザー名。詳細については、[Amazon SES SMTP 認証情報の取得](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html)を参照してください。

  AWS Identity and Access Management ユーザー名を使用しないでください。
+ `@password` – Amazon SES SMTP パスワード。詳細については、[Amazon SES SMTP 認証情報の取得](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html)を参照してください。

**アカウントを作成するには**
+ 次の SQL 文を使用します。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_account_sp
      @account_name        = 'SES',
      @description         = 'Mail account for sending outgoing notifications.',
      @email_address       = 'nobody@example.com',
      @display_name        = 'Automated Mailer',
      @mailserver_name     = 'vpce-0a1b2c3d4e5f-01234567.email-smtp.us-west-2.vpce.amazonaws.com',
      @port                = 587,
      @enable_ssl          = 1,
      @username            = 'Smtp_Username',
      @password            = 'Smtp_Password';
  GO
  ```
**注記**  
セキュリティのベストプラクティスとして、ここに表示されているプロンプト以外の認証情報を指定してください。

## データベースメールアカウントのデータベースメールプロファイルへの追加
<a name="SQLServer.DBMail.Configure.AddAccount"></a>

データベースメールアカウントをデータベースメールプロファイルに追加するには、[sysmail\$1add\$1profileaccount\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql) ストアドプロシージャを使用します。次の例では、`SES` アカウントを `Notifications` プロファイルに追加します。

**プロファイルにアカウントを追加するには**
+ 次の SQL 文を使用します。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name        = 'Notifications',
      @account_name        = 'SES',
      @sequence_number     = 1;
  GO
  ```

## データベースメールプロファイルへのユーザーの追加
<a name="SQLServer.DBMail.Configure.AddUser"></a>

`msdb` データベースプリンシパルにデータベースメールプロファイルを使用するアクセス権限を付与するには、[sysmail\$1add\$1principalprofile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql) ストアドプロシージャを使用します。*プリンシパル* は、SQL Server リソースをリクエストできるエンティティです。データベースプリンシパルは、SQL Server 認証ユーザー、Windows 認証ユーザー、または Windows 認証グループにマッピングする必要があります。

次の例では、`Notifications` プロファイルへのパブリックアクセスを許可します。

**プロファイルにユーザーを追加するには**
+ 次の SQL 文を使用します。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
      @profile_name       = 'Notifications',  
      @principal_name     = 'public',  
      @is_default         = 1;
  GO
  ```

## データベースメールの Amazon RDS ストアドプロシージャと関数
<a name="SQLServer.DBMail.StoredProc"></a>

Microsoft が提供する[ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/database-mail-stored-procedures-transact-sql)により、データベースメールの使用 (アカウントやプロファイルの作成、一覧表示、更新、削除) が可能です。加えて、RDS は、次の表に示すストアドプロシージャおよびデータベースメールの機能を提供します。


| プロシージャ/関数 | 説明 | 
| --- | --- | 
| rds\$1fn\$1sysmail\$1allitems | 送信メッセージ (他のユーザーの送信メッセージを含む) を表示します。 | 
| rds\$1fn\$1sysmail\$1event\$1log | イベント (他のユーザーの送信メッセージのイベントを含む) を表示します。 | 
| rds\$1fn\$1sysmail\$1mailattachments | 添付ファイル (他のユーザーの送信メッセージの添付ファイルも含む) を表示します。 | 
| rds\$1sysmail\$1control | メールキュー (DatabaseMail.exe プロセス) を開始および停止します。 | 
| rds\$1sysmail\$1delete\$1mailitems\$1sp | すべてのユーザーが送信した E メールメッセージをデータベースメール内部テーブルから削除します。 | 

# データベースメールを使用した E メールメッセージの送信
<a name="SQLServer.DBMail.Send"></a>

データベースメールを使用して E メールメッセージを送信するには、[sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) ストアドプロシージャを使用します。

## Usage
<a name="SQLServer.DBMail.Send.Usage"></a>

```
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'profile_name',
@recipients = 'recipient1@example.com[; recipient2; ... recipientn]',
@subject = 'subject',
@body = 'message_body',
[@body_format = 'HTML'],
[@file_attachments = 'file_path1; file_path2; ... file_pathn'],
[@query = 'SQL_query'],
[@attach_query_result_as_file = 0|1]';
```

以下のパラメータは必須です。
+ `@profile_name` – メッセージの送信元となるデータベースメールプロファイル名
+ `@recipients` – メッセージの送信先となるセミコロン区切りの E メールアドレスリスト
+ `@subject` – メッセージの件名
+ `@body` – メッセージの本文 宣言された変数を本文として使用することもできます。

以下のパラメータはオプションです。
+ `@body_format` – このパラメータは、HTML 形式で E メールを送信するため、宣言された変数と共に使用します。
+ `@file_attachments` – セミコロン区切りのメッセージ添付ファイルリスト。ファイルパスは絶対パスである必要があります。
+ `@query` – 実行する SQL クエリ クエリ結果は、ファイルで添付することも、メッセージの本文に含めることもできます。
+ `@attach_query_result_as_file` – クエリ結果をファイルでアタッチするかどうか。[いいえ] の場合は 0、[はい] の場合は 1 に設定します。デフォルトは 0 です。

## 例
<a name="SQLServer.DBMail.Send.Examples"></a>

次の例は、E メールメッセージを送信する方法をデモンストレーションします。

**Example 単一の受信者へのメッセージの送信の**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Automated DBMail message - 1',
     @body               = 'Database Mail configuration was successful.';
GO
```

**Example 複数の受信者へのメッセージの送信の**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'recipient1@example.com;recipient2@example.com',
     @subject            = 'Automated DBMail message - 2',
     @body               = 'This is a message.';
GO
```

**Example 添付ファイルでの SQL クエリ結果の送信の**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test SQL query',
     @body               = 'This is a SQL query test.',
     @query              = 'SELECT * FROM abc.dbo.test',
     @attach_query_result_as_file = 1;
GO
```

**Example HTML 形式でのメッセージの送信の**  

```
USE msdb
GO

DECLARE @HTML_Body as NVARCHAR(500) = 'Hi, <h4> Heading </h4> </br> See the report. <b> Regards </b>';

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test HTML message',
     @body               = @HTML_Body,
     @body_format        = 'HTML';
GO
```

**Example データベースで特定のイベントが発生した時の、トリガーを使用したメッセージの送信の**  

```
USE AdventureWorks2017
GO
IF OBJECT_ID ('Production.iProductNotification', 'TR') IS NOT NULL
DROP TRIGGER Purchasing.iProductNotification
GO

CREATE TRIGGER iProductNotification ON Production.Product
   FOR INSERT
   AS
   DECLARE @ProductInformation nvarchar(255);
   SELECT
   @ProductInformation = 'A new product, ' + Name + ', is now available for $' + CAST(StandardCost AS nvarchar(20)) + '!'
   FROM INSERTED i;

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'New product information',
     @body               = @ProductInformation;
GO
```

# メッセージ、ログ、添付ファイルの表示
<a name="SQLServer.DBMail.View"></a>

RDS ストアドプロシージャを使用して、メッセージ、イベントログ、および添付ファイルを表示します。

**すべての E メールメッセージを表示するには**
+ 次の SQL クエリを使用します。

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_allitems(); --WHERE sent_status='sent' or 'failed' or 'unsent'
  ```

**すべての E メールイベントログを表示するには**
+ 次の SQL クエリを使用します。

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_event_log();
  ```

**すべての E メールの添付ファイルを表示するには**
+ 次の SQL クエリを使用します。

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_mailattachments();
  ```

# メッセージの削除
<a name="SQLServer.DBMail.Delete"></a>

`rds_sysmail_delete_mailitems_sp` ストアドプロシージャを使用して、メッセージを削除します。

**注記**  
RDS は、データベースメール履歴データのサイズが 1 GB に達すると、メールテーブル項目を自動的に削除します。保持期間は最短 24 時間です。  
メールアイテムを長期間保持する場合、アーカイブできます。詳細については、Microsoft ドキュメントの「[データベースメールメッセージとイベントログをアーカイブする SQL Server Agent ジョブの作成](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/create-a-sql-server-agent-job-to-archive-database-mail-messages-and-event-logs)」を参照してください。

**E メールメッセージをすべて削除するには**
+ 次の SQL 文を使用します。

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_before = @GETDATE;
  GO
  ```

**特定のステータスの E メールメッセージをすべて削除するには**
+ 失敗したメッセージをすべて削除するには、次の SQL ステートメントを使用します。

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_status = 'failed';
  GO
  ```

# メールキューの開始と停止
<a name="SQLServer.DBMail.StartStop"></a>

DB メールキューを開始および停止するには、次の手順に従います。

**Topics**
+ [メールキューの開始](#SQLServer.DBMail.Start)
+ [メールキューの停止](#SQLServer.DBMail.Stop)

## メールキューの開始
<a name="SQLServer.DBMail.Start"></a>

`rds_sysmail_control` ストアドプロシージャを使用して、データベースメールプロセスを開始します。

**注記**  
データベースメールを有効にすると、メールキューが自動的に開始します。

**メールキューを開始するには**
+ 次の SQL 文を使用します。

  ```
  EXECUTE msdb.dbo.rds_sysmail_control start;
  GO
  ```

## メールキューの停止
<a name="SQLServer.DBMail.Stop"></a>

`rds_sysmail_control` ストアドプロシージャを使用して、データベースメールプロセスを停止します。

**メールキューを停止するには**
+ 次の SQL 文を使用します。

  ```
  EXECUTE msdb.dbo.rds_sysmail_control stop;
  GO
  ```

## 添付ファイルの使用
<a name="SQLServer.DBMail.Files"></a>

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 エージェントの使用](Appendix.SQLServer.CommonDBATasks.Agent.md)」および「[SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent)」を参照してください。

## マルチ AZ 配置に関する考慮事項
<a name="SQLServer.DBMail.MAZ"></a>

マルチ AZ DB インスタンスでデータベースメールを設定しても、設定はセカンダリに自動的には反映されません。マルチ AZ インスタンスをシングル AZ インスタンスに変換し、データベースメールを設定した後に、DB インスタンスをマルチ AZ に戻すことをお勧めします。次に、プライマリノードとセカンダリノードの両方に、データベースメールの設定があります。

データベースメールを設定したマルチ AZ インスタンスからリードレプリカを作成すると、レプリカはその設定を継承しますが、SMTP サーバーのパスワードは継承しません。パスワードを使用して、データベースメールアカウントを更新します。

## SMTP (ポート 25) 制限の削除
<a name="SQLServer.DBMail.SMTP"></a>

デフォルトでは、AWS は RDS for SQL Server DB インスタンスの SMTP (ポート 25) でのアウトバウンドトラフィックをブロックします。これは、Elastic Network Interface 所有者のポリシーに基づいてスパムを防ぐために行われます。必要に応じて、この制限を削除できます。詳細については、「[Amazon EC2 インスタンスまたは Lambda 関数のポート 25 の制限を解除するにはどうすればよいですか?](https://repost.aws/knowledge-center/ec2-port-25-throttle)」を参照してください。