Ir para o conteúdo

Como uso o Amazon SES para enviar e-mails quando minha instância do Amazon RDS para Microsoft SQL Server está em uma sub-rede pública ou privada?

4 minuto de leitura
0

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:

  1. Abra o console do Amazon SES e selecione Endereços de e-mail.
  2. 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.
  3. 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:

  1. Abra o console do Aurora e do RDS.
  2. Clique em Grupos de parâmetros e, em seguida, em Criar grupo de parâmetros.
  3. 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.
  4. Insira um nome de grupo e uma descrição e, em seguida, clique em Criar.
  5. Na página Grupos de parâmetros, escolha o grupo.
  6. Clique em Editar parâmetros e, em seguida, selecione database mail xps.
  7. Em Valores, selecione 1.
  8. Clique em Salvar.

Para associar o grupo de parâmetros à sua instância do RDS para SQL Server, conclua as etapas a seguir:

  1. Abra o console do Aurora e do RDS.
  2. Clique em Banco de dados e, em seguida, em Modificar.
  3. Em Opções do banco de dados, escolha o grupo de parâmetros e selecione Continuar.
  4. Em Programação de modificações, clique em Imediatamente.
  5. 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:

  1. Identifique o endereço IP privado da sua instância.

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

  3. Crie um endpoint da VPC.

  4. Selecione o endpoint e anote o primeiro nome no campo DNS.

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

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

  7. Execute o procedimento armazenado a seguir para verificar todos os itens de e-mail:

    SELECT * FROM msdb.dbo.sysmail_allitems
    
  8. 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)

AWS OFICIALAtualizada há 2 anos