Envoi de notifications par e-mail¶
Note
Tous les clients de Snowflake peuvent envoyer des e-mails à l’aide de cette fonction. Les e-mails envoyés à partir de la procédure stockée du système de notification sont traités par les déploiements d’Amazon Web Services (AWS) de Snowflake, à l’aide d’AWS Simple Email Service (SES). Le contenu d’un e-mail envoyé à l’aide d’AWS peut être conservé par Snowflake pendant un maximum de trente jours afin de gérer la livraison du message. Après cette période, le contenu du message est supprimé.
Cette rubrique explique comment utiliser la procédure stockée SYSTEM$SEND_EMAIL() intégrée pour envoyer des notifications par e-mail.
Dans ce chapitre :
Introduction¶
Cette fonctionnalité utilise l’objet d’intégration de notification, qui est un objet Snowflake fournissant une interface entre Snowflake et des services tiers (par exemple, des files d’attente de messages dans le Cloud, des e-mails, etc.) Un compte unique peut définir un maximum de 10 intégrations de messagerie et en activer une ou plusieurs simultanément.
Pour envoyer une notification par e-mail :
Assurez-vous que les destinataires des notifications par e-mail ont vérifié leur adresse e-mail.
Accordez le privilège d’utiliser l’intégration de notification.
Appelez la procédure stockée SYSTEM$SEND_EMAIL() pour envoyer une notification par email.
Note
Vous pouvez utiliser la fonction de table NOTIFICATION_HISTORY pour interroger l’historique des notifications envoyées par Snowpipe. Pour plus d’informations, reportez-vous à NOTIFICATION_HISTORY.
Vérification des adresses e-mail des destinataires de la notification¶
Les notifications par e-mail ne peuvent être envoyées qu’aux utilisateurs Snowflake du même compte, et ces utilisateurs doivent vérifier leur adresse e-mail via l’une des interfaces suivantes :
Création d’une intégration de notification¶
Pour créer une intégration de notification par e-mail, utilisez la commande CREATE NOTIFICATION INTEGRATION avec TYPE=EMAIL
. Définissez ALLOWED_RECIPIENTS
comme la liste des adresses e-mail qui doivent recevoir les notifications.
Note
Pour chaque adresse e-mail dans ALLOWED_RECIPIENTS
, assurez-vous que l’utilisateur Snowflake avec cette adresse e-mail a vérifié son adresse e-mail. Si vous spécifiez une adresse e-mail qui n’a pas été vérifiée, la commande CREATE NOTIFICATION INTEGRATION échoue avec une erreur.
Par exemple, pour créer une intégration de notification par e-mail nommée my_email_int
pour envoyer des e-mails à first.last@example.com
et à first2.last2@example.com
, exécutez l’instruction suivante :
CREATE NOTIFICATION INTEGRATION my_email_int
TYPE=EMAIL
ENABLED=TRUE
ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
Note
Vous pouvez définir un maximum de 10 intégrations de notification par e-mail pour un compte donné.
Pour plus de détails sur la syntaxe de cette commande, voir CREATE NOTIFICATION INTEGRATION.
Accord du privilège d’utiliser l’intégration de notification¶
Lorsque vous appelez SYSTEM$SEND_EMAIL(), vous transmettez une intégration de notification par e-mail qui est utilisée pour envoyer l’e-mail. Vous devez utiliser un rôle qui bénéficie du privilège USAGE sur cette intégration de notification par e-mail.
Pour accorder ce privilège au rôle du propriétaire ou de l’appelant, exécutez la commande GRANT <privilèges>.
Par exemple, pour accorder le privilège USAGE sur l’intégration de notification my_email_int
au rôle my_sp_owner_role
, exécutez la commande suivante :
GRANT USAGE ON INTEGRATION my_email_int TO ROLE my_sp_owner_role;
Envoi d’une notification par e-mail¶
Après avoir créé l’intégration de la notification par e-mail, vous pouvez appeler la procédure stockée SYSTEM$SEND_EMAIL pour envoyer une notification par e-mail.
Par exemple, pour utiliser l’intégration de notification my_email_int
afin d’envoyer un e-mail ayant pour objet « Alerte e-mail : la tâche A est terminée. » à person1@example.com
et à person2@example.com
, exécutez l’instruction suivante :
CALL SYSTEM$SEND_EMAIL(
'my_email_int',
'person1@example.com, person2@example.com',
'Email Alert: Task A has finished.',
'Task A has successfully finished.\nStart Time: 10:10:32\nEnd Time: 12:15:45\nTotal Records Processed: 115678'
);
Note
Si une adresse e-mail de la liste des destinataires n’est pas incluse dans la propriété ALLOWED_RECIPIENTS
de l’intégration de notification, aucun e-mail ne sera envoyé.
Le message de notification par e-mail est envoyé depuis no-reply@snowflake.net
.