Saltar al contenido

¿Cómo uso Amazon SES para enviar correos electrónicos cuando mi instancia de Amazon RDS para Microsoft SQL Server se encuentra en una subred pública o privada?

4 minutos de lectura
0

Quiero usar Amazon Simple Email Service (Amazon SES) para enviar correos electrónicos a una instancia de Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server alojada en una subred pública o privada.

Resolución

Configuración de Amazon SES

Usa la consola de Amazon SES para obtener las credenciales del protocolo simple de transferencia de correo (SMTP). 

Para recibir un correo electrónico de confirmación, sigue estos pasos:

  1. Abre la consola de Amazon SES y, a continuación, selecciona Direcciones de correo electrónico.
  2. Elige Verificar una dirección de correo electrónico nueva y, a continuación, especifica la dirección de correo electrónico en la que deseas recibir un correo electrónico de confirmación.
  3. Confirma que el estado de verificación sea verificado.

Configuración de un grupo de parámetros de Database Mail

Nota: Si ya tienes un grupo de parámetros personalizado para usarlo con Database Mail, ve a la sección Configuración de Database Mail. Si el grupo de parámetros ya está asociado a la instancia de RDS para SQL Server, continúa con el siguiente conjunto de pasos de esta sección.

Para crear un grupo de parámetros personalizado, sigue estos pasos:

  1. Abre la consola de Aurora y RDS.
  2. Selecciona Grupos de parámetros y, a continuación, elige Crear grupo de parámetros.
  3. En Familia de grupos de parámetros, elige la versión y la edición de SQL Server que utilizas. Por ejemplo, SQL Server 2016 Enterprise Edition usa sqlserver-ee-13.0.
  4. Introduce el nombre y la descripción del grupo y, a continuación, elige Crear.
  5. En la página Grupos de parámetros, selecciona el grupo.
  6. Elige Editar parámetros y, a continuación, selecciona database mail xps.
  7. En Valores, elige 1.
  8. Selecciona Guardar.

Para asociar el grupo de parámetros a tu instancia de RDS para SQL Server, sigue estos pasos:

  1. Abre la consola de Aurora y RDS.
  2. Elige la base de datos y, a continuación, selecciona Modificar.
  3. En Opciones de base de datos, elige el grupo de parámetros y, a continuación, elige Continuar.
  4. En Programación de modificaciones, elige Inmediatamente.
  5. Elige Modificar la instancia de base de datos para aplicar los cambios y, a continuación, reinicia la instancia.

Configuración de Database Mail

Si tu instancia de RDS para SQL Server está alojada en una subred pública, puedes configurar Database Mail.

Si tu instancia está en una subred privada, es posible que recibas el siguiente mensaje de error al configurar 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."

Si recibes el mensaje de error anterior, la instancia de base de datos no puede comunicarse con el servidor de correo. Para resolver este problema, crea un punto de enlace de Amazon Virtual Private Cloud (Amazon VPC) para Amazon SES.

Sigue estos pasos:

  1. Identifica la dirección IP privada de la instancia.

  2. Crea un nuevo grupo de seguridad con una regla de entrada para el grupo de seguridad asociado a la instancia: 
    En Tipo, elige TCP personalizado.
    En Rango de puertos, especifica el número de puerto que deseas utilizar para enviar correos electrónicos. Puedes usar 25, 465, 587, 2465 o 2587.
    En Tipo de origen, elige Personalizado.
    En Origen, especifica la dirección IP privada de tu instancia de RDS para SQL Server.

  3. Crea un punto de enlace de VPC.

  4. Elige el punto de enlace y anota el primer nombre en el campo DNS.

  5. Vuelve a crear la cuenta de 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' ;
    

    Nota: Sustituye @mailserver_name por el nombre DNS que anotaste en el campo DNS.

  6. Ejecuta el siguiente comando para confirmar que Database Mail está configurado correctamente:

    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';
    

    Nota: Si Database Mail está configurado correctamente, el correo electrónico se envía.

  7. Ejecuta el siguiente procedimiento almacenado para comprobar todos los elementos de correo electrónico:

    SELECT * FROM msdb.dbo.sysmail_allitems
    
  8. En la columna sent_status, comprueba que el estado sea Enviado.

Información relacionada

Administración de una instancia de base de datos para Amazon RDS Custom para SQL Server

Uso de Database Mail en Amazon RDS para SQL Server

OFICIAL DE AWSActualizada hace 2 años