Envoyer un courriel à partir d'Oracle APEX

Vous pouvez utiliser l'ensemble APEX_MAIL pour envoyer des courriels à partir des applications Oracle APEX déployées dans Autonomous AI Database.

Avant d'utiliser APEX_MAIL, vous devez configurer un serveur SMTP qui transmettra le courriel à partir d'Oracle APEX. Oracle APEX sur Autonomous AI Database prend en charge le service Oracle Cloud Infrastructure Email Delivery, ainsi que les fournisseurs de courriel tiers.

Configurer le service de transmission de messages pour OCI

Votre instance Oracle APEX peut utiliser le service de transmission de messages pour OCI pour envoyer des courriels à partir des applications APEX.

Pour configurer la fonctionnalité APEX_MAIL pour utiliser le service de transmission de messages pour OCI :

  1. Identifiez le point d'extrémité de connexion SMTP pour le service de transmission de messages. Vous devez configurer le point d'extrémité en tant qu'hôte SMTP dans votre instance APEX à l'étape 4. Vous devrez peut-être vous abonner à des régions Oracle Cloud Infrastructure supplémentaires si le service de transmission de messages n'est pas disponible dans votre région courante. Voir Configurer une connexion SMTP pour plus d'informations.
  2. Générez les données d'identification SMTP pour le service de transmission de messages. Votre instance APEX utilise les données d'identification pour l'authentification sur les serveurs de transmission de messages lors de l'envoi de courriels. Pour plus d'informations, voir Création de données d'identification SMTP.
  3. Créez un expéditeur approuvé pour le service de courriel. Vous devez réaliser cette étape pour toutes les adresses de courriel que vous utilisez en tant qu'"expéditeur" des appels APEX_MAIL.SEND, en tant qu'adresse d'"expéditeur" de courriel d'application dans vos applications ou dans le paramètre d'instance SMTP_FROM. Pour plus d'informations, voir Gestion des émetteurs approuvés.
  4. Connectez-vous à la base de données du service d'intelligence artificielle autonome en tant qu'utilisateur ADMIN au moyen d'un client SQL et configurez les paramètres SMTP suivants au moyen de APEX_INSTANCE_ADMIN.SET_PARAMETER :
    • SMTP_HOST_ADDRESS : Indique le point d'extrémité de connexion SMTP de l'étape 1
    • SMTP_USERNAME : Indique le nom d'utilisateur associé aux données d'identification SMTP de l'étape 2
    • SMTP_PASSWORD : Indique le mot de passe associé aux données d'identification SMTP de l'étape 2
    • SMTP_HOST_PORT : Conserver la valeur par défaut pour ce paramètre (587)
    • SMTP_TLS_MODE : Conserver la valeur par défaut pour ce paramètre (STARTTLS)
    Exemple :
    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.email.us-phoenix-1.oci.oraclecloud.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'ocid1.user.oc1.username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    Pour plus d'informations, voir APEX_INSTANCE_ADMIN.

Pour plus d'informations, voir Aperçu du service de transmission de messages.

Configurer un fournisseur de courriels tiers

Votre instance Oracle APEX peut utiliser des fournisseurs de courriel tiers pour envoyer des courriels à partir des applications APEX.

Avant de configurer un fournisseur de courriel tiers dans APEX, assurez-vous que les préalables suivants sont satisfaits :

  • Votre base de données d'IA autonome doit être configurée pour utiliser un point d'extrémité privé.
  • Le point d'extrémité SMTP du fournisseur de courriel (port 25 ou 587) doit être accessible à partir du réseau en nuage virtuel (VCN) et du sous-réseau où votre base de données IA autonome est provisionnée.

Pour plus d'informations, voir Configurer l'accès au réseau à l'aide de points d'extrémité privés.

