Comment puis-je envoyer des e-mails à l'aide de la fonctionnalité Amazon SES lorsque mon instance RDS for SQL Server se trouve dans un sous-réseau public ou privé ?

Lecture de 5 minute(s)
0

Je souhaite envoyer des e-mails avec la fonctionnalité Amazon Simple Email Service (Amazon SES). Je souhaite utiliser une instance Amazon Relational Database Service (Amazon RDS) for SQL Server hébergée dans un sous-réseau privé ou public.

Brève description

Pour pouvoir envoyer des e-mails avec Amazon SES à l'aide d'une instance de base de données Amazon RDS for SQL Server, vous devez commencer par créer vos informations d'identification SMTP (Simple Mail Transfer Protocol) à l'aide d'Amazon SES. Vous devez ensuite créer un groupe de paramètres à utiliser avec Database Mail. Si votre instance de base de données est hébergée dans un sous-réseau privé, vous devez configurer le point de terminaison d'un VPC à utiliser dans votre profil Database Mail.

Résolution

Configuration d'Amazon SES

1.    Ouvrez la console Amazon SES, puis choisissez Paramètres SMTP.

2.    Notez les valeurs répertoriées pour Nom du serveur et Port.

3.    Choisissez Créer des informations d'identification SMTP. La console Gestion des identités et des accès AWS (AWS IAM) s'ouvre.

4.    Pour Nom d'utilisateur IAM, saisissez l'utilisateur de votre choix ou gardez l'utilisateur par défaut, puis choisissez Créer.

5.    Choisissez Télécharger les informations d'identification. Ceci est votre seule opportunité de télécharger vos informations d'identification SMTP. Veillez donc à les enregistrer dans un endroit sûr.

6.    Ouvrez la console Amazon SES, puis choisissez Adresses e-mail.

7.    Choisissez Vérifier une nouvelle adresse e-mail, puis saisissez l'adresse e-mail à laquelle l'e-mail de confirmation doit être envoyé.

8.    Une fois votre adresse e-mail confirmée, définissez votre Statut de vérification comme étant vérifié.

Configuration d'un groupe de paramètres pour Database Mail

Si vous disposez déjà d'un groupe de paramètres personnalisé à utiliser avec votre profil Database Mail, vous pouvez ignorez cette étape.

1.    Ouvrez la console Amazon RDS, puis choisissez Groupes de paramètres dans le volet de navigation.

2.    Choisissez Créer un groupe de paramètres.

3.    Pour Famille de groupes de paramètres, choisissez la version et l'édition de SQL Server que vous utilisez. Par exemple, SQL Server 2016 Enterprise Edition utilise sqlserver-ee-13.0.

4.    Saisissez un Nom de groupe et une Description, puis sélectionnez Créer.

5.    Sur la page Groupes de paramètres, choisissez le groupe que vous avez créé.

6.    Sélectionnez Modifier les paramètres, puis cochez la case à côté de database mail xps.

7.    Pour Valeurs, choisissez 1.

8.    Enregistrez vos modifications.

Remarque : si le groupe de paramètres est déjà associé à votre instance RDS for SQL Server, vous pouvez ignorer ces étapes.

9.    Dans la console Amazon RDS, choisissez Base de données, puis Modifier.

10.    Sous Options de base de données, choisissez le paramètre que vous avez configuré précédemment, puis choisissez Continuer.

11.    Sous Planification des modifications, sélectionnez Immédiatement.

12.    Choisissez Modifier l'instance de base de données pour appliquer les modifications, puis redémarrez votre instance.

Configuration de Database Mail

Si votre instance RDS for SQL Server est hébergée dans un sous-réseau public, suivez les étapes décrites dans la section Configuration de Database Mail.

Toutefois, si votre instance se trouve dans un sous-réseau privé, vous pouvez recevoir le message d'erreur suivant lorsque vous configurez Database Mail :

« Le courrier n'a pas pu être envoyé aux destinataires en raison d'une défaillance du serveur de messagerie (envoi de courrier à l'aide du compte 1 (2020-12-08T 22:20:51). Message d'exception : impossible de se connecter au serveur de messagerie (une tentative de connexion a échoué parce que la partie connectée n'a pas répondu correctement après un certain temps, ou la connexion établie a échoué parce que l'hôte connecté n'a pas répondu 52.63.118.124:587). »

Cette erreur indique que votre instance de base de données ne parvient pas à atteindre le serveur de messagerie. Pour résoudre ce problème, vous devez créer un point de terminaison d'un VPC pour Amazon SES.

1.    Identifiez l'adresse IP privée de votre instance.

2.    Créez un nouveau groupe de sécurité avec une règle entrante pour le groupe de sécurité associé à votre instance**.** Pour Type, choisissez TCP personnalisé. Pour Plage de ports, saisissez le numéro de port que vous souhaitez utiliser pour envoyer des e-mails. Vous pouvez utiliser les ports 25, 465, 587, 2465 ou 2587. Pour Type de source, choisissez Personnalisé. Pour Source, saisissez l'adresse IP privée de votre instance RDS for SQL Server.

3.    Créez un point de terminaison d'un VPC. Une fois que le point de terminaison d'un VPC est à l'état disponible, sélectionnez-le, puis copiez la première entrée trouvée dans le champ DNS.

4.    Recréez le compte Database Mail :

use msdb
go

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

Remarque : remplacez @mailserver_name par le DNS obtenu au moment de la création du point de terminaison d'un VPC.

5.    Si Database Mail est correctement configuré, votre e-mail sera envoyé lorsque vous exécuterez cette commande SQL.

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

6.    Exécutez ensuite cette procédure stockée afin de répertorier et vérifier l'ensemble des éléments d'e-mail. Dans la colonne sent_status, vérifiez que le statut est bien « Envoyé. »

SELECT * FROM msdb.dbo.sysmail_allitems

Informations connexes

Gestion d'une instance de base de données Amazon RDS Custom for SQL Server

Utilisation de Database Mail sur Amazon RDS for SQL Server