Envio de notificações por e-mail

Nota

Todos os clientes do Snowflake podem enviar mensagens de e-mail usando esse recurso. As mensagens de e-mail enviadas do procedimento armazenado do sistema de notificações são processadas por meio das implantações do Amazon Web Services do Snowflake (AWS) usando AWS Simple Email Service (SES). O conteúdo de uma mensagem de e-mail enviada usando AWS pode ser retido pela Snowflake por até trinta dias para gerenciar a entrega da mensagem. Após esse período, o conteúdo da mensagem é excluído.

Este tópico explica como usar o procedimento armazenado integrado SYSTEM$SEND_EMAIL() para enviar notificações por e-mail.

Neste tópico:

Introdução

Este recurso utiliza o objeto notificação de integração, que é um objeto Snowflake que fornece uma interface entre o Snowflake e serviços de terceiros (por exemplo, filas de mensagens em nuvem, e-mail etc.). Uma única conta pode definir um máximo de dez integrações de e-mail e habilitar uma ou mais simultaneamente.

Para enviar uma notificação por e-mail:

  1. Certifique-se de que os destinatários pretendidos das notificações por e-mail tenham endereços de e-mail verificados.

  2. Crie uma integração de notificação.

  3. Conceda o privilégio para usar a integração da notificação.

  4. Chame o procedimento armazenado SYSTEM$SEND_EMAIL() para enviar uma notificação por e-mail.

Nota

Você pode usar a função de tabela NOTIFICATION_HISTORY para consultar o histórico das notificações enviadas pelo Snowpipe. Para obter mais informações, consulte NOTIFICATION_HISTORY.

Verificação dos endereços de e-mail dos destinatários da notificação

As notificações por e-mail só podem ser enviadas aos usuários do Snowflake dentro da mesma conta, e esses usuários devem verificar seus endereços de e-mail por uma das seguintes interfaces:

Criação da integração de notificação

Para criar uma integração de notificação por e-mail, use o comando CREATE NOTIFICATION INTEGRATION com TYPE=EMAIL.

Se você quiser restringir a lista de endereços de e-mail que podem receber notificações por meio desta integração, defina ALLOWED_RECIPIENTS como a lista desses endereços de e-mail. Se você não definir ALLOWED_RECIPIENTS, a integração poderá ser usada para enviar notificações a qualquer usuário da conta, desde que o usuário tenha verificado seu endereço de e-mail.

Nota

Para cada endereço de e-mail em ALLOWED_RECIPIENTS, certifique-se de que o usuário Snowflake com esse endereço de e-mail tenha verificado seu endereço de e-mail. Se você especificar um endereço de e-mail que não tenha sido verificado, o comando CREATE NOTIFICATION INTEGRATION falha com um erro.

Por exemplo, para criar uma integração de notificação por e-mail chamada my_email_int, execute a seguinte instrução:

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

Para restringir a integração de notificações para que as mensagens de e-mail possam ser enviadas apenas para first.last@example.com e first2.last2@example.com, defina ALLOWED_RECIPIENTS para a lista desses endereços:

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

Nota

Você pode definir um máximo de dez integrações de notificação por e-mail para uma determinada conta.

Para obter mais detalhes sobre a sintaxe deste comando, consulte CREATE NOTIFICATION INTEGRATION.

Concessão do privilégio para usar a integração de notificação

Ao chamar SYSTEM$SEND_EMAIL(), você passa em uma integração de notificação por e-mail que é usada para enviar o e-mail. Você deve usar uma função com o privilégio USAGE na integração desta notificação por e-mail.

Para conceder este privilégio à função do proprietário ou chamador, execute o comando GRANT <privilégios>.

Por exemplo, para conceder o privilégio USAGE na integração da notificação my_email_int à função my_sp_owner_role, execute o seguinte comando:

GRANT USAGE ON INTEGRATION my_email_int TO ROLE my_sp_owner_role;
Copy

Envio de uma notificação por e-mail

Após criar a integração da notificação por e-mail, você pode chamar o procedimento armazenado SYSTEM$SEND_EMAIL para enviar uma notificação por e-mail.

Por exemplo, para usar a integração de notificação my_email_int para enviar uma mensagem de e-mail com a linha de assunto “Alerta por e-mail: tarefa A concluída” para first.last@example.com e first2.last2@example.com, execute a seguinte instrução:

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

Nota

Se você definir a propriedade ALLOWED_RECIPIENTS da integração de notificação e qualquer endereço de e-mail na lista de destinatários não for essa lista, nenhuma notificação por e-mail será enviada.

Se você estiver na plataforma de nuvem Amazon Web Services (AWS), a mensagem de notificação por e-mail será enviada de no-reply@snowflake.net. Se você estiver na plataforma de nuvem Google Cloud Platform (GCP) ou Microsoft Azure (Azure), a mensagem de notificação por email será enviada de do-not-reply@snowflake.net.