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
alter system set parameter smtp_out_server='mail.developpez.com' scope=both sid='*' ;
Suppression d'une éventuelle acl existante et recréation
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
exec DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'email_acl.xml',principal => 'AutreLogin',is_grant => TRUE,privilege => 'connect');
Envoi de l'email
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; |