Autonomous AI Databaseでの電子メールおよび通知の送信

自律型AIデータベースに電子メールを送信するためのオプションが多数あります。Slackチャネル、MSTeamsまたはOCI通知トピックに通知を送信することもできます。

OAuth2を使用して、Microsoft ExchangeでAutonomous AI Databaseから電子メールを送信

Oracle Autonomous AI Databaseでは、OAuth 2.0を利用してMicrosoft Exchangeを通じて電子メールを送信できます。

OAuth2を使用するには、まずAzureにアプリケーションを登録し、正しいAPI権限を割り当て、アプリケーションのシークレットを作成し、Autonomous AI Databaseに資格証明オブジェクトを作成する必要があります。構成後、DBMS_CLOUD_NOTIFICATIONを介してメッセージを送信できます。

DBMS_CLOUD_NOTIFICATIONを使用して電子メールを送信するステップ:
  1. Microsoft Entra (Azure AD)へのアプリケーションの登録:

    Azureポータルで、新しいアプリケーション登録を作成し、「アプリケーション(クライアント) ID」および「AzureテナントID」をメモします。詳細は、アプリケーションの登録に関するMicrosoftのガイダンスを参照してください。

  2. アプリケーションのクライアント資格証明にシークレットを作成します:

    電子メールを送信できる登録済アプリケーションとしてデータベースを識別するために使用されるセキュアな資格証明オブジェクトをデータベースに作成するには、クライアントIDおよびクライアント・シークレットが必要です。

  3. "Mail.Send "permission and grant admin consent"を追加:

    Azureの「API権限」で、「Mail.Send」アプリケーション権限をMicrosoft Graphに追加し、管理者に同意を付与してもらいます。

    これで、MS Exchange環境の有効な電子メール・アカウントとともにDBMS_CLOUD_NOTIFICATIONパッケージを使用して電子メールを送信するように環境が設定されました。

電子メールを送信しています

有効な電子メール・アカウントを使用してプロバイダ属性をemailに設定し、電子メールを送信するために信頼できるアプリケーションとして登録されたクライアントIDまたはシークレットを持つ資格証明を使用して、DBMS_CLOUD_NOTIFICATION.SEND_MESSAGEを使用します。

  1. クライアントIDおよびシークレットを格納する資格証明を作成する必要があります:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MS_TOKEN',
    username => '<client_id>',
    password => '<client_secret>'
    );
    END;
    /
  2. クライアント資格証明フローを使用して電子メールを送信します。
    BEGIN
    DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
    provider => 'email',
    credential_name => 'MS_TOKEN',
    message => 'Message content',
    params => json_object(
    'recipient' value 'recipient@example.com',
    'subject' value 'Test subject',
    'smtp_host' value 'smtp.office365.com',
    'sender' value 'sender@xyz.com',
    'tenant' value '<azure_tenant_id>'
    )
    );
    END;
    /

トラブルシューティング

  • ポート接続: SMTP接続にはアウトバウンドTCPポート587が必要です。ORA‑29278: SMTP transient error: 421 Service not availableを受信した場合は、ネットワークACLでsmtp.office365.com:587へのアウトバウンド接続が許可されていることを確認します。
  • 権限なし: アプリケーションに管理者の同意が付与されていないか、サービス・プリンシパルがExchangeに登録されていない場合に、認証の失敗が頻繁に発生します。権限を付与するステップを再確認し、サービス・プリンシパルを登録します。
  • SMTP AUTH disabled: トークンの取得後に認証できない場合は、SMTP AUTHがメールボックスに対して有効になっており、グローバルに無効になっていないことを確認してください。
関連項目