メール通知の送信¶
注釈
Snowflakeをご利用のすべてのお客様が、この機能を使ってメールを送信することができます。通知システムストアドプロシージャから送信されたメールメッセージは、SnowflakeのAmazon Web Services(AWS)の展開を通じて、 AWS Simple Email Service(SES)を使用して処理されます。AWS を使用して送信されたメールメッセージのコンテンツは、メッセージの配信を管理するために最大30日間Snowflakeによって保持される場合があります。この期間を過ぎると、メッセージのコンテンツは削除されます。
このトピックでは、組み込みの SYSTEM$SEND_EMAIL()ストアドプロシージャを使用してメール通知を送信する方法について説明します。
このトピックの内容:
概要¶
この機能は、 通知統合 オブジェクトを使用します。これは、Snowflakeとサードパーティサービス(例: クラウドメッセージキュー、メールなど)の間のインターフェースを提供するSnowflakeオブジェクトです。1つのアカウントで最大10個のメール統合を定義し、1つ以上を同時に有効化できます。
メール通知を送信するには、
注釈
NOTIFICATION_HISTORY テーブル関数を使用して、Snowpipe経由で送信された通知の履歴をクエリできます。詳細については、 NOTIFICATION_HISTORY をご参照ください。
通知受信者のメールアドレスの確認¶
メール通知は、同じアカウント内のSnowflakeユーザーにのみ送信できます。これらのユーザーは、次のインターフェイスのいずれかを介してメールアドレスを確認する必要があります。
通知統合の作成¶
メール通知統合を作成するには、 TYPE=EMAIL で CREATE NOTIFICATION INTEGRATION コマンドを使用します。
この統合で通知を受信できるメールアドレスのリストを制限したい場合は、 ALLOWED_RECIPIENTS をそれらのメールアドレスのリストに設定します。 ALLOWED_RECIPIENTS を設定しない場合、ユーザーが メールアドレスを確認していれば 、統合を使用してアカウント内のどのユーザーにも通知を送ることができます。
注釈
ALLOWED_RECIPIENTS の各メールアドレスについて、そのメールアドレスを持つSnowflakeユーザーが メールアドレスを確認 していることを確認してください。確認されていないメールアドレスを指定すると、 CREATE NOTIFICATION INTEGRATION コマンドはエラーを表示して失敗します。
たとえば、 my_email_int
という名前のメール通知統合を作成するには、次のステートメントを実行します。
CREATE NOTIFICATION INTEGRATION my_email_int
TYPE=EMAIL
ENABLED=TRUE;
電子メールメッセージが first.last@example.com
と first2.last2@example.com
にのみ送信されるように通知統合を制限するには、これらのアドレスのリストに ALLOWED_RECIPIENTS を設定します。
CREATE NOTIFICATION INTEGRATION my_email_int
TYPE=EMAIL
ENABLED=TRUE
ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
注釈
特定のアカウントに対して最大10個のメール通知統合を定義できます。
このコマンドの構文の詳細については、 CREATE NOTIFICATION INTEGRATION をご参照ください。
通知統合を使用する権限の付与¶
SYSTEM$SEND_EMAIL() を呼び出すときに、メールの送信に使用するメール通知統合を渡します。このメール通知統合に対する USAGE 権限が付与されたロールを使用する必要があります。
この権限を所有者または呼び出し元のロールに付与するには、 GRANT <権限> コマンドを実行します。
たとえば、通知統合 my_email_int
に対する USAGE 権限をロール my_sp_owner_role
に付与するには、次のコマンドを実行します。
GRANT USAGE ON INTEGRATION my_email_int TO ROLE my_sp_owner_role;
メール通知の送信¶
メール通知の統合を作成した後、 SYSTEM$SEND_EMAIL ストアドプロシージャを呼び出してメール通知を送信できます。
たとえば、通知統合 my_email_int
を使用して、「メールアラート: タスクは完了しました」という件名のメールメッセージを first.last@example.com
と first2.last2@example.com
に送信するには、次のステートメントを実行します。
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'
);
注釈
通知統合の ALLOWED_RECIPIENTS プロパティを設定し、受信者リスト内のメールアドレスがそのリストにない場合、メール通知は送信されません。
Amazon Web Services(AWS)クラウドプラットフォームを使用している場合、メール通知メッセージは no-reply@snowflake.net
から送信されます。Google Cloud Platform(GCP)またはMicrosoft Azure(Azure)クラウドプラットフォームを使用している場合、メール通知メッセージは do-not-reply@snowflake.net
から送信されます。