IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Fabien Celaia

Envoyer un email depuis Oracle DB

Noter ce billet
par , 11/01/2017 à 16h11 (1495 Affichages)
Introduction


Dès la version 11 d'Oracle , la configuration se complexifie pour des raisons de sécurité, en faisant intervenir des ACL (Acces Control List)
Configuration Serveur



Configuration du serveur SMTP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
alter system set parameter smtp_out_server='mail.developpez.com' scope=both sid='*' ;
Suppression d'une éventuelle acl existante et recréation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 exec DBMS_NETWORK_ACL_ADMIN.drop_acl ('email_acl.xml') ;

 exec DBMS_NETWORK_ACL_ADMIN.create_acl (
   acl => 'email_acl.xml',
   description => 'ACL mail',
   principal => 'MAILCONNECT',
   is_grant => TRUE,
   privilege => 'connect',
   start_date => SYSDATE,
   end_date => NULL);

exec DBMS_NETWORK_ACL_ADMIN.assign_acl (acl => 'email_acl.xml',host  => 'mail.developpez.com',lower_port => 25,upper_port => 25);
Ajout d'un eventuel nouvel utilisateur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec  DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'email_acl.xml',principal  => 'AutreLogin',is_grant => TRUE,privilege => 'connect');
Envoi de l'email



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DECLARE c utl_smtp.connection;
BEGIN
c := utl_smtp.open_connection('mail.developpez.com', 25);
utl_smtp.helo(c, 'developpez.com');
utl_smtp.mail(c, 'fadace@developpez.com');
utl_smtp.rcpt(c, 'fadace@gmail.com');
utl_smtp.open_data(c);
utl_smtp.write_data(c, 'From: "Celaia Fabien" <fadace@developpez.com>' || utl_tcp.CRLF);
utl_smtp.write_data(c, 'To: "fadace@gomail.com" <fadace@gmail.com>' || utl_tcp.CRLF);
utl_smtp.write_data(c, 'Subject: test envoi email' || utl_tcp.CRLF);
utl_smtp.write_data(c, utl_tcp.CRLF || 'Test envoi email depuis Oracle ');
utl_smtp.close_data(c);
utl_smtp.quit(c);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
BEGIN
utl_smtp.quit(c);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN NULL;
END;
raise_application_error(-20000, sqlerrm);
END;

Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Viadeo Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Twitter Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Google Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Facebook Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Digg Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Delicious Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog MySpace Envoyer le billet « Envoyer un email depuis Oracle DB » dans le blog Yahoo

Mis à jour 17/04/2018 à 17h08 par Fabien Celaia

Catégories
SGBD , Oracle

Commentaires