Oracle APEXからの電子メールの送信
APEX_MAILパッケージを使用して、Autonomous AI DatabaseにデプロイされたOracle APEXアプリケーションから電子メールを送信できます。
APEX_MAILを使用する前に、Oracle APEXから電子メールを配信するSMTPサーバーを構成する必要があります。Autonomous AI Database上のOracle APEXは、Oracle Cloud Infrastructure Email Deliveryサービスとサード・パーティの電子メール・プロバイダをサポートしています。
OCI Email Deliveryの構成
Oracle APEXインスタンスは、OCI Email Deliveryサービスを利用して、APEXアプリケーションから電子メールを送信できます。
OCI Email Deliveryサービスを使用するようにAPEX_MAIL機能を構成するには:
-
電子メール配信用のSMTP接続エンドポイントを識別します。ステップ4で、エンドポイントをAPEXインスタンスのSMTPホストとして構成します。現在ののリージョンで電子メール配信を使用できない場合は、追加のOracle Cloud Infrastructureリージョンをサブスクライブする必要がある場合があります。詳細は、「SMTP接続の構成」を参照してください。
-
電子メール配信用のSMTP資格証明を生成します。APEXインスタンスは、Eメールの送信時に資格証明を使用してEメール配信サーバーで認証します。詳細は、SMTP資格証明の作成を参照してください。
-
電子メール配信の承認済送信者を作成します。
APEX_MAIL.SENDコールでは、「送信元」として、アプリケーションの電子メール送信元アドレスとして、またはSMTP_FROMインスタンス・パラメータで、使用するすべての電子メール・アドレスに対して、このステップを完了する必要があります。詳細は、承認済送信者の管理を参照してください。 -
SQLクライアントを使用してADMINユーザーとしてAutonomous AIデータベースに接続し、
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インスタンスは、サード・パーティの電子メール・プロバイダを利用して、APEXアプリケーションから電子メールを送信できます。
APEXでサード・パーティの電子メール・プロバイダを構成する前に、次の前提条件が満たされていることを確認してください:
-
自律型AIデータベースは、プライベート・エンドポイントを使用するように構成する必要があります。
-
電子メール・プロバイダのSMTPエンドポイント(ポート25または587)には、Autonomous AI DatabaseがプロビジョニングされているVirtual Cloud Network (VCN)およびサブネットからアクセスできる必要があります。
詳細は、プライベート・エンドポイントを使用したネットワーク・アクセスを構成を参照してください。
事前設定が満たされた後:
-
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データベース・プロパティを設定する場合、APEXからアクセスするために個々のSMTPエンドポイントのアクセス制御リストを定義する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。 -
SQLクライアントを使用してAutonomous AI DatabaseにADMINユーザーとして接続し、
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とともに使用する準備ができていることを確認するステップを示します。
-
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を参照してください。
-
APEX SQLワークショップを使用してテスト電子メールを送信します。OCI Email Deliveryを使用している場合は、
p_fromパラメータが承認された送信者のいずれかに一致していることを確認してください。次に例を示します。BEGIN APEX_MAIL.SEND( p_from => 'alice@example.com', p_to => 'bob@example.com', p_subj => 'Email from Oracle Autonomous AI Database', p_body => 'Sent using APEX_MAIL'); END; /詳細は、APEX_MAILを参照してください。
-
APEXインスタンスでの電子メール配信を監視するには:
-
APEX管理サービスにサインインします。
-
「インスタンスの管理」ページを開きます。
-
「メタデータの管理」セクションの「メール・キュー」リンクをクリックします。
または、SQLクライアントを使用して
APEX_MAIL_QUEUEおよびAPEX_MAIL_LOGビューを問い合せます。 -
Oracle APEXからの電子メールの送信に関するノート
自律型AIデータベース・インスタンスからOracle APEXの電子メール・プロバイダを操作するためのノートを提供します。
Oracle APEXで電子メール・プロバイダを操作する場合は、次の点に注意してください。
-
24時間の期間には、ワークスペースごとに1,000通の電子メールのデフォルト制限があります。この制限は、Oracle APEX管理サービスで更新または削除することも、
WORKSPACE_EMAIL_MAXIMUMインスタンス・パラメータを設定することもできます。OCI Email Deliveryサービスを使用している場合、サービスに追加の制限が課される可能性があります。 -
OCI Email Deliveryサービスを使用する場合は、可能なすべての送信元アドレスに対して承認済送信者を設定する必要があります。そうしないと、メールは拒否されます。詳細は、承認済送信者の管理を参照してください。