プライマリ・コンテンツに移動
Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド
リリース18.1
E98591-01
目次へ移動
目次
索引へ移動
索引

前
次

17.7 電子メール・テンプレートの管理

電子メール・テンプレートを作成することで、ユーザーがアプリケーションから電子メールを送信できるようにします。

注意:

アプリケーションから電子メールを送信するには、インスタンス管理者がOracle Application Express管理サービスにログインし、インスタンスの設定ページにナビゲートして、「電子メール」属性を構成する必要があります。

関連項目:

  • 『Oracle Application Express管理ガイド』電子メールの構成に関する説明

  • 『Oracle Application Express APIリファレンス』APEX_MAILに関する項

17.7.1 電子メール・テンプレートの定義

アプリケーションの電子メール・テンプレートを定義します。電子メール・テンプレートには、HTMLフォーマットとプレーン・テキスト・フォーマットの両方が含まれます。

電子メール・テンプレートを定義するには、次のステップを実行します。

  1. 共有コンポーネント・ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

      共有コンポーネント・ページが表示されます。

  2. 「他のコンポーネント」で、「電子メール・テンプレート」を選択します。
  3. 電子メール・テンプレート・ページで、「作成」をクリックします。
    詳細ページが表示されます。

    ヒント:

    開始するには、ページの右側にある「サンプル・テンプレート」で使用可能なサンプルの電子メール・テンプレートを確認します。サンプルの電子メール・テンプレートをロードするには、単にそれを選択します。サンプルの電子メール・テンプレートの表示を参照してください。

  4. 次に、テンプレートを定義します。

    ヒント:

    「電子メールの件名」「HTMLフォーマット」または「プレーン・テキスト・フォーマット」は、#STRING_NAME#の形式を使用した置換文字列をサポートしています。APEX_MAIL APIを使用して、これらの文字列に値を渡すことができます。

  5. 「指定」で、次の項目を指定します。
    1. テンプレート名: このテンプレートのわかりやすい名前を入力します。
    2. 静的識別子: APEX_MAIL APIをコールするときにテンプレートを参照するために使用される静的文字列識別子。
    3. 電子メールの件名: 電子メールの件名に表示するテキストを入力します。
  6. 「HTMLフォーマット」で、次のステップを実行します。
    1. ヘッダー、本文およびフッターを定義します。本文では、基本的なHTMLマークアップをサポートしています。
    2. 「詳細」で、必要に応じて「デフォルトHTMLのロード」をクリックします。
      デフォルトHTMLは、HTMLテンプレートに表示されます。必要に応じて、デフォルトのHTMLテンプレートを編集します。
  7. 「プレーン・テキスト・フォーマット」で、適切なテンプレートのデフォルト値を入力します。
  8. 「コメント」で、必要に応じてこのテンプレートを説明するコメントを入力します。
  9. 「電子メール・テンプレートの作成」をクリックします。
    次に、ボタンおよびプロセスを作成してAPEX_MAIL APIをコールします。
  10. 「メールの送信」ボタンを追加します。
    1. 電子メールの送信元のアプリケーションに戻ります。
    2. 適切なページに移動するか、新規ページを作成します。
    3. ボタンを追加して電子メールを送信します。
    4. APEX_MAIL APIをコールするPL/SQLプロセスを作成します。

      次の例を検討してください:

      begin
          apex_mail.send (
              p_to                 => 'steven.king@example.com',
              p_template_static_id => 'ORDER_CONFIRMATION',
              p_placeholders       => q'~
              {
                  "CUSTOMER_NAME": "Steven King",
                  "ORDER_NUMBER": 1234,
                  "ORDER_DATE": "02-Feb-2018",
                  "SHIP_TO": "Steven King",
                  "SHIPPING_ADDRESS_LINE_1": "2004 Charade Rd",
                  "SHIPPING_ADDRESS_LINE_2": "Seattle, Washinton",
                  "ITEMS_ORDERED": 3,
                  "ORDER_TOTAL": "$ 1,200.99",
                  "ORDER_URL": "http://domain/apex/f?p=&APP_ID"        
               }~' );
          apex_mail.push_queue;
      end;
    5. ページを実行し、「メールの送信」ボタンをクリックします。

関連項目:

17.7.2 サンプルの電子メール・テンプレートの表示

サンプルの電子メール・テンプレート(「オーダー詳細のロード」、「イベント・リマインダのロード」または「スケジュール済停止のロード」)を表示します。

サンプルの電子メール・テンプレートを表示するには、次のステップを実行します。

  1. 共有コンポーネント・ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

      共有コンポーネント・ページが表示されます。

  2. 「他のコンポーネント」で、「電子メール・テンプレート」を選択します。
  3. 電子メール・テンプレート・ページで、「作成」をクリックします。
    詳細ページが表示されます。
  4. ページの右側で、「サンプル・テンプレート」リージョンを検索します。
    「サンプル・テンプレート」リージョンには、3つのテンプレートが含まれています。
    • オーダー詳細のロード

    • イベント・リマインダのロード

    • スケジュール済停止のロード

  5. テンプレートを選択します。たとえば、「オーダー詳細のロード」を選択します。
    テンプレートが表示されます。
  6. ページの下部にある「サンプルAPIの使用状況」リージョンを展開して、例を参照してください。次は、「オーダー詳細のロード」のAPIの例です。
    begin
        apex_mail.send (
            p_to                 => email_address_of_user,
            p_template_static_id => '',
            p_placeholders       => '{'
            '    "CUSTOMER_NAME":'           || apex_json.stringify( some_value )
            '   ,"ITEMS_ORDERED":'           || apex_json.stringify( some_value )
            '   ,"MY_APPLICATION_LINK":'     || apex_json.stringify( some_value )
            '   ,"ORDER_DATE":'              || apex_json.stringify( some_value )
            '   ,"ORDER_NUMBER":'            || apex_json.stringify( some_value )
            '   ,"ORDER_TOTAL":'             || apex_json.stringify( some_value )
            '   ,"ORDER_URL":'               || apex_json.stringify( some_value )
            '   ,"SHIPPING_ADDRESS_LINE_1":' || apex_json.stringify( some_value )
            '   ,"SHIPPING_ADDRESS_LINE_2":' || apex_json.stringify( some_value )
            '   ,"SHIP_TO":'                 || apex_json.stringify( some_value )
            '}' );
    end;

17.7.3 動的テキストの組込みについて

既存の置換修飾子を使用して電子メール・テンプレートに動的テキストを指定します。

セキュリティ上の理由で、電子メール・テンプレートのプレースホルダ(#NAME#)で置換される値は、コンテキストに基づいて自動的にエスケープされます。つまり、HTML形式のテンプレートにはHTMLエスケープが含まれ、プレーン・テキスト・テンプレートには含まれません。これがご使用の環境での希望する動作でない場合、既存の置換修飾子を使用して、HTMLタグが含まれる動的テキストを入力できます。

  • #NAME!RAW#: テキストがそのままの状態で置換されます。

  • #NAME!STRIPHTML#: すべてのHTMLタグが削除されます。

電子メール・テンプレートの拡張

たとえば、次を指定してHTMLフォーマットの本文のテンプレートを拡張できます。

<tr>
        left”>Additional Information</th>
        <td>#ADDITIONAL_INFO!RAW#</td>
</tr>

同様に、次を指定してプレーン・テキスト・フォーマットのテンプレートを拡張できます。

  Additional Info:  #ADDITIONAL_INFO!STRIPHTML#

サンプルのPL/SQL

PL/SQLコードは次のようになります。

begin
    apex_mail.send (
        p_to                 => 'steven.king@example.com',
        p_template_static_id => 'ORDER_CONFIRMATION',
        p_placeholders       => q'~
        {
            "CUSTOMER_NAME": "Steven King",
            "ORDER_NUMBER": 1234,
            "ORDER_DATE": "02-Feb-2018",
            "SHIP_TO": "Steven King",
            "SHIPPING_ADDRESS_LINE_1": "2004 Charade Rd",
            "SHIPPING_ADDRESS_LINE_2": "Seattle, Washinton",
            "ITEMS_ORDERED": 3,
            "ORDER_TOTAL": "$ 1,200.99",
            "ORDER_URL": "http://domain/apex/f?p=&APP_ID" 
               "ADDITIONAL_INFO": "We plan to deliver your ordered items <strong>tomorrow morning between 08:00 and 09:00</strong>       
         }~' );
    apex_mail.push_queue;
end;

17.7.4 電子メール・テンプレートの編集

既存の電子メール・テンプレートを編集または削除します。

電子メール・テンプレートを編集または削除するには、次のステップを実行します。

  1. 共有コンポーネント・ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

      共有コンポーネント・ページが表示されます。

  2. 「他のコンポーネント」で、「電子メール・テンプレート」を選択します。
    電子メール・テンプレート・ページが表示されます。
  3. 電子メール・テンプレートを編集するには、次のステップを実行します。
    1. 電子メール・テンプレート名をクリックします。
    2. 対象となる属性を編集します。
    3. 「変更の適用」をクリックします。
  4. 電子メール・テンプレートを削除するには、次のステップを実行します。
    1. 電子メール・テンプレート名をクリックします。
    2. 「削除」をクリックします。