Usar o Database Mail no Amazon RDS for SQL Server - Amazon Relational Database Service

Usar o Database Mail no Amazon RDS for SQL Server

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 deconfiguraçã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 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 MailDatabaseMail.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

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 .

  • Os anexos de arquivo não são totalmente compatíveis. Para ter mais informações, consulte Trabalhar com anexos de arquivos.

  • 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.

  • 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 Microsoft fornece procedimentos armazenados 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

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 e SQL Server Agent na documentação da Microsoft.

Considerações para implantações Multi-AZ

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)

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?