E-Mails und Benachrichtigungen in autonomer KI-Datenbank senden

Es gibt eine Reihe von Optionen zum Senden von E-Mails in einer autonomen KI-Datenbank. Sie können auch Benachrichtigungen an einen Slack-Kanal, an MSTeams oder an ein OCI Notifications-Thema senden.

E-Mail aus Autonomous AI Database mit Microsoft Exchange mit OAuth2 senden

Oracle Autonomous AI Database unterstützt das Senden von E-Mails über Microsoft Exchange mithilfe von OAuth 2.0.

Um OAuth2 zu verwenden, müssen Sie zunächst eine Anwendung in Azure registrieren, die richtigen API-Berechtigungen zuweisen, ein Secret für die App erstellen und ein Zugangsdatenobjekt in der autonomen KI-Datenbank erstellen. Nach der Konfiguration können Sie Nachrichten über DBMS_CLOUD_NOTIFICATION senden.

Schritte zum Senden von E-Mails mit DBMS_CLOUD_NOTIFICATION:
  1. Anwendung in Microsoft Entra (Azure AD) registrieren:

    Erstellen Sie im Azure-Portal eine neue Anwendungsregistrierung, und notieren Sie sich die Anwendungs-(Client-)ID und die Azure-Mandanten-ID. Weitere Informationen finden Sie in der Anleitung von Microsoft zum Registrieren einer Anwendung.

  2. Secret in Clientzugangsdaten für die Anwendung erstellen:

    Die Client-ID und das Client Secret werden benötigt, um ein sicheres Zugangsdatenobjekt in der Datenbank zu erstellen, mit dem die Datenbank als registrierte Anwendung identifiziert wird, die E-Mails senden kann.

  3. Fügen Sie "Mail.Send "permission and grant admin consent" hinzu:

    Fügen Sie in Azure unter API-Berechtigungen die Anwendungsberechtigung Mail.Send in Microsoft Graph hinzu, und erteilen Sie eine Administratoreinwilligung.

    Ihre Umgebung ist jetzt so konfiguriert, dass E-Mails mit dem Paket DBMS_CLOUD_NOTIFICATION mit einem gültigen E-Mail-Konto Ihrer MS Exchange-Umgebung gesendet werden.

E-Mail wird gesendet

Verwenden Sie DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE, wenn das Providerattribut mit einem gültigen E-Mail-Account auf email gesetzt ist, und Ihre Zugangsdaten mit der Client-ID oder dem Secret, das als vertrauenswürdige Anwendung zum Senden von E-Mails registriert wurde.

  1. Sie müssen Zugangsdaten erstellen, in denen die Client-ID und das Secret gespeichert sind:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MS_TOKEN',
    username => '<client_id>',
    password => '<client_secret>'
    );
    END;
    /
  2. Senden Sie eine E-Mail mit dem Clientzugangsdatenfluss:
    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;
    /

Fehlerbehebung

  • Portkonnektivität: Für SMTP-Verbindungen ist der ausgehende TCP-Port 587 erforderlich. Wenn Sie ORA‑29278: SMTP transient error: 421 Service not available empfangen, prüfen Sie, ob Netzwerk-ACLs ausgehende Verbindungen zu smtp.office365.com:587 zulassen.
  • Fehlende Berechtigungen: Authentifizierungsfehler treten häufig auf, wenn der Anwendung keine Admin-Zustimmung erteilt wurde oder wenn der Service-Principal nicht in Exchange registriert wurde. Gehen Sie erneut zu den Schritten, um Berechtigungen zu erteilen und den Service-Principal zu registrieren.
  • SMTP AUTH deaktiviert: Wenn Sie sich nach dem Abrufen von Token nicht authentifizieren können, stellen Sie sicher, dass SMTP AUTH für die Mailbox aktiviert und nicht global deaktiviert ist.
Siehe auch