Envoi d'e-mails à l'aide de Database Mail - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoi d'e-mails à l'aide de Database Mail

Pour envoyer des e-mails à l'aide de Database Mail, vous devez utiliser la procédure stockée sp_send_dbmail.

Utilisation

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'profile_name', @recipients = 'recipient1@example.com[; recipient2; ... recipientn]', @subject = 'subject', @body = 'message_body', [@body_format = 'HTML'], [@file_attachments = 'file_path1; file_path2; ... file_pathn'], [@query = 'SQL_query'], [@attach_query_result_as_file = 0|1]';

Les paramètres suivants sont obligatoires :

  • @profile_name – Nom du profil Database Mail à partir duquel envoyer le message doit être envoyé.

  • @recipients – Liste des adresses e-mail, délimitées par des points-virgules, auxquelles le message doit être envoyé.

  • @subject – Objet du message.

  • @body – Corps du message. Vous pouvez également utiliser une variable déclarée comme corps.

Les paramètres suivants sont facultatifs :

  • @body_format— Ce paramètre est utilisé avec une variable déclarée pour envoyer un e-mail au HTML format.

  • @file_attachments – Liste des pièces jointes de message délimitées par des points-virgules. Les chemins d'accès aux fichiers doivent être des chemins absolus.

  • @query— Une SQL requête à exécuter. Les résultats de la requête peuvent être joints sous forme de fichier ou inclus dans le corps du message.

  • @attach_query_result_as_file – Permet d'indiquer si les résultats de la requête doivent être joints sous forme de fichier. À définir sur 0 pour si la réponse est négative et sur 1 si elle est positive. La valeur par défaut est 0.

Exemples

Les exemples suivants montrent comment envoyer des e-mails.

Exemple envoi d'un message à un seul destinataire
USE msdb GO EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'nobody@example.com', @subject = 'Automated DBMail message - 1', @body = 'Database Mail configuration was successful.'; GO
Exemple envoi d'un message à plusieurs destinataires
USE msdb GO EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'recipient1@example.com;recipient2@example.com', @subject = 'Automated DBMail message - 2', @body = 'This is a message.'; GO
Exemple de l'envoi d'un résultat de SQL requête sous forme de pièce jointe
USE msdb GO EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'nobody@example.com', @subject = 'Test SQL query', @body = 'This is a SQL query test.', @query = 'SELECT * FROM abc.dbo.test', @attach_query_result_as_file = 1; GO
Exemple de l'envoi d'un message au HTML format
USE msdb GO DECLARE @HTML_Body as NVARCHAR(500) = 'Hi, <h4> Heading </h4> </br> See the report. <b> Regards </b>'; EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'nobody@example.com', @subject = 'Test HTML message', @body = @HTML_Body, @body_format = 'HTML'; GO
Exemple envoi d'un message à l'aide d'un déclencheur lorsqu'un événement spécifique se produit dans la base de données
USE AdventureWorks2017 GO IF OBJECT_ID ('Production.iProductNotification', 'TR') IS NOT NULL DROP TRIGGER Purchasing.iProductNotification GO CREATE TRIGGER iProductNotification ON Production.Product FOR INSERT AS DECLARE @ProductInformation nvarchar(255); SELECT @ProductInformation = 'A new product, ' + Name + ', is now available for $' + CAST(StandardCost AS nvarchar(20)) + '!' FROM INSERTED i; EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'nobody@example.com', @subject = 'New product information', @body = @ProductInformation; GO