Envoyer un courriel sur une base de données autonome avec intelligence artificielle
Il existe un certain nombre d'options pour l'envoi de courriels dans Autonomous AI Database. Vous pouvez également envoyer des messages texte ou la sortie d'une interrogation SQL à un canal Slack ou MSTeams.
- Envoyer un courriel avec le service de transmission de messages sur la base de données d'IA autonome
Décrit les étapes à suivre pour envoyer un courriel à l'aide deUTL_SMTPsur la base de données d'IA autonome. - Envoyer un courriel avec un fournisseur de courriels sur un point d'extrémité privé
Décrit les étapes à suivre pour envoyer un courriel avec un fournisseur de courriels se trouvant sur un point d'extrémité privé. - Utiliser des objets de données d'identification pour définir l'authentification SMTP
Décrit comment transmettre des objets de données d'identification aux APIUTL_SMTP.SET_CREDENTIAL. - Envoyer un courriel à partir d'une base de données d'intelligence artificielle autonome à l'aide de DBMS_CLOUD_NOTIFICATION
Utilisez l'ensembleDBMS_CLOUD_NOTIFICATIONpour envoyer des messages et des résultats d'interrogation sous forme de courriel.
Rubrique parent : Envoyer des courriels et des avis sur Autonomous AI Database
Envoyer des courriels avec le service de transmission de messages sur une base de données autonome avec intelligence artificielle
Décrit les étapes d'envoi de courriel à l'aide de UTL_SMTP sur la base de données d'IA autonome.
Pour envoyer des courriels avec le service Oracle Cloud Infrastructure Email Delivery :
Pour plus d'informations sur UTL_SMTP, voir UTL_SMTP.
Voir Notes de l'ensemble PL/SQL pour Autonomous AI Database pour connaître les restrictions UTL_SMTP associées à Autonomous AI Database.
- SMTP Envoyer un exemple de code de courriel
Affiche un exemple de code pour l'envoi de courriel avecUTL_SMTPsur la base de données d'IA autonome.
Code d'exemple de courriel d'envoi SMTP
Affiche un exemple de code pour l'envoi de courriels avec UTL_SMTP dans Autonomous AI Database.
CREATE OR REPLACE PROCEDURE SEND_MAIL (
msg_to varchar2,
msg_subject varchar2,
msg_text varchar2 )
IS
mail_conn utl_smtp.connection;
username varchar2(1000):= 'ocid1.user.oc1.username';
passwd varchar2(50):= 'password';
msg_from varchar2(50) := 'adam@example.com';
mailhost VARCHAR2(50) := 'smtp.us-ashburn-1.oraclecloud.com';
BEGIN
mail_conn := UTL_smtp.open_connection(mailhost, 587);
utl_smtp.starttls(mail_conn);
UTL_SMTP.AUTH(mail_conn, username, passwd, schemes => 'PLAIN');
utl_smtp.mail(mail_conn, msg_from);
utl_smtp.rcpt(mail_conn, msg_to);
UTL_smtp.open_data(mail_conn);
UTL_SMTP.write_data(mail_conn, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'To: ' || msg_to || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'From: ' || msg_from || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'Subject: ' || msg_subject || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'Reply-To: ' || msg_to || UTL_TCP.crlf || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, msg_text || UTL_TCP.crlf || UTL_TCP.crlf);
UTL_smtp.close_data(mail_conn);
UTL_smtp.quit(mail_conn);
EXCEPTION
WHEN UTL_smtp.transient_error OR UTL_smtp.permanent_error THEN
UTL_smtp.quit(mail_conn);
dbms_output.put_line(sqlerrm);
WHEN OTHERS THEN
UTL_smtp.quit(mail_conn);
dbms_output.put_line(sqlerrm);
END;
/
Où :
-
mailhost : Spécifie le point d'extrémité de connexion SMTP de l'étape 1 dans Envoyer un courriel avec le service de transmission de messages sur une base de données d'intelligence artificielle autonome.
-
nom d'utilisateur : Spécifie le nom d'utilisateur des données d'identification SMTP de l'étape 2 dans Envoyer un courriel avec le service de transmission de messages sur une base de données d'intelligence artificielle autonome.
-
passwd : Spécifie le mot de passe des données d'identification SMTP de l'étape 2 dans Envoyer un courriel avec le service de transmission de messages sur une base de données d'intelligence artificielle autonome.
-
msg_from : Spécifie l'un des expéditeurs approuvés à l'étape 3 de l'étape Envoyer un courriel avec le service de transmission de messages sur une base de données autonome d'IA.
Envoyer un courriel avec un fournisseur de courriel sur un point d'extrémité privé
Décrit les étapes d'envoi de courriel avec un fournisseur de messagerie qui se trouve sur un point d'extrémité privé.
Pour envoyer des courriels depuis Autonomous AI Database à l'aide d'un fournisseur de courriel sur un point d'extrémité privé, ce fournisseur doit être accessible à partir du VCN Oracle Cloud Infrastructure (point d'extrémité privé de l'instance Autonomous AI Database). Par exemple, vous pouvez accéder à un fournisseur de messagerie lorsque :
-
L'instance de base de données d'IA autonome source et le fournisseur de courriel se trouvent tous les deux dans le même VCN Oracle Cloud Infrastructure.
-
L'instance de base de données Autonomous AI Database source et le fournisseur de courriel se trouvent dans différents réseaux en nuage virtuels Oracle Cloud Infrastructure appariés.
-
Le fournisseur de courriel se trouve sur un réseau sur place qui est connecté au VCN Oracle Cloud Infrastructure de l'instance de base de données d'intelligence artificielle autonome source à l'aide de FastConnect ou d'un RPV.
Pour envoyer un courriel à l'aide d'un fournisseur de messagerie, définissez les règles de trafic entrant et sortant suivantes :
-
Définissez une règle de trafic sortant dans la liste de sécurité du sous-réseau ou le groupe de sécurité de réseau de la base de données source afin que le trafic vers l'hôte cible soit autorisé sur le port 587 ou le port 25 (selon le port que vous utilisez).
-
Définissez une règle de trafic entrant dans la liste de sécurité du sous-réseau ou le groupe de sécurité de réseau de l'hôte cible de sorte que le trafic entre l'adresse IP de l'instance de base de données Autonomous AI Database source et le port 587 ou 25 soit autorisé (selon le port que vous utilisez).
Pour envoyer un courriel à partir d'un fournisseur de courriel sur un point d'extrémité privé :
Utiliser des objets de données d'identification pour définir l'authentification SMTP
Décrit comment transmettre des objets de données d'identification aux API UTL_SMTP.SET_CREDENTIAL.
Le sous-programme SET_CREDENTIAL envoie la commande AUTH pour l'authentification au serveur SMTP.
Le sous-programme UTL_SMTP.SET_CREDENTIAL vous permet de transmettre des objets de données d'identification pour définir l'authentification SMTP. Les objets de données d'identification sont des objets de schéma. Par conséquent, ils ne sont accessibles que par des utilisateurs dotés de privilèges et vous permettent de configurer des privilèges au niveau du schéma pour contrôler les données d'identification. La transmission d'objets de données d'identification est un moyen approprié et sécurisé de stocker et de gérer le nom d'utilisateur/mot de passe/clés pour l'authentification.
Le sous-programme UTL_SMTP.SET_CREDENTIAL est une alternative sécurisée et pratique au sous-programme UTL_SMTP.AUTH.
Exemple
...
UTL_SMTP.AUTH (l_mail_conn, 'ocid1.user.oc1.username', 'xxxxxxxxxxxx', schemes => 'PLAIN');
...Comme indiqué dans l'exemple ci-dessus, lorsque vous appelez le sous-programme AUTH, vous devez transmettre le nom utilisateur/mot de passe en texte clair dans le cadre des paramètres formels PL/SQL. Vous devrez peut-être intégrer le nom utilisateur/mot de passe dans divers scripts d'automatisation PL/SQL ou cron. La transmission de mots de passe en texte clair est un problème de conformité qui est traité dans le sous-programme UTL_SMTP.SET_CREDENTIAL.
Pour plus d'informations, voir Fonction et procédure AUTH.
Syntaxe UTL_SMTP.SET_CREDENTIAL
PROCEDURE UTL_SMTP.SET_CREDENTIAL (
c IN OUT NOCOPY connection,
credential IN VARCHAR2,
schemes IN VARCHAR2 DEFAULT NON_CLEARTEXT_PASSWORD_SCHEMES
);
FUNCTION UTL_SMTP.SET_CREDENTIAL (
c IN OUT NOCOPY connection,
credential IN VARCHAR2,
schemes IN VARCHAR2 DEFAULT NON_CLEARTEXT_PASSWORD_SCHEMES)
RETURN reply;Exemple
-
Créez un objet de données d'identification :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'HTTP_CRED', username => 'web_app_user', password => '<password>' ); END;Cela crée un objet de données d'identification qui crée une paire nom utilisateur/mot de passe stocké.
Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.
Pour plus d'informations, voir Spécification des données d'identification de la tâche du programmateur.
-
Exécutez la procédure
UTL_SMTP.SET_CREDENTIAL:DECLARE l_mail_conn UTL_SMTP.CONNECTION; BEGIN l_mail_conn := UTL_SMTP.OPEN_CONNECTION('smtp.example.com', 587); UTL_SMTP.SET_CREDENTIAL(l_mail_conn, 'SMTP_CRED', SCHEMES => 'PLAIN'); ... END;Cet exemple envoie la commande d'authentification au serveur SMTP. Le serveur Web a besoin de ces informations pour autoriser la demande. La valeur
l_mail_connest la connexion SMTP,SMTP_CREDest le nom des données d'identification etPLAINest le modèle d'authentification SMTP.
Pour plus d'informations, voir UTL_SMTP.
Voir Notes de l'ensemble PL/SQL pour Autonomous AI Database pour plus d'informations sur les restrictions pour UTL_SMTP pour Autonomous AI Database.
Envoyer un courriel à partir d'une base de données d'intelligence artificielle autonome à l'aide de DBMS_CLOUD_NOTIFICATION
Utilisez l'ensemble DBMS_CLOUD_NOTIFICATION pour envoyer des messages et les résultats de l'interrogation sous forme de courriel.
- Envoyer des messages par courriel à partir d'une base de données autonome sur l'IA
Vous pouvez utiliserDBMS_CLOUD_NOTIFICATIONpour envoyer des messages sous forme de courriel. - Envoyer les résultats d'interrogation par courriel à partir d'une base de données d'intelligence artificielle autonome
Vous pouvez utiliser l'ensembleDBMS_CLOUD_NOTIFICATIONpour envoyer les résultats d'une interrogation par courriel.
Envoyer des messages par courriel à partir d'une base de données autonome d'IA
DBMS_CLOUD_NOTIFICATION pour envoyer des messages sous forme de courriel.
Envoyer les résultats d'interrogation par courriel à partir d'une base de données autonome d'intelligence artificielle
DBMS_CLOUD_NOTIFICATION pour envoyer les résultats d'une interrogation par courriel.
Pour utiliser DBMS_CLOUD_NOTIFICATION pour envoyer du courrier :