機械翻訳について

Oracle APEXから電子メールを送信

APEX_MAILパッケージを使用して、Autonomous DatabaseにデプロイされたOracle APEXアプリケーションから電子メールを送信できます。

APEX_MAILを使用する前に、Oracle APEXから電子メールを配信するSMTPサーバーを構成する必要があります。 Autonomous DatabaseOracle APEXは、「Oracle Cloud Infrastructure電子メール配信」サービスおよびサード・パーティの電子メール・プロバイダをサポートします。

「OCI電子メール配信」の構成

Oracle APEXインスタンスは、「OCI電子メール配信」サービスを利用してAPEXアプリケーションから電子メールを送信できます。

「OCI電子メール配信」サービスを使用するようにAPEX_MAIL機能を構成するには:

  1. 電子メール配信用のSMTP接続エンドポイントを指定します。 エンドポイントは、ステップ4でAPEXインスタンスのSMTPホストとして構成します。 現在のリージョンで電子メール配信を使用できない場合は、追加のOracle Cloud Infrastructureリージョンをサブスクライブする必要がある場合があります。 詳細は、「SMTP接続の構成」を参照してください。
  2. 電子メール配信用のSMTP資格証明の生成。 APEXインスタンスは、電子メールの送信時に資格証明を使用して電子メール配信サーバーで認証します。 詳細については、「SMTP資格証明の作成」を参照してください。
  3. eメール配信の承認済送信者を作成します。 APEX_MAIL.SENDコールで「差出人」として使用するすべてのEメール・アドレス、アプリケーション内のアプリケーションEメールの「差出人」アドレス、またはSMTP_FROMインスタンス・パラメータでこのステップを完了する必要があります。 詳細は、「承認済送信者の管理」を参照してください。
  4. SQLクライアントを使用してAutonomous DatabaseにADMINユーザーとして接続し、APEX_INSTANCE_ADMIN.SET_PARAMETERを使用して次のSMTPパラメータを構成します:
    • SMTP_HOST_ADDRESS: ステップ1からSMTP接続エンドポイントを指定します
    • SMTP_USERNAME: ステップ2からSMTP資格証明ユーザー名を指定します
    • SMTP_PASSWORD: ステップ2からSMTP資格証明のパスワードを指定します
    • SMTP_HOST_PORT: このパラメータのデフォルト値の保持(587)
    • SMTP_TLS_MODE: このパラメータのデフォルト値の保持(STARTTLS)
    たとえば:
    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.email.us-phoenix-1.oci.oraclecloud.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'ocid1.user.oc1.username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    詳細については、APEX_INSTANCE_ADMINを参照してください。

詳細については、「電子メール配信の概要」を参照してください。

サード・パーティのEメール・プロバイダの構成

Oracle APEXインスタンスは、サード・パーティのEメール・プロバイダを使用してAPEXアプリケーションからEメールを送信できます。

APEXでサード・パーティの電子メール・プロバイダを構成する前に、次の前提条件が満たされていることを確認してください:

  • プライベート・エンドポイントを使用するようにAutonomous Databaseを構成する必要があります。
  • 電子メール・プロバイダのSMTPエンドポイント(ポート25または587)には、Autonomous DatabaseがプロビジョニングされているVirtual Cloud Network (VCN)およびサブネットからアクセスできる必要があります。

詳細については、「プライベート・エンドポイントを使用したネットワーク・アクセスの構成」を参照してください。

前述の前提条件が満たされた後:

  1. SMTPエンドポイントの次のアクセス制御リストをADMINとして追加します(private_targetパラメータに注意してください):
    BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => 'smtp.example.com',
        ace => XS$ACE_TYPE(
          privilege_list => XS$NAME_LIST('SMTP'),
          principal_name => APEX_APPLICATION.g_flow_schema_owner,
          principal_type => XS_ACL.ptype_db),
        private_target => true);
    END;
    /

    ノート:

    ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティをPRIVATE_ENDPOINTに設定した場合、APEXからアクセスするために、個々のSMTPエンドポイントのアクセス制御リストを定義する必要はありません。 詳細については、「プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化」を参照してください。
  2. SQLクライアントを使用してADMINユーザーとしてAutonomous Databaseに接続し、APEX_INSTANCE_ADMIN.SET_PARAMETERを使用して次のSMTPパラメータを構成します サード・パーティの電子メール・プロバイダが認証を必要としない場合は、SMTP_USERNAMEおよびSMTP_PASSWORDパラメータをスキップします。
    • SMTP_HOST_ADDRESS: ステップ1からSMTP接続エンドポイントを指定します
    • SMTP_HOST_PORTパラメータの有効な値は25または587です
    • SMTP_TLS_MODEパラメータの値をYに設定

    たとえば:

    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.example.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_PORT', '587');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_TLS_MODE', 'Y');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    詳細については、APEX_INSTANCE_ADMINを参照してください。

Eメール構成の検証

電子メール・プロバイダがAPEX_MAILで使用できることを確認するステップを示します。

  1. ADMINとしてSQLクライアントを使用して電子メール構成設定を検証します:
    BEGIN
      APEX_INSTANCE_ADMIN.VALIDATE_EMAIL_CONFIG;
    END;
    /

    エラー("ORA-29279: SMTP permanent error: 535 Authentication credentials invalid"など)が報告された場合は、SMTPパラメータまたはVirtual Cloud Network (VCN)構成を調整し、検証ステップを繰り返します。

    詳細については、APEX_INSTANCE_ADMINを参照してください。

  2. APEX SQLワークショップを使用してテスト電子メールを送信します。「OCI電子メール配信」を使用している場合は、p_fromパラメータが承認された送信者の1つと一致していることを確認します。 たとえば:
    BEGIN
      APEX_MAIL.SEND(
        p_from => 'alice@example.com',
        p_to   => 'bob@example.com',
        p_subj => 'Email from Oracle Autonomous Database',
        p_body => 'Sent using APEX_MAIL');
    END;
    /

    詳細については、APEX_MAILを参照してください。

  3. APEXインスタンスで電子メール配信を監視するには:
    1. APEX管理サービスにサインインします。
    2. 「インスタンスの管理」ページを開きます。
    3. 「メタデータの管理」セクションのメール・キュー・リンクをクリックします。
    または、SQLクライアントを使用して、APEX_MAIL_QUEUEおよびAPEX_MAIL_LOGビューを問い合せます。

Oracle APEXからの電子メールの送信に関するノート

Autonomous DatabaseインスタンスからのOracle APEXの電子メール・プロバイダの操作に関するノートを提供します。

Oracle APEXで電子メール・プロバイダを操作する場合は、次の点に注意してください:

  • 24時間以内に、ワークスペースごとに1,000通の電子メールのデフォルト制限があります。 Oracle APEX管理サービスでこの制限を更新または削除するか、WORKSPACE_EMAIL_MAXIMUMインスタンス・パラメータを設定できます。 「OCI電子メール配信」サービスを使用している場合、サービスによって追加の制限が課される場合があります。
  • 「OCI電子メール配信」サービスを使用する場合、可能なすべての「差出人」アドレスに対して承認済送信者を設定する必要があります。そうしないと、メールは拒否されます。 詳細については、「承認済送信者の管理」を参照してください。