

# Usar o Database Mail no Amazon RDS for SQL Server
<a name="SQLServer.DBMail"></a>

Você pode usar o Database Mail para enviar mensagens de e-mail aos usuários a partir da instância de banco de dados do Amazon RDS no SQL Server. As mensagens podem conter arquivos e resultados de consultas. O Database Mail inclui os seguintes componentes:
+ Objetos de**configuração e segurança** – esses objetos criam perfis e contas e são armazenados no banco de dados `msdb`.
+ **Objetos de mensagens ** – esses objetos incluem o procedimento armazenado [sp\_send\_dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) usado para enviar mensagens e estruturas de dados que contêm informações sobre mensagens. Eles estão armazenados no banco de dados `msdb`.
+ **Objetos de registro e auditoria** – o Database Mail grava informações de registro no banco de dados `msdb` e no log de eventos de aplicações do Microsoft Windows.
+ **Executável do Database Mail** – `DatabaseMail.exe` lê a partir de uma fila no banco de dados `msdb` e envia mensagens de e-mail.

O RDS oferece suporte ao Database Mail para todas as versões do SQL Server nas edições Web, Standard e Enterprise.

## Limitações
<a name="SQLServer.DBMail.Limitations"></a>

As seguintes limitações se aplicam ao uso do Database Mail em sua instância de banco de dados SQL Server:
+ O Database Mail não é compatível com o SQL Server Express Edition.
+ A modificação dos parâmetros de configuração do Database Mail não é aceita. Para ver os valores predefinidos (padrão), use o procedimento armazenado [sysmail\_help\_configure\_sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-configure-sp-transact-sql) .
+ Os anexos de arquivo não são totalmente compatíveis. Para ter mais informações, consulte [Trabalhar com anexos de arquivos](#SQLServer.DBMail.Files).
+ O tamanho máximo do anexo do arquivo é de 1 MB.
+ O Database Mail requer configuração adicional em instâncias de banco de dados Multi-AZ. Para ter mais informações, consulte [Considerações para implantações Multi-AZ](#SQLServer.DBMail.MAZ).
+ Não há suporte para configurar o SQL Server Agent para enviar mensagens de email para operadores predefinidos.

## Procedimentos armazenados e funções do Amazon RDS para o Database Mail
<a name="SQLServer.DBMail.StoredProc"></a>

A Microsoft fornece [procedimentos armazenados](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/database-mail-stored-procedures-transact-sql) para usar o Database Mail, como criar, listar, atualizar e excluir contas e perfis. Além disso, o RDS fornece os procedimentos e funções armazenados para o Database Mail mostrados na tabela a seguir.


| Procedimento/Função | Descrição | 
| --- | --- | 
| rds\_fn\_sysmail\_allitems | Mostra as mensagens enviadas, incluindo as enviadas por outros usuários. | 
| rds\_fn\_sysmail\_event\_log | Mostra eventos, incluindo aqueles para mensagens enviadas por outros usuários. | 
| rds\_fn\_sysmail\_mailattachments | Mostra anexos, incluindo aqueles para mensagens enviadas por outros usuários. | 
| rds\_sysmail\_control | Inicia e interrompe a fila de correio (processo DatabaseMail.exe). | 
| rds\_sysmail\_delete\_mailitems\_sp | Exclui mensagens de e-mail enviadas por todos os usuários das tabelas internas do Database Mail. | 

## Trabalhar com anexos de arquivos
<a name="SQLServer.DBMail.Files"></a>

As seguintes extensões de anexo de arquivo não são compatíveis com as mensagens do Database Mail do RDS no 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,. sc, .wsf e .wsh.

O Database Mail usa o contexto de segurança do Microsoft Windows do usuário atual para controlar o acesso aos arquivos. Os usuários que fazem login com o SQL Server Authentication não podem anexar arquivos usando o parâmetro `@file_attachments` com o procedimento armazenado `sp_send_dbmail`. O Windows não permite que o SQL Server forneça credenciais de um computador remoto para outro computador remoto. Portanto, o Database Mail não pode anexar arquivos de um compartilhamento de rede quando o comando é executado a partir de um computador diferente do computador que esteja executando o SQL Server.

No entanto, você pode usar tarefas do SQL Server Agent para anexar arquivos. Para ter mais informações sobre o SQL Server Agent, consulte [Usar o agente do SQL Server para o Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md) e [SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent) na documentação da Microsoft.

## Considerações para implantações Multi-AZ
<a name="SQLServer.DBMail.MAZ"></a>

Quando você configura o Database Mail em uma instância de banco de dados Multi-AZ, a configuração não é propagada automaticamente para o secundário. Recomendamos converter a instância Multi-AZ em uma instância Single-AZ, configurar o Database Mail e, em seguida, converter a instância de banco de dados de volta para Multi-AZ. Em seguida, os nós primário e secundário têm a configuração do Database Mail.

Se você criar uma réplica de leitura a partir da instância Multi-AZ que tenha o Database Mail configurado, a réplica herdará a configuração, mas sem a senha para o servidor SMTP. Atualize a conta Database Mail com a senha.

## Remover a restrição de SMTP (porta 25)
<a name="SQLServer.DBMail.SMTP"></a>

Por padrão, a AWS bloqueia o tráfego de saída no SMTP (porta 25) para instâncias de banco de dados do RDS para SQL Server. Isso é feito para evitar spam com base nas políticas do proprietário da interface de rede elástica. É possível remover essa restrição, se necessário. Consulte mais informações em [Como removo a restrição à porta 25 de uma instância do Amazon EC2 ou de uma função do Lambda?](https://repost.aws/knowledge-center/ec2-port-25-throttle) 