Envoi de notifications par e-mail¶
Note
La fonction de procédure stockée du système de notification est uniquement hébergée sur Amazon Web Services (AWS). Si vous choisissez d’utiliser cette fonction, le fournisseur d’hébergement pour cette fonction sera AWS et le(s) lieu(x) d’hébergement disponible(s) seront ceux indiqués dans le tableau ci-dessous. Le contenu d’un message envoyé à l’aide de AWS SES peut être conservé par Snowflake pendant un maximum de trente jours afin de gérer la livraison du message et est ensuite supprimé.
Régions AWS prises en charge |
---|
us-west-2 |
us-east-1 |
eu-west-1 |
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 :
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
:
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<integration_name>
TYPE=EMAIL
ENABLED={TRUE|FALSE}
ALLOWED_RECIPIENTS=('<email_address_1>' [, ... '<email_address_N>'])
[ COMMENT = '<string_literal>' ]
;
Où :
integration_name
est le nom de la nouvelle intégration.'email_address_1' [, ... 'email_address_N']
est une liste d’adresses e-mail séparées par des virgules (chacune entourée de guillemets simples) qui peuvent recevoir des e-mails de notification de cette intégration.Ces adresses e-mail doivent être associées à des utilisateurs dans le compte actuel. Les adresses e-mail doivent être vérifiées.
Le nombre maximum d’adresses e-mail que vous pouvez spécifier est 50.
'string_literal'
spécifie un commentaire facultatif pour l’intégration.
Par exemple :
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.
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 :
Pour chaque adresse e-mail spécifiée dans le paramètre ALLOWED_RECIPIENTS
de l’intégration de la notification par e-mail, assurez-vous que l’utilisateur Snowflake correspondant a vérifié cette adresse e-mail.
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 SYSTEM$SEND_EMAIL()
pour envoyer une notification par e-mail, comme suit :
CALL SYSTEM$SEND_EMAIL(
'<integration_name>',
'<email_address_1> [, ... <email_address_N>]',
'<email_subject>',
'<email_content>'
);
où :
integration_name
est le nom de l’intégration de notification.email_address_1 [, ... email_address_N]
est une chaîne, séparée par des virgules, d’une ou plusieurs adresses e-mail sans guillemets qui peuvent recevoir des e-mails de notification de cette intégration.Les adresses e-mail de cette liste doivent figurer dans les
ALLOWED_RECIPIENTS
spécifiés dans l’intégration de notification.email_subject
est la ligne d’objet de la notification par e-mail. Vous ne pouvez pas spécifier une chaîne vide.email_content
est le corps de l’e-mail. Vous ne pouvez pas spécifier une chaîne vide.Snowflake ne prend actuellement en charge que les e-mails en texte brut.
Par exemple :
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 le paramètre ALLOWED_RECIPIENTS
de l’intégration de notification, aucun e-mail ne sera envoyé.
Dans le message de notification par e-mail, l’adresse From:
est no-reply@snowflake.net
.