Une fois les conditions préalables ci-dessus remplies :

  1. Ajoutez la liste de contrôle d'accès suivante pour le point d'extrémité SMTP en tant qu'administrateur (notez le paramètre private_target) :
    BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => 'smtp.example.com',
        ace => XS$ACE_TYPE(
          privilege_list => XS$NAME_LIST('SMTP'),
          principal_name => APEX_APPLICATION.g_flow_schema_owner,
          principal_type => XS_ACL.ptype_db),
        private_target => true);
    END;
    /
    Note

    Si vous définissez une propriété de base de données ROUTE_OUTBOUND_CONNECTIONS, vous n'avez pas besoin de définir des listes de contrôle d'accès pour des points d'extrémité SMTP individuels afin d'y accéder à partir d'APEX. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes à l'aide de points d'extrémité privés.
  2. Connectez-vous à la base de données Autonomous Database en tant qu'utilisateur ADMIN au moyen d'un client SQL et configurez les paramètres SMTP suivants au moyen de APEX_INSTANCE_ADMIN.SET_PARAMETER. Si votre fournisseur de courriel de tierce partie ne nécessite pas d'authentification, ignorez les paramètres SMTP_USERNAME et SMTP_PASSWORD.
    • SMTP_HOST_ADDRESS : Indique le point d'extrémité de connexion SMTP de l'étape 1
    • Les valeurs valides pour le paramètre SMTP_HOST_PORT sont 25 ou 587
    • Réglez la valeur du paramètre SMTP_TLS_MODE à Y

    Exemple :

    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.example.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_PORT', '587');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_TLS_MODE', 'Y');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    Pour plus d'informations, voir APEX_INSTANCE_ADMIN.

Valider la configuration de courriel

Affiche les étapes pour confirmer que votre fournisseur de courriels est prêt à être utilisé avec APEX_MAIL.

  1. Validez les paramètres de configuration de courriel à l'aide d'un client SQL ADMIN :
    BEGIN
      APEX_INSTANCE_ADMIN.VALIDATE_EMAIL_CONFIG;
    END;
    /

    Si des erreurs sont signalées (par exemple, "ORA-29279: SMTP permanent error: 535 Authentication credentials invalid"), ajustez les paramètres SMTP ou la configuration du réseau en nuage virtuel (VCN) et répétez l'étape de validation.

    Pour plus d'informations, voir APEX_INSTANCE_ADMIN.

  2. Envoyez un courriel de test à l'aide de l'atelier SQL APEX. Si vous utilisez le service de transmission de messages pour OCI, assurez-vous que le paramètre p_from correspond à l'un des expéditeurs approuvés. Exemple :
    BEGIN
      APEX_MAIL.SEND(
        p_from => 'alice@example.com',
        p_to   => 'bob@example.com',
        p_subj => 'Email from Oracle Autonomous Database',
        p_body => 'Sent using APEX_MAIL');
    END;
    /

    Pour plus d'informations, voir APEX_MAIL.

  3. Pour surveiller la transmission de messages dans votre instance APEX :
    1. Connectez-vous aux services d'administration APEX.
    2. Ouvrez la page Manage Instance (Gérer l'instance).
    3. Cliquez sur le lien Mail Queue (File d'attente des courriels) dans la section Manage Meta Data (Gérer les métadonnées).
    Vous pouvez également interroger les vues APEX_MAIL_QUEUE et APEX_MAIL_LOG à l'aide d'un client SQL.

Notes pour l'envoi de courriel à partir d'Oracle APEX

Fournit des notes sur l'utilisation des fournisseurs de courriel dans Oracle APEX à partir d'une instance de base de données Autonomous AI Database.

Notez ce qui suit lorsque vous travaillez avec des fournisseurs de courriel dans Oracle APEX :

  • Il y a une limite par défaut de 1 000 courriels par espace de travail sur une période de 24 heures. Vous pouvez mettre à jour ou supprimer cette limite dans les services d'administration d'Oracle APEX ou en définissant le paramètre d'instance WORKSPACE_EMAIL_MAXIMUM. Si vous utilisez le service de transmission de messages pour OCI, celui-ci peut imposer des limites supplémentaires.
  • Lors de l'utilisation du service de transmission de messages pour OCI, un expéditeur approuvé doit être configuré pour toutes les adresses "De" possibles ou le courriel sera rejeté. Pour plus d'informations, voir Gestion des émetteurs approuvés.