Envoyer un courriel sur la base de données Autonomous AI
Il existe un certain nombre d'options pour l'envoi de courriels sur Autonomous AI Database. Vous pouvez également envoyer des messages texte ou la sortie d'une requête SQL à un canal Slack ou MSTeams.
- Envoyer des courriels avec Email Delivery Service sur une base de données Autonomous AI
Décrit les étapes d'envoi de courriels à l'aide deUTL_SMTPsur une base de données Autonomous AI. - Envoyer un courriel à un fournisseur de messagerie sur une adresse privée
Description des étapes permettant d'envoyer un courriel à un fournisseur de messagerie situé sur une adresse privée. - Utilisation d'objets d'informations d'identification pour définir l'authentification SMTP
Décrit comment transmettre des objets d'informations d'identification aux APIUTL_SMTP.SET_CREDENTIAL. - Envoyer un courriel à partir d'une base de données Autonomous AI à l'aide de DBMS_CLOUD_NOTIFICATION
Utilisez le packageDBMS_CLOUD_NOTIFICATIONpour envoyer des messages et interroger les résultats sous forme de courriel.
Envoyer un courriel avec Email Delivery Service sur Autonomous AI Database
Décrit les étapes à suivre pour envoyer des courriels à l'aide de UTL_SMTP sur Autonomous AI Database.
Pour envoyer un courriel avec le service Oracle Cloud Infrastructure Email Delivery, procédez comme suit :
Pour plus d'informations sur UTL_SMTP, reportez-vous à UTL_SMTP.
Reportez-vous à Notes sur le package PL/SQL pour Autonomous AI Database pour connaître les restrictions UTL_SMTP relatives à Autonomous AI Database.
- Exemple de code d'envoi de courriel SMTP
Affiche un exemple de code pour l'envoi de courriels avecUTL_SMTPsur la base de données Autonomous AI.
Rubrique parent : Envoi de courriels sur une base de données Autonomous AI
SMTP - Code exemple d'envoi d'e-mail
Affiche un exemple de code pour l'envoi de courriels avec UTL_SMTP sur la base de données Autonomous AI.
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 : indique l'adresse de connexion SMTP de l'étape 1 dans Envoyer un courriel avec Email Delivery Service sur une base de données Autonomous AI.
-
Nom utilisateur : indique le nom utilisateur d'informations d'identification SMTP de l'étape 2 dans Envoyer un courriel avec Email Delivery Service sur une base de données Autonomous AI.
-
passwd : indique le mot de passe des informations d'identification SMTP de l'étape 2 dans Envoyer un courriel avec Email Delivery Service sur Autonomous AI Database.
-
msg_from : indique l'un des expéditeurs approuvés de l'étape 3 dans Envoyer un courriel avec Email Delivery Service sur Autonomous AI Database.
Envoyer un courriel avec un fournisseur de messagerie sur une adresse privée
Décrit les étapes à suivre pour envoyer un courriel à un fournisseur de messagerie situé sur une adresse privée.
Pour envoyer des courriels à partir d'une base de données Autonomous AI à l'aide d'un fournisseur de messagerie sur une adresse privée, le fournisseur de messagerie doit être accessible à partir du VCN Oracle Cloud Infrastructure (adresse privée de l'instance Autonomous AI Database). Par exemple, vous pouvez accéder à un fournisseur de messagerie lorsque :
-
L'instance de base de données Autonomous AI source et le fournisseur de messagerie se trouvent dans le même VCN Oracle Cloud Infrastructure.
-
L'instance de base de données Autonomous AI source et le fournisseur de messagerie se trouvent dans différents réseaux cloud virtuels Oracle Cloud Infrastructure couplés.
-
Le fournisseur de messagerie se trouve sur un réseau sur site connecté au VCN Oracle Cloud Infrastructure de l'instance de base de données Autonomous AI source à l'aide de FastConnect ou du VPN.
Pour envoyer des courriels à l'aide d'un fournisseur de messagerie, vous devez au préalable définir les règles entrantes et sortantes suivantes :
-
Définissez une règle sortante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de la base de données source de sorte 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 entrante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de l'hôte cible de sorte que le trafic de l'adresse IP de l'instance de base de données Autonomous AI source vers le port 587 ou le port 25 soit autorisé (en fonction du port que vous utilisez).
Pour envoyer un courriel à partir d'un fournisseur de messagerie sur une adresse privée, procédez comme suit :
Rubrique parent : Envoi de courriels sur une base de données Autonomous AI
Utiliser des objets d'informations d'identification pour définir l'authentification SMTP
Explique comment transmettre des objets d'informations d'identification aux API UTL_SMTP.SET_CREDENTIAL.
Le sous-programme SET_CREDENTIAL envoie la commande AUTH pour s'authentifier auprès du serveur SMTP.
Le sous-programme UTL_SMTP.SET_CREDENTIAL vous permet de transmettre des objets d'informations d'identification pour définir l'authentification SMTP. Les objets d'informations d'identification sont des objets de schéma. Par conséquent, seuls les utilisateurs privilégiés peuvent y accéder et vous permettent de configurer des privilèges de niveau schéma pour accéder au contrôle des informations d'identification. La transmission d'objets d'informations d'identification est un moyen approprié et sécurisé de stocker et de gérer le nom 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 cron ou d'automatisation PL/SQL. La transmission de mots de passe en texte clair est un problème de conformité 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 d'informations d'identification :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'HTTP_CRED', username => 'web_app_user', password => '<password>' ); END;Cette opération crée un objet d'informations d'identification qui crée une paire nom utilisateur/mot de passe stockée.
Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
Pour plus d'informations, reportez-vous à Spécification des informations d'identification de travail du planificateur.
-
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 informations d'identification etPLAINest le modèle d'authentification SMTP.
Pour plus d'informations, reportez-vous à UTL_SMTP.
Pour plus d'informations sur les restrictions applicables à UTL_SMTP sur Autonomous AI Database, reportez-vous à Notes sur le package PL/SQL pour Autonomous AI Database.
Rubrique parent : Envoi de courriels sur une base de données Autonomous AI
Envoyer un courriel à partir d'une base de données Autonomous AI à l'aide de DBMS_CLOUD_NOTIFICATION
Utilisez le package DBMS_CLOUD_NOTIFICATION pour envoyer des messages et interroger les résultats par courriel.
- Envoi de messages par courriel à partir d'une base de données Autonomous AI
Vous pouvez utiliserDBMS_CLOUD_NOTIFICATIONpour envoyer des messages par courriel. - Envoi de résultats de requête par courriel à partir d'une base de données Autonomous AI
Vous pouvez utiliser le packageDBMS_CLOUD_NOTIFICATIONpour envoyer les résultats d'une requête sous forme de courriel.
Rubrique parent : Envoi de courriels sur une base de données Autonomous AI
Envoyer des messages par courriel à partir d'une base de données Autonomous AI
DBMS_CLOUD_NOTIFICATION pour envoyer des messages par courriel.