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

Dernière mise à jour : 28/09/2022

Je veux envoyer des e-mails à l'aide de la fonction Amazon Simple Email Service (Amazon SES). Comment procéder via une instance Amazon Relational Database Service (Amazon RDS) for SQL Server hébergée sur un sous-réseau privé ou public ?

Brève description

Afin d'envoyer un e-mail avec Amazon SES via une instance de base de données Amazon RDS for SQL Server, créez d'abord vos informations d'identification SMPT (Simple Mail Protocol Transfer) à l'aide d'Amazon SES. Créez ensuite 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é, configurez le point de terminaison d'un VPC afin de l'utiliser dans votre profil Database Mail.

Solution

Configuration d'Amazon SES

1.    Ouvrez la console Amazon SES, puis sélectionnez SMTP settings (Paramètres SMTP).

2.    Notez les valeurs répertoriées pour le Server name (Nom du serveur) et le Port.

3.    Sélectionnez Create SMTP Credentials (Créer des informations d'identification SMTP). Cette action entraîne l'ouverture de la console AWS Identity and Access Management (IAM).

4.    Pour IAM User Name (Nom d'utilisateur IAM), saisissez un utilisateur ou poursuivez avec l'utilisateur par défaut. Cliquez ensuite sur Create (Créer).

5.    Sélectionnez Download Credentials (Télécharger les informations d'identification). Vos informations d'identification SMTP ne pourront plus être téléchargées lors des étapes ultérieures, assurez-vous donc de les enregistrer dans un endroit sûr.

6.    Ouvrez la console Amazon SES, puis cliquez sur Email Addresses (Adresses e-mail).

7.    Sélectionnez Verify a new email address (Vérifier une nouvelle adresse e-mail), puis saisissez l'adresse e-mail à laquelle vous voulez recevoir un e-mail de confirmation.

8.    Après avoir confirmé votre adresse e-mail, confirmez que votre Verification status (Statut de vérification) est verified (vérifié).

Configuration d'un groupe de paramètres Database Mail

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

1.    Ouvrez la console Amazon RDS, puis sélectionnez Parameter groups (Groupes de paramètres) dans le panneau de navigation.

2.    Cliquez sur Create parameter group (Créer un groupe de paramètres).

3.    Pour Parameter group family (Famille de groupes de paramètres), sélectionnez 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 Group name (Nom de groupe) ainsi qu'une Description, puis cliquez sur Create (Créer).

5.    Sur la page Parameter groups (Groupes de paramètres), sélectionnez le groupe que vous avez créé.

6.    Cliquez sur Edit parameters (Modifier les paramètres) et cochez la case correspondant à database mail xps.

7.    Pour Values (Valeurs), sélectionnez 1.

8.    Enregistrez vos modifications.

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

9.    Dans la console Amazon RDS, sélectionnez Database (Base de données), puis Modify (Modifier).

10.    Sous Database options (Options de base de données), sélectionnez le paramètre que vous avez précédemment configuré, puis cliquez sur Continue (Continuer).

11.    Sous Scheduling of modifications (Planification des modifications), sélectionnez Immediately (Immédiatement).

12.    Cliquez sur Modify DB Instance (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.

Cependant, si votre instance se trouve dans un sous-réseau privé, l'erreur suivante peut s'afficher lors de la configuration de Database Mail :

« The mail could not be sent to the recipients because of the mail server failure.(Sending Mail using Account 1 (2020-12-08T22:20:51). Exception Message: Could not connect to mail server. (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 52.63.118.124:587). » (L'e-mail n'a pas pu être envoyé aux destinataires en raison d'une défaillance du serveur de messagerie : envoi d'e-mail via le compte 1 le 08/12/2020 à 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 une certaine période de 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. Afin de résoudre ce problème, créez un point de terminaison d'un VPC pour Amazon SNS.

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

2.    Créez un nouveau groupe de sécurité avec une règle de trafic entrant vers le groupe de sécurité associé à votre instance. Pour Type, sélectionnez Custom TCP (TCP personnalisé). Pour Port range (Plage de ports), saisissez le numéro de port que vous voulez utiliser pour envoyer des e-mails. Vous pouvez utiliser 25, 465, 587, 2465 ou 2587. Pour Source type (Type de source), sélectionnez Custom (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 disponible, sélectionnez-le, puis copiez la première entrée trouvée sous 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 que vous avez obtenu lors de la création du point de terminaison d'un VPC.

5.    Si vous avez correctement configuré Database Mail, l'e-mail est envoyé avec succès lorsque vous exécutez 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.    Ensuite, exécutez 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 envoyé.

SELECT * FROM msdb.dbo.sysmail_allitems

Cet article vous a-t-il été utile ?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?