

# Uso de Database Mail en Amazon RDS for SQL Server
<a name="SQLServer.DBMail"></a>

Puede utilizar Database Mail para enviar mensajes de correo electrónico a los usuarios desde su instancia de base de datos Amazon RDS en SQL Server. Los mensajes pueden contener archivos y resultados de consulta. Database Mail incluye los siguientes componentes:
+ **Objetos de configuración y seguridad** – Estos objetos crean perfiles y cuentas y se almacenan en la base de datos `msdb`.
+ **Objetos de mensajería** – Estos objetos incluyen el procedimiento almacenado [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) utilizado para enviar mensajes y estructuras de datos que contienen información sobre los mensajes. Están almacenados en la base de datos `msdb`.
+ **Objetos de registro y auditoría** – Database Mail escribe información de registro en la base de datos `msdb` y en el registro de eventos de aplicación de Microsoft Windows.
+ **El ejecutable de Database Mail** – `DatabaseMail.exe` lee desde una cola en la base de datos `msdb` y envía mensajes de correo electrónico.

RDS es compatible con Database Mail para todas las versiones de SQL Server en las ediciones Web, Estándar y Enterprise.

## Limitaciones
<a name="SQLServer.DBMail.Limitations"></a>

Las siguientes limitaciones se aplican al uso de Database Mail en su instancia de base de datos de SQL Server:
+ Database Mail no es compatible con la edición SQL Server Express.
+ La modificación de los parámetros de la configuración de Database Mail no es compatible. Para ver los valores preestablecidos (predeterminados), utilice el procedimiento almacenado [sysmail\$1help\$1configure\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-configure-sp-transact-sql).
+ Los archivos adjuntos no son totalmente compatibles. Para obtener más información, consulte [Trabajar con archivos adjuntos](#SQLServer.DBMail.Files).
+ El tamaño máximo del archivo adjunto es de 1 MB.
+ Database Mail requiere configuración adicional en las instancias de base de datos Multi-AZ. Para obtener más información, consulte [Consideraciones para implementaciones Multi-AZ](#SQLServer.DBMail.MAZ).
+ La configuración del Agente SQL Server para enviar mensajes de correo electrónico a operadores predefinidos no es compatible.

# Habilitación de Database Mail
<a name="SQLServer.DBMail.Enable"></a>

Utilice el siguiente proceso para habilitar Database Mail para su instancia de base de datos:

1. Cree un nuevo grupo de parámetros.

1. Modifique el grupo de parámetros para establecer el parámetro `database mail xps` en 1.

1. Asocie el nuevo grupo de parámetros a la instancia de base de datos.

## Creación del grupo de parámetros para Database Mail
<a name="DBMail.CreateParamGroup"></a>

Cree un grupo de parámetros para el parámetro `database mail xps` que corresponde a la edición y versión de SQL Server de su instancia de base de datos.

**nota**  
También puede modificar un grupo de parámetros existente. Siga el procedimiento indicado en [Modificación del parámetro que habilita Database Mail](#DBMail.ModifyParamGroup).

### Consola
<a name="DBMail.CreateParamGroup.Console"></a>

En el ejemplo siguiente se crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija **Create parameter group**.

1. En el panel **Create parameter group (Crear grupo de parámetros)**, haga lo siguiente:

   1. En **Familia de grupos de parámetros**, elija **sqlserver-se-13.0**.

   1. En **Nombre de grupo**, escriba un identificador para el grupo de parámetros, como **dbmail-sqlserver-se-13**.

   1. En **Descripción**, escriba **Database Mail XPs**.

1. Seleccione **Create (Crear)**.

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

En el ejemplo siguiente se crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o 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"
  ```

  Para 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"
  ```

## Modificación del parámetro que habilita Database Mail
<a name="DBMail.ModifyParamGroup"></a>

Modifique el parámetro `database mail xps` en el grupo de parámetros que corresponde a la edición y la versión de SQL Server de su instancia de base de datos.

Para habilitar Database Mail, establezca el parámetro `database mail xps` en 1.

### Consola
<a name="DBMail.ModifyParamGroup.Console"></a>

En el ejemplo siguiente se modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija el grupo de parámetros, como **ssis-sqlserver-se-13**.

1. En **Parámetros**, filtre la lista de parámetros para **mail**.

1. Elija **database mail xps** (procedimientos almacenados extendidos [XP] de Database Mail).

1. Elija **Edit parameters (Editar parámetros)**.

1. Escriba **1**.

1. Elija **Save changes**.

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

En el ejemplo siguiente se modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

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

  Para Windows:

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

## Asociación del grupo de parámetros con la instancia de base de datos
<a name="DBMail.AssocParamGroup"></a>

Puede utilizar la Consola de administración de AWS o la AWS CLI para asociar el grupo de parámetros de Database Mail con la instancia de base de datos.

### Consola
<a name="DBMail.AssocParamGroup.Console"></a>

Puede asociar el grupo de parámetros de Database Mail con una instancia de base de datos nueva o existente.
+ Para una nueva instancia de base de datos, asóciela cuando lance la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Para una instancia de base de datos existente, asóciela modificando la instancia. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

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

Puede asociar el grupo de parámetros de Database Mail con una instancia de base de datos nueva o existente.

**Para crear una instancia de base de datos con el grupo de parámetros de Database Mail**
+ Especifique el mismo tipo de motor de base de datos y la misma versión principal que ha utilizado al crear el grupo de parámetros.  
**Example**  

  Para Linux, macOS o 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
  ```

  Para 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
  ```

**Para modificar una instancia de base de datos y asociar el grupo de parámetros de Database Mail**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

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

  Para Windows:

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

# Configuración de Database Mail
<a name="SQLServer.DBMail.Configure"></a>

Realice las siguientes tareas para configurar Database Mail:

1. Cree el perfil de Database Mail.

1. Cree la cuenta de Database Mail.

1. Agregue la cuenta de Database Mail al perfil de Database Mail.

1. Agregue usuarios al perfil de Database Mail.

**nota**  
Para configurar Database Mail, asegúrese de que tenga permiso `execute` sobre los procedimientos almacenados en la base de datos `msdb`.

## Creación del perfil de Database Mail
<a name="SQLServer.DBMail.Configure.Profile"></a>

Para crear el perfil de Database Mail, utilice el procedimiento almacenado [sysmail\$1add\$1profile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql). En el ejemplo siguiente se crea un perfil denominado `Notifications`.

**Para crear el perfil**
+ Utilice la siguiente instrucción 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
  ```

## Creación de la cuenta de Database Mail
<a name="SQLServer.DBMail.Configure.Account"></a>

Para crear la cuenta de Database Mail, utilice el procedimiento almacenado [sysmail\$1add\$1account\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql). En el ejemplo siguiente, se crea una cuenta denominada `SES` en una instancia de base de datos de RDS para SQL Server en una VPC privada mediante Amazon Simple Email Service.

Para utilizar Amazon SES se requieren los siguientes parámetros:
+ `@email_address`: Una identidad verificada de Amazon SES. Para obtener más información, consulte [Verificación de identidades en Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html).
+ `@mailserver_name`: Un punto de enlace SMTP de Amazon SES. Para obtener más información, consulte [Conexión a un punto de enlace SMTP de Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-connect.html).
+ `@username`: Un nombre de usuario de SMTP de Amazon SES. Para obtener más información, consulte [Obtención de las credenciales SMTP de Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

  No utilice un nombre de usuario AWS Identity and Access Management.
+ `@password`: Una contraseña SMTP de Amazon SES. Para obtener más información, consulte [Obtención de las credenciales SMTP de Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

**Para crear la cuenta**
+ Utilice la siguiente instrucción 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
  ```
**nota**  
Especifique credenciales distintas de las que se muestran aquí como práctica recomendada de seguridad.

## Adición de la cuenta de Database Mail al perfil de Database Mail
<a name="SQLServer.DBMail.Configure.AddAccount"></a>

Para agregar la cuenta de Database Mail al perfil de Database Mail, utilice el procedimiento almacenado [sysmail\$1add\$1profileaccount\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql). En el ejemplo siguiente se agrega la cuenta `SES` al perfil `Notifications`.

**Para agregar la cuenta al perfil**
+ Utilice la siguiente instrucción SQL.

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

## Adición de usuarios al perfil de Database Mail
<a name="SQLServer.DBMail.Configure.AddUser"></a>

Para conceder permiso a una entidad principal de base de datos `msdb` para utilizar un perfil de Database Mail, utilice el procedimiento almacenado [sysmail\$1add\$1principalprofile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql). Una *entidad principal* es una entidad que puede solicitar recursos de SQL Server. La entidad principal de base de datos debe asignarse a un usuario de autenticación de SQL Server, un usuario de autenticación de Windows o un grupo de autenticación de Windows.

En el ejemplo siguiente se concede acceso público al perfil `Notifications`.

**Para agregar un usuario al perfil**
+ Utilice la siguiente instrucción SQL.

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

## Procedimientos y funciones almacenados de Amazon RDS para Database Mail
<a name="SQLServer.DBMail.StoredProc"></a>

Microsoft proporciona [procedimientos almacenados](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/database-mail-stored-procedures-transact-sql) para usar Database Mail, como crear, enumerar, actualizar y eliminar cuentas y perfiles. Además, RDS provee los procedimientos almacenados y las funciones almacenadas para Database Mail que se muestran en la tabla siguiente.


| Procedimiento/Función | Descripción | 
| --- | --- | 
| rds\$1fn\$1sysmail\$1allitems | Muestra los mensajes enviados, incluidos los enviados por otros usuarios. | 
| rds\$1fn\$1sysmail\$1event\$1log | Muestra eventos, incluidos los de mensajes enviados por otros usuarios. | 
| rds\$1fn\$1sysmail\$1mailattachments | Muestra archivos adjuntos, incluidos los de los mensajes enviados por otros usuarios. | 
| rds\$1sysmail\$1control | Inicia y detiene la cola de correo (proceso DatabaseMail.exe). | 
| rds\$1sysmail\$1delete\$1mailitems\$1sp | Elimina los mensajes de correo electrónico enviados por todos los usuarios de las tablas internas de Database Mail. | 

# Envío de mensajes de correo electrónico con Database Mail
<a name="SQLServer.DBMail.Send"></a>

Utilice el procedimiento almacenado [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) para enviar mensajes de correo electrónico mediante Database Mail.

## Uso
<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]';
```

Se requieren los siguientes parámetros:
+ `@profile_name` – El nombre del perfil de Database Mail desde el que se va a enviar el mensaje.
+ `@recipients` – La lista delimitada por punto y coma de direcciones de correo electrónico a las que enviar el mensaje.
+ `@subject` – El asunto del mensaje.
+ `@body` – El cuerpo del mensaje. También puede usar una variable declarada como cuerpo.

Los siguientes parámetros son opcionales:
+ `@body_format` – Este parámetro se utiliza con una variable declarada para enviar un correo electrónico en formato HTML.
+ `@file_attachments` – La lista delimitada por punto y coma de archivos adjuntos de mensajes. Las rutas de archivo deben ser rutas absolutas.
+ `@query` – Una consulta SQL que se va a ejecutar. Los resultados de la consulta se pueden adjuntar como un archivo o incluirse en el cuerpo del mensaje.
+ `@attach_query_result_as_file` – Si se debe adjuntar el resultado de la consulta como un archivo. Establezca en 0 para no, 1 para sí. El valor predeterminado es 0.

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

Los ejemplos siguientes muestran cómo enviar mensajes de correo electrónico.

**Example de enviar un mensaje a un único destinatario**  

```
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 de enviar un mensaje a varios destinatarios**  

```
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 de enviar un resultado de consulta SQL como un archivo adjunto**  

```
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 de enviar un mensaje en formato 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 de enviar un mensaje mediante un desencadenador cuando se produce un evento específico en la base de datos**  

```
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
```

# Visualización de mensajes, registros y archivos adjuntos
<a name="SQLServer.DBMail.View"></a>

Utilice procedimientos almacenados de RDS para ver mensajes, registros de eventos y archivos adjuntos.

**Para ver todos los mensajes de correo electrónico**
+ Utilice la siguiente consulta SQL.

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

**Para ver todos los registros de eventos de correo electrónico**
+ Utilice la siguiente consulta SQL.

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

**Para ver todos los archivos adjuntos de correo electrónico**
+ Utilice la siguiente consulta SQL.

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

# Eliminación de mensajes
<a name="SQLServer.DBMail.Delete"></a>

Utilice el procedimiento almacenado `rds_sysmail_delete_mailitems_sp` para eliminar mensajes.

**nota**  
RDS elimina automáticamente los elementos de la tabla de correo cuando los datos del historial de DBMail alcanzan un tamaño de 1 GB, con un periodo de retención de al menos 24 horas.  
Si desea conservar los elementos de correo durante un periodo más largo, puede archivarlos. Para obtener más información, consulte [Crear un trabajo de agente SQL Server para archivar mensajes y registros de eventos de Database Mail ](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) en la documentación de Microsoft.

**Para eliminar todos los mensajes de correo electrónico**
+ Utilice la siguiente instrucción SQL.

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

**Para eliminar todos los mensajes de correo electrónico con un estado determinado**
+ Utilice la siguiente instrucción SQL para eliminar todos los mensajes fallidos.

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

# Inicio y detención de la cola de correo
<a name="SQLServer.DBMail.StartStop"></a>

Siga las instrucciones que se indican a continuación para iniciar y detener la cola de correo de la base de datos:

**Topics**
+ [Inicio de la cola de correo](#SQLServer.DBMail.Start)
+ [Detención de la cola de correo](#SQLServer.DBMail.Stop)

## Inicio de la cola de correo
<a name="SQLServer.DBMail.Start"></a>

Utilice el procedimiento almacenado `rds_sysmail_control` para iniciar el proceso de Database Mail.

**nota**  
Al habilitar Database Mail, se inicia automáticamente la cola de correo.

**Para iniciar la cola de correo**
+ Utilice la siguiente instrucción SQL.

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

## Detención de la cola de correo
<a name="SQLServer.DBMail.Stop"></a>

Utilice el procedimiento almacenado `rds_sysmail_control` para detener el proceso de Database Mail.

**Para detener la cola de correo**
+ Utilice la siguiente instrucción SQL.

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

## Trabajar con archivos adjuntos
<a name="SQLServer.DBMail.Files"></a>

Las siguientes extensiones de archivos adjuntos no son compatibles con los mensajes de Database Mail de RDS en SQL Server: .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 y .wsh.

Database Mail utiliza el contexto de seguridad de Microsoft Windows del usuario actual para controlar el acceso a los archivos. Los usuarios que inician sesión con la autenticación de SQL Server no pueden adjuntar archivos mediante el parámetro `@file_attachments` con el procedimiento almacenado `sp_send_dbmail`. Windows no permite que SQL Server proporcione credenciales de un equipo remoto a otro equipo remoto. Por lo tanto, Database Mail no puede adjuntar archivos desde un recurso compartido de red cuando el comando se ejecuta desde un equipo distinto del equipo que ejecuta SQL Server.

Sin embargo, usted puede utilizar trabajos del agente SQL Server para adjuntar archivos. Para obtener más información sobre el Agente SQL Server, consulte [Uso del Agente SQL Server para Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md) y [Agente SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent) en la documentación de Microsoft.

## Consideraciones para implementaciones Multi-AZ
<a name="SQLServer.DBMail.MAZ"></a>

Al configurar Database Mail en una instancia de base de datos Multi-AZ, la configuración no se propaga automáticamente a la secundaria. Se recomienda convertir la instancia Multi-AZ en una instancia Single-AZ, configurar Database Mail y, a continuación, convertir la instancia de base de datos de nuevo a Multi-AZ. Entonces, tanto el nodo primario como el secundario tienen la configuración de Database Mail.

Si crea una réplica de lectura desde su instancia Multi-AZ que tiene Database Mail configurado, la réplica hereda la configuración, pero sin la contraseña del servidor de protocolo simple de transferencia de correo (SMTP). Actualice la cuenta de Database Mail con la contraseña.

## Eliminar la restricción SMTP (puerto 25)
<a name="SQLServer.DBMail.SMTP"></a>

De forma predeterminada, AWS bloquea el tráfico saliente en SMTP (puerto 25) para las instancias de base de datos de RDS para SQL Server. Esto se hace para evitar el spam según las políticas del propietario de la interfaz de red elástica. Puede eliminar esta restricción si es necesario. Para obtener más información, consulte [¿Cómo puedo eliminar la restricción en el puerto 25 de mi instancia de Amazon EC2 o de la función de Lambda?](https://repost.aws/knowledge-center/ec2-port-25-throttle). 