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 :

  1. Assurez-vous que les destinataires des notifications par e-mail ont vérifié leur adresse e-mail.

  2. Créez une intégration de notification.

  3. Accordez le privilège d’utiliser l’intégration de notification.

  4. 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.

Si vous souhaitez restreindre la liste des adresses e-mail qui peuvent recevoir des notifications par le biais de cette intégration, définissez ALLOWED_RECIPIENTS sur la liste de ces adresses e-mail. Si vous ne définissez pas ALLOWED_RECIPIENTS, l’intégration peut être utilisée pour envoyer des notifications à n’importe quel utilisateur du compte, à condition que l’utilisateur ait vérifié son adresse e-mail.

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, exécutez l’instruction suivante :

CREATE NOTIFICATION INTEGRATION my_email_int
  TYPE=EMAIL
  ENABLED=TRUE;
Copy

Pour restreindre l’intégration de la notification de manière à ce que les messages électroniques ne soient envoyés qu’à first.last@example.com et first2.last2@example.com, ajoutez ALLOWED_RECIPIENTS à la liste de ces adresses :

CREATE NOTIFICATION INTEGRATION my_email_int
  TYPE=EMAIL
  ENABLED=TRUE
  ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
Copy

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

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. » à first.last@example.com et à first2.last2@example.com, exécutez l’instruction suivante :

CALL SYSTEM$SEND_EMAIL(
    'my_email_int',
    'first.last@example.com, first2.last2@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'
);
Copy

Note

Si vous définissez la propriété ALLOWED_RECIPIENTS de l’intégration de la notification et qu’une adresse e-mail de la liste des destinataires n’est pas sur cette liste, aucune notification par e-mail n’est envoyée.

Si vous êtes sur la plateforme Cloud Amazon Web Services (AWS), le message de notification par e-mail est envoyé depuis no-reply@snowflake.net. Si vous êtes sur la plateforme Cloud Google Cloud Platform (GCP) ou Microsoft Azure (Azure), le message de notification par e-mail est envoyé depuis do-not-reply@snowflake.net.