41.9 SENDファンクションのシグネチャ2

このファンクションは、APEXのメール・キューにメールを追加した後にメールIDを返します。メールIDをadd_attachmentへのコールで使用すると、既存のメールに添付を追加できます。

メールは電子メール・テンプレートに基づいており、JSON文字列として指定されたプレースホルダに値が代入されます。

構文

APEX_MAIL.SEND (
    p_template_static_id    IN VARCHAR2,
    p_placeholders          IN CLOB,
    p_to                    IN VARCHAR2,
    p_cc                    IN VARCHAR2 DEFAULT NULL,
    p_bcc                   IN VARCHAR2 DEFAULT NULL,
    p_from                  IN VARCHAR2 DEFAULT NULL,
    p_replyto               IN VARCHAR2 DEFAULT NULL,
    p_application_id        IN NUMBER   DEFAULT apex_application.g_flow_id,
    p_language_override     IN VARCHAR2 DEFAULT NULL );
    RETURN NUMBER;

パラメータ

パラメータ 説明
p_template_static_id 共有コンポーネント電子メール・テンプレートの識別に使用される、静的な識別子文字列。
p_placeholders 値が代入されるプレースホルダ名を表すJSON文字列。
p_to 電子メールの送信先となる有効な電子メール・アドレス(必須)。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。
p_cc 電子メールの内容のコピー先となる有効な電子メール・アドレス。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。
p_bcc 電子メールの内容のブラインド・コピー先となる有効な電子メール・アドレス。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。
p_from

これは、電子メールの送信元となる有効な電子メール・アドレスである必要があります。

p_fromが指定されていない場合:

  • 「アプリケーションの電子メール送信元アドレス」が使用されます(「アプリケーション定義」で指定されている場合)
  • それ以外の場合は、p_replytoが使用されます(指定されている場合)
  • それ以外の場合は、p_toが使用されます

p_toまたはp_replytoに複数の電子メール・アドレスが含まれている場合は、p_fromが必要です。

インスタンス管理者がインスタンス・レベルで「デフォルトの電子メール送信元アドレス」をすでに定義している場合、"p_from"が指定されているかどうかに関係なく、このアドレスが「送信元」アドレスとして常に使用されます。

p_replyto

有効な電子メール・アドレスを指定して、手動生成した応答をp_fromで指定したアドレスではなくこのアドレスに送信するように受信者の電子メール・クライアントに指示します。このパラメータの使用方法は次のとおりです。

  • p_replytoパラメータを省略した場合、返信先のメール・ヘッダーにはp_fromパラメータに指定された値が設定されます
  • p_replytoパラメータにNULLを指定した場合、返信先のメール・ヘッダーにはNULLが設定されます。この結果、電子メールの自動返信は行われません
  • p_replytoパラメータにNULL以外の値(有効な電子メール・アドレスなど)を指定した場合、メッセージを送信しても、自動返信は指定されたアドレスに対して行われます(有効な電子メール・アドレスなど)
p_application_id 電子メール・テンプレートが定義されているアプリケーションID。デフォルトでは現在のアプリケーションに設定されます(アプリケーション内からコールされる場合)。
p_language_override 使用する翻訳済テンプレートの言語。ここでは、"en""fr""de-at"などの言語コードを使用します。この言語のアプリケーション翻訳が存在する必要があります。存在しない場合、引数は無視されます。

ノート:

APEXアプリケーションのコンテキスト外から(たとえば、データベース・スケジューラ・ジョブから) SENDファンクションをコールする場合は、p_application_idパラメータを指定する必要があります。

DECLARE
    l_mail_id number;
BEGIN
    l_mail_id := apex_mail.send (
        p_template_static_id => 'ORDER',
        p_placeholders       => '{ "ORDER_NUMBER": 5321, "ORDER_DATE": "01-Feb-2018", "ORDER_TOTAL": "$12,000" }',
        p_to                 => 'some_user@example.com' );

    apex_mail.add_attachment (
        p_mail_id    => l_mail_id,
        p_attachment => ... );
END;