Invia e-mail e notifiche su Autonomous AI Database

Sono disponibili diverse opzioni per l'invio di e-mail su Autonomous AI Database. È inoltre possibile inviare notifiche a un canale Slack, a MSTeams o a un argomento Notifiche OCI.

Invia e-mail da Autonomous AI Database con Microsoft Exchange utilizzando OAuth2

Oracle Autonomous AI Database supporta l'invio di e-mail tramite Microsoft Exchange utilizzando OAuth 2.0.

Per utilizzare OAuth2, è innanzitutto necessario registrare un'applicazione in Azure, assegnare le autorizzazioni API corrette, creare un segreto per l'applicazione e creare un oggetto credenziale in Autonomous AI Database. Una volta configurato, è possibile inviare messaggi tramite DBMS_CLOUD_NOTIFICATION.

Passi per l'invio di e-mail tramite DBMS_CLOUD_NOTIFICATION:
  1. Registrare un'applicazione in Microsoft Entra (Azure AD):

    Nel portale Azure, creare una nuova registrazione dell'applicazione e annotare l'ID applicazione (client) e l'ID tenant Azure. Per informazioni dettagliate, vedere le istruzioni di Microsoft sulla registrazione di un'applicazione.

  2. Creare un segreto nelle credenziali client per l'applicazione:

    L'ID client e il segreto client sono necessari per creare un oggetto credenziale sicuro nel database che viene utilizzato per identificare il database come applicazione registrata in grado di inviare e-mail.

  3. Aggiungere l'autorizzazione "Mail.Send" e concedere il consenso di amministrazione:

    In Azure, in Autorizzazioni API, aggiungere l'autorizzazione dell'applicazione Mail.Send in Microsoft Graph e disporre del consenso di concessione dell'amministratore.

    L'ambiente è ora configurato per l'invio di messaggi di posta elettronica utilizzando il pacchetto DBMS_CLOUD_NOTIFICATION con qualsiasi account di posta elettronica valido dell'ambiente MS Exchange.

Invia del messaggio di posta elettronica in corso

Utilizzare DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE con l'attributo provider impostato su email utilizzando un account di posta elettronica valido e le credenziali con l'ID client o il segreto registrato come applicazione sicura per l'invio di posta elettronica.

  1. È necessario creare una credenziale che memorizzi l'ID client e il segreto:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MS_TOKEN',
    username => '<client_id>',
    password => '<client_secret>'
    );
    END;
    /
  2. Inviare un messaggio di posta elettronica utilizzando il flusso di credenziali client:
    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;
    /

Risoluzione dei problemi

  • Connettività della porta: le connessioni SMTP richiedono la porta TCP in uscita 587. Se si riceve ORA‑29278: SMTP transient error: 421 Service not available, verificare che le ACL di rete consentano connessioni in uscita a smtp.office365.com:587.
  • Autorizzazioni mancanti: gli errori di autenticazione si verificano spesso quando all'applicazione non è stato concesso il consenso dell'amministratore o quando il principal del servizio non è stato registrato in Exchange. Rivedere i passi per concedere le autorizzazioni e registrare il principal del servizio.
  • SMTP AUTH disabilitato: se non è possibile eseguire l'autenticazione dopo aver ottenuto i token, assicurarsi che SMTP AUTH sia abilitato per la casella di posta e non sia disabilitato a livello globale.
Vedere anche