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

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

APEX_MAILを使用する前に、Oracle APEXインスタンスで電子メール・プロバイダを構成する必要があります。サポートされている電子メール・プロバイダは、Oracle Cloud Infrastructure Email Deliveryサービスのみです。

ノート

サードパーティの電子メール・プロバイダはサポートされていません。

Autonomous DatabaseのAPEXインスタンスでAPEX_MAIL機能を有効にするには:

  1. 電子メール配信用のSMTP接続エンドポイントを指定します。ステップ4で、エンドポイントをAPEXインスタンスのSMTPホストとして構成します。現在のリージョンで電子メール配信を使用できない場合は、追加のOracle Cloud Infrastructureリージョンをサブスクライブする必要がある可能性があります。詳細は、SMTP接続の構成を参照してください。
  2. 電子メール配信用のSMTP資格証明を生成します。APEXインスタンスでは、Eメールの送信時に資格証明を使用してEmail Deliveryサーバーでの認証が行われます。詳細は、ユーザーに対するSMTP資格証明の生成を参照してください。
  3. 電子メール配信の承認済送信者を作成します。APEX_MAIL.SENDコールで「送信元」として使用するすべての電子メール・アドレス、アプリケーションのアプリケーション電子メール送信元アドレスとして、またはSMTP_FROMインスタンス・パラメータで、このステップを完了する必要があります。詳細は、承認済送信者の管理を参照してください。
  4. SQLクライアントを使用してADMINユーザーでAutonomous Databaseに接続し、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.us-phoenix-1.oraclecloud.com');
        APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'ocid1.user.oc1.username');
        APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
        COMMIT;
    END;
    /
  5. SQLクライアントを使用して電子メール構成設定を検証します。
    BEGIN
        APEX_INSTANCE_ADMIN.VALIDATE_EMAIL_CONFIG;
    END;
    /

    エラーがレポートされた場合は("ORA-29279: SMTP permanent error: 535 Authentication credentials invalid"など)、SMTPパラメータを調整して検証ステップを繰り返します。

  6. APEX SQLワークショップを使用して、テスト電子メールを送信します。SQLコマンドは、ステップ3のいずれかの承認済送信者を「送信元」として指定します。たとえば:
    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;
    /
  7. APEXインスタンスで電子メール配信をモニターするには:
    1. APEX管理サービスにサインインします。
    2. 「インスタンスの管理」ページを開きます。
    3. 「メタデータの管理」セクションの「メール・キュー」リンクをクリックします。
    または、SQLクライアントを使用してAPEX_MAIL_QUEUEおよびAPEX_MAIL_LOGビューを問い合せます。
ノート

24時間の期間のワークスペースごとに、5,000の電子メールのデフォルト制限があります。この制限を更新または削除するには、Oracle APEX管理サービスで、またはWORKSPACE_EMAIL_MAXIMUMインスタンス・パラメータを設定します。Oracle Cloud Infrastructure Email Deliveryでは、追加の制限が適用される場合があります。

承認済送信者は、Oracle Cloud Infrastructureを介してメールを送信するすべての「送信元: 」アドレスに対して設定する必要があります。そうしないと、メールが拒否されます。Oracle Cloud Infrastructure Email Deliveryでの承認送信者には制限があります。詳細は、承認済送信者の管理を参照してください。

詳細は、次を参照してください: