Quero usar o Amazon Simple Email Service (Amazon SES) para enviar e-mails para uma instância do Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server hospedada em uma sub-rede pública ou privada.
Resolução
Configure o Amazon SES
Use o console do Amazon SES para obter as credenciais do Simple Mail Transfer Protocol (SMTP).
Para receber um e-mail de confirmação, conclua as etapas a seguir:
- Abra o console do Amazon SES e selecione Endereços de e-mail.
- Clique em Verificar um novo endereço de e-mail e, em seguida, insira o endereço de e-mail em que você deseja receber um e-mail de confirmação.
- Confirme se o Status da verificação está Verificado.
Configure um grupo de parâmetros do Database Mail
Observação: se você já tiver um grupo de parâmetros personalizado para usar com o Database Mail, vá para a seção Configure o Database Mail. Se seu grupo de parâmetros já estiver associado à sua instância do RDS para SQL Server, vá para o próximo conjunto de etapas nesta seção.
Para criar um grupo de parâmetros personalizado, conclua as etapas a seguir:
- Abra o console do Aurora e do RDS.
- Clique em Grupos de parâmetros e, em seguida, em Criar grupo de parâmetros.
- Em Família do grupo de parâmetros, selecione a versão e a edição do SQL Server que você está usando. Por exemplo, o SQL Server 2016 Enterprise Edition usa sqlserver-ee-13.0.
- Insira um nome de grupo e uma descrição e, em seguida, clique em Criar.
- Na página Grupos de parâmetros, escolha o grupo.
- Clique em Editar parâmetros e, em seguida, selecione database mail xps.
- Em Valores, selecione 1.
- Clique em Salvar.
Para associar o grupo de parâmetros à sua instância do RDS para SQL Server, conclua as etapas a seguir:
- Abra o console do Aurora e do RDS.
- Clique em Banco de dados e, em seguida, em Modificar.
- Em Opções do banco de dados, escolha o grupo de parâmetros e selecione Continuar.
- Em Programação de modificações, clique em Imediatamente.
- Selecione Modificar instância de banco de dados para aplicar as alterações e, em seguida, reinicialize sua instância.
Configure o Database Mail
Se sua instância do RDS para SQL Server estiver hospedada em uma sub-rede pública, é possível configurar o Database Mail.
Se sua instância estiver em uma sub-rede privada, você pode receber a seguinte mensagem de erro ao configurar o Database Mail:
"The mail could not be sent to the recipients because of the mail server failure. Exception Message: Could not connect to mail server."
Se você receber a mensagem de erro anterior, sua instância de banco de dados não conseguirá acessar o servidor de e-mail. Para resolver esse problema, crie um endpoint da Amazon Virtual Private Cloud (Amazon VPC) para o Amazon SES.
Conclua as etapas a seguir:
-
Identifique o endereço IP privado da sua instância.
-
Crie um novo grupo de segurança com uma regra de entrada para o grupo de segurança associado à sua instância:
Em Tipo, clique em TCP personalizado.
Em Intervalo de portas, insira o número da porta que você deseja usar para enviar e-mail. É possível usar 25, 465, 587, 2465 ou 2587.
Em Tipo de origem, selecione Personalizado.
Em Origem, insira o endereço IP privado da sua instância do RDS para SQL Server.
-
Crie um endpoint da VPC.
-
Selecione o endpoint e anote o primeiro nome no campo DNS.
-
Recrie a conta do Database Mail:
use msdbgo
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'Acc1',
@description = 'Mail account for sending outgoing
notifications.',
@email_address = 'example@example.com',
@display_name = 'Automated Mailer',
@mailserver_name =
'vpce-0a9cxxxxxxxxxxxxx-xxxxxxxx.email-smtp.ap-southeast-2.vpce.amazonaws.com',
<---- VPC endpoint created in previous step
@port = 587,
@enable_ssl = 1,
@username = 'SMTP-username', <---- For user name and
password, please use the SES credentials
@password = 'SMTP-password' ;
Observação: substitua @mailserver_name pelo nome DNS que você anotou no campo DNS.
-
Execute o comando a seguir para confirmar se o Database Mail está configurado corretamente:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'success@simulator.amazonses.com',@body = 'The database mail configuration was completed successfully.',
@subject = 'Automated Success Message';
Observação: se o Database Mail estiver configurado corretamente, o e-mail será enviado.
-
Execute o procedimento armazenado a seguir para verificar todos os itens de e-mail:
SELECT * FROM msdb.dbo.sysmail_allitems
-
Na coluna sent_status, verifique se o status é Enviado.
Informações relacionadas
Gerenciar uma instância de banco de dados do Amazon RDS Custom para SQL Server
Using Database Mail on Amazon RDS for SQL Server (Usar o Database Mail no Amazon RDS para SQL Server)