Enviar correo electrónico y notificaciones en una base de datos de IA autónoma

Hay una serie de opciones para enviar correos electrónicos en Autonomous AI Database. También puede enviar notificaciones a un canal de Slack, a MSTeams o a un tema de OCI Notifications.

Enviar correo electrónico desde una base de datos de IA autónoma con Microsoft Exchange mediante OAuth2

Oracle Autonomous AI Database admite el envío de correo electrónico a través de Microsoft Exchange mediante OAuth 2.0.

Para utilizar OAuth2, primero debe registrar una aplicación en Azure, asignar los permisos de API correctos, crear un secreto para la aplicación y crear un objeto de credencial en Autonomous AI Database. Una vez configurado, puede enviar mensajes a través de DBMS_CLOUD_NOTIFICATION.

Pasos para enviar correo electrónico mediante DBMS_CLOUD_NOTIFICATION:
  1. Registre una aplicación en Microsoft Entra (Azure AD):

    En el portal de Azure, cree un nuevo registro de aplicación y anote el ID de aplicación (cliente) y el ID de inquilino de Azure. Para obtener detalles, consulte la guía de Microsoft sobre registro de una aplicación.

  2. Crear un secreto en credenciales de cliente para la aplicación:

    El ID de cliente y el secreto de cliente son necesarios para crear un objeto de credencial seguro en la base de datos que se utiliza para identificar la base de datos como la aplicación registrada que puede enviar correos electrónicos.

  3. Agregue el permiso "Mail.Send" y otorgue el consentimiento del administrador:

    En Azure, en Permisos de API, agregue el permiso de aplicación Mail.Send en Microsoft Graph y solicite el consentimiento de un administrador.

    Su entorno ahora está configurado para enviar correos electrónicos mediante el paquete DBMS_CLOUD_NOTIFICATION con cualquier cuenta de correo electrónico válida de su entorno de MS Exchange.

Enviando correo electrónico

Utilice DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE con el atributo de proveedor definido como email mediante una cuenta de correo electrónico válida y su credencial con el ID de cliente o secreto que se registró como aplicación de confianza para enviar correo electrónico.

  1. Debe crear una credencial que almacene el ID de cliente y el secreto:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MS_TOKEN',
    username => '<client_id>',
    password => '<client_secret>'
    );
    END;
    /
  2. Envíe un correo electrónico mediante el flujo de credenciales de cliente:
    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;
    /

Solución de problemas

  • Conectividad de puerto: las conexiones SMTP requieren el puerto TCP 587 de salida. Si recibe ORA‑29278: SMTP transient error: 421 Service not available, verifique que las ACL de red permitan conexiones salientes a smtp.office365.com:587.
  • Permisos faltantes: los fallos de autenticación suelen producirse cuando no se ha otorgado el consentimiento de administrador a la aplicación o cuando el principal de servicio no se ha registrado en Exchange. Revise los pasos para otorgar permisos y registrar el principal de servicio.
  • Autorización SMTP desactivada: si no puede autenticarse después de obtener tokens, asegúrese de que SMTP AUTH esté activado para el buzón y no esté desactivado globalmente.
Ver también