メール通知の送信¶
注釈
通知システムのストアドプロシージャ機能は、Amazon Web Services(AWS)でのみホストされています。この機能の使用を選択した場合、この機能のホスティングプロバイダーは AWS になり、ホスティングを利用できる場所は以下のテーブルに示されているとおりになります。AWS SES を使用して送信されたメッセージの内容は、メッセージの配信を管理するために最大30日間Snowflakeによって保持される場合があり、その後削除されます。
サポートされている AWS リージョン |
---|
us-west-2 |
us-east-1 |
eu-west-1 |
このトピックでは、組み込みの SYSTEM$SEND_EMAIL()
ストアドプロシージャを使用してメール通知を送信する方法について説明します。
このトピックの内容:
概要¶
この機能は、 通知統合 オブジェクトを使用します。これは、Snowflakeとサードパーティサービス(例: クラウドメッセージキュー、メールなど)の間のインターフェースを提供するSnowflakeオブジェクトです。1つのアカウントで最大10個のメール統合を定義し、1つ以上を同時に有効化できます。
メール通知を送信するには、
通知統合の作成¶
メール通知統合を作成するには、 TYPE=EMAIL
で CREATE NOTIFICATION INTEGRATION コマンドを使用します。
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>' ]
;
条件:
integration_name
は、新しい統合の名前です。'email_address_1' [, ... 'email_address_N']
は、この統合からの通知メールを受信できるメールアドレス(それぞれを一重引用符で囲む)のコンマで区切られたリストです。これらのメールアドレスは、現在のアカウントのユーザーに関連付けられている必要があります。 メールアドレスを確認する必要があります。
指定できるメールアドレスの最大数は50です。
'string_literal'
統合のオプションのコメントを指定します。
例:
CREATE NOTIFICATION INTEGRATION my_email_int
TYPE=EMAIL
ENABLED=TRUE
ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com')
;
注釈
特定のアカウントに対して最大10個のメール通知統合を定義できます。
このコマンドの構文の詳細については、 CREATE NOTIFICATION INTEGRATION をご参照ください。
通知受信者のメールアドレスの確認¶
メール通知は、同じアカウント内のSnowflakeユーザーにのみ送信できます。これらのユーザーは、次のインターフェイスのいずれかを介してメールアドレスを確認する必要があります。
メール通知統合 の ALLOWED_RECIPIENTS
パラメーターで指定された各メールアドレスについて、対応するSnowflakeユーザーがそのメールアドレスを確認していることを確認してください。
通知統合を使用する権限の付与¶
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()
を呼び出してメール通知を送信できます。
CALL SYSTEM$SEND_EMAIL(
'<integration_name>',
'<email_address_1> [, ... <email_address_N>]',
'<email_subject>',
'<email_content>'
);
条件:
integration_name
は、 通知統合 の名前です。email_address_1 [, ... email_address_N]
は、この統合からの通知メールを受信できる、引用符で囲まれていない1つ以上のメールアドレスのコンマで区切られた文字列です。このリストのメールアドレスは、 通知統合 で指定された
ALLOWED_RECIPIENTS
に含まれている必要があります。email_subject
は、メール通知の件名です。空の文字列は指定できません。この
email_content
は、メールの本文です。空の文字列は指定できません。Snowflakeは現在、プレーンテキストメールのみをサポートしています。
例:
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'
);
注釈
受信者リストのメールアドレスが通知統合の ALLOWED_RECIPIENTS
パラメーターに含まれていない場合、メールは送信されません。
メール通知メッセージでは、 From:
アドレスは no-reply@snowflake.net
です。