Envio de notificações por e-mail

Nota

O recurso Procedimento Armazenado do Sistema de Notificação só está hospedado no Amazon Web Services (AWS). Se você optar por usar esse recurso, o provedor de hospedagem para esse recurso será o AWS e a(s) localização(ões) disponível(s) da hospedagem será(ão) a(s) indicada(s) na tabela abaixo. O conteúdo de uma mensagem enviada usando o AWS SES pode ser retido pelo Snowflake por até trinta dias para gerenciar a entrega da mensagem e depois é deletado.

Regiões com suporte do AWS

us-west-2

us-east-1

eu-west-1

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. Defina ALLOWED_RECIPIENTS para a lista de endereços de e-mail que devem receber notificações.

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 para enviar mensagens de e-mail para first.last@example.com e first2.last2@example.com, execute a seguinte instrução:

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 person1@example.com e person2@example.com, execute a seguinte instrução:

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

Nota

Se algum endereço de e-mail na lista de destinatários não estiver incluído na propriedade ALLOWED_RECIPIENTS para a integração da notificação, nenhum e-mail será enviado.

A mensagem de notificação por e-mail é enviada a partir de no-reply@snowflake.net.