Comment envoyer un mail en 10G

 

1)   Introduction

 

Cette option est disponible à partir d’Oracle 10g et remplace UTl_SMTP  présent dans les versions inférieures.

Pour envoyer un mail il suffit de mettre en place le package, de paramétrer la base et enfin de se servir du package UTL_MAIL :

 

 

2) Les Packages :

 

2.1 Packages

 

 Installation des packages ( manipulation à effectué connecté en  sys)   :

 

 

Ø      @$ORACLE_HOME/rdbms/admin/utlmail.sql

 

 

SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql

 

Package created.

 

 

Synonym created.

 

SQL>

 

Ø      @$ORACLE_HOME/rdbms/admin/prvtmail.plb

 

SQL> @$ORACLE_HOME/rdbms/admin/prvtmail.plb

 

Package body created.

 

No errors.

 

 

Comme l’installation a été effectué avec le super user sys il faut donner le privilège à tout le monde

 

Grant execute on  utl_mail to public 

 

2.2 Serveur SMTP

 

 

Il faut positionner le paramètre d’initialisation SMTP_OUT_SERVER

 

Ainsi :

 

SMTP_OUT_SERVER ='XXX.XX.X.X'

 

 

Ce paramètre ne peut pas être modifié en dynamique .

 

SQL> alter system set SMTP_OUT_SERVER ='XXX.XX.X.X';

alter system set SMTP_OUT_SERVER ='XXX.XX.X.X'

                 *

ERREUR à la ligne 1 :

ORA-02095: specified initialization parameter cannot be modified

 

 

 

Il faut donc démarrer la base en INIT.ORA et régénérer un SPFILE

 

Création du Spfile :

 

SQL> create spfile='/ora/data/SAGE/admin/pfile/spfileSAGE.ora'  from pfile='/ora/data/SAGE/admin/pfile/initSAGE.ora' ;

 

File created.

 

 

 

 

Puis un arrêt redémarrage de la base s’impose .

 

3      Envoyer un mail

 

Ici tout les codes et exemples données ont été testés .

 

3.1                      Envoyer un mail

 

begin

UTL_MAIL.send(sender => 'j_zouaghi@yahoo.fr',

 recipients => 'jaouad.zouaghi@gmail.com',

 cc => NULL,

 bcc => NULL,

 subject => 'subj',

 message => 'Test DVp ‘);

 end;

 /

 

 

Détail du package

3.2                      Attacher un fichier

 

begin

UTL_MAIL.send_attach_raw

(sender => 'j_zouaghi@yahoo.fr',

 recipients => 'jaouad.zouaghi@gmail.com',

 subject => 'subj',

attachment => HEXTORAW('616262646566C2AA'),

 message => 'Tatat yoyoyoyoyoyoyoyoyoy',

 att_filename  => 'os.sql');

 end;