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:
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;
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');
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;
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'
);
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
.