Enviar E-mails e Notificações no Autonomous AI Database

Há várias opções para enviar e-mails no Autonomous AI Database. Você também pode enviar notificações para um canal do Slack, para MSTeams ou para um tópico do OCI Notifications.

Enviar E-mail do Autonomous AI Database com o Microsoft Exchange usando o OAuth2

O Oracle Autonomous AI Database suporta o envio de e-mails por meio do Microsoft Exchange aproveitando o OAuth 2.0.

Para usar o OAuth2, primeiro você precisa registrar um aplicativo no Azure, designar as permissões corretas de API, criar um Segredo para o Aplicativo e criar um objeto de credencial no Autonomous AI Database. Depois de configurado, você pode enviar mensagens via DBMS_CLOUD_NOTIFICATION.

Etapas para enviar e-mail usando DBMS_CLOUD_NOTIFICATION:
  1. Registrar um aplicativo no Microsoft Entra (Azure AD):

    No portal do Azure, crie um novo registro de aplicativo e anote o ID do Aplicativo (cliente) e o ID do Tenant do Azure. Para obter detalhes, consulte as orientações da Microsoft sobre como registrar um aplicativo.

  2. Criar um Segredo nas credenciais do Cliente para o Aplicativo:

    O ID do cliente e o segredo do cliente são necessários para criar um objeto de credencial segura em seu banco de dados que seja usado para identificar seu banco de dados como o aplicativo registrado que pode enviar e-mails.

  3. Adicione a permissão "Mail.Send" e conceda o consentimento do administrador:

    No Azure, em Permissões de API, adicione a permissão do aplicativo Mail.Send no Microsoft Graph e tenha um consentimento de concessão de administrador.

    Seu ambiente agora está configurado para enviar e-mails usando o pacote DBMS_CLOUD_NOTIFICATION com qualquer conta de e-mail válida do seu ambiente do MS Exchange.

Enviando e-mail

Use DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE com o atributo do provedor definido como email usando uma conta de e-mail válida e sua credencial com o ID ou segredo do cliente que foi registrado como aplicativo confiável para enviar e-mail.

  1. Crie uma credencial que armazene o ID e o segredo do cliente:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MS_TOKEN',
    username => '<client_id>',
    password => '<client_secret>'
    );
    END;
    /
  2. Envie um e-mail usando o fluxo de credenciais do 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;
    /

Diagnóstico e Solução de Problemas

  • Conectividade da porta: As conexões SMTP exigem a porta TCP 587 de saída. Se você receber o ORA‑29278: SMTP transient error: 421 Service not available, verifique se as ACLs de rede permitem conexões de saída com smtp.office365.com:587.
  • Permissões ausentes: As falhas de autenticação geralmente ocorrem quando o aplicativo não recebeu consentimento de administrador ou quando o principal de serviço não foi registrado no Exchange. Revise as etapas para conceder permissões e registrar o principal do serviço.
  • SMTP AUTH desativado: Se você não puder autenticar depois de obter tokens, certifique-se de que SMTP AUTH esteja ativado para a caixa de correio e não globalmente desativado.
Consulte também