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 Mail –
DatabaseMail.exe
lê a partir de uma fila no banco de dadosmsdb
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
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
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?