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 :

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

  2. Assurez-vous que les destinataires de la notification par e-mail ont vérifié leur adresse e-mail.

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

  4. Appelez SYSTEM$SEND_EMAIL() 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.

Revenir au